ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_Transport_Delay.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_Transport_Delay.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 04.05.2015
6 //! @brief Signal transport delay block class header file.
7 //! @attention
8 //!
9 //! COPYRIGHT(C) 2015-2017 ANVILEX GmbH
10 //!
11 //! Redistribution and use in source and binary forms, with or without
12 //! modification, are permitted provided that the following conditions are met:
13 //!
14 //! 1. Redistributions of source code must retain the above copyright notice,
15 //! this list of conditions and the following disclaimer.
16 //!
17 //! 2. Redistributions in binary form must reproduce the above copyright notice,
18 //! this list of conditions and the following disclaimer in the documentation
19 //! and/or other materials provided with the distribution.
20 //!
21 //! 3. Neither the name of ANVILEX nor the names of its contributors may be
22 //! used to endorse or promote products derived from this software without
23 //! specific prior written permission.
24 //!
25 //! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 //! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 //! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 //! ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29 //! LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 //! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 //! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 //! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 //! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 //! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 //! POSSIBILITY OF SUCH DAMAGE.
36 //------------------------------------------------------------------------------
37 
38 //------------------------------------------------------------------------------
39 // Protecting header files from mutual, recursive inclusion.
40 //------------------------------------------------------------------------------
41 
42 #pragma once
43 
44 //------------------------------------------------------------------------------
45 // Include standard libraries header files
46 //------------------------------------------------------------------------------
47 
48 //------------------------------------------------------------------------------
49 // Include thrid party header files
50 //------------------------------------------------------------------------------
51 
52 //------------------------------------------------------------------------------
53 // Include ConOpSys header files
54 //------------------------------------------------------------------------------
55 
56 #include "Function_Block_Base.h"
57 
58 //------------------------------------------------------------------------------
59 // Include ConOpSys application header files
60 //------------------------------------------------------------------------------
61 
62 //------------------------------------------------------------------------------
63 // Macros
64 //------------------------------------------------------------------------------
65 
66 //------------------------------------------------------------------------------
67 //! @brief Class declaration description
68 //------------------------------------------------------------------------------
69 
71 {
72 
73  //----------------------------------------------------------------------------
74  // Public variables and methods
75  //----------------------------------------------------------------------------
76 
77  public:
78 
79  //!-------------------------------------------------------------------------
80  //! @brief Class constructor method.
81  //! @note None
82  //! \par Override
83  //! Not allowed
84  //! @attention Don't call this method directly.
85  //--------------------------------------------------------------------------
86 
88 
89  //!-------------------------------------------------------------------------
90  //! @brief Class destructor method.
91  //! @note None
92  //! \par Override
93  //! Not allowed
94  //! @attention Don't call this method directly.
95  //--------------------------------------------------------------------------
96 
98 
99  //!-------------------------------------------------------------------------
100  //! @brief Function block initialisation method.
101  //! @note None
102  //! \par Override
103  //! Not allowed
104  //! @attention Don't call this method directly.
105  //--------------------------------------------------------------------------
106 
107  virtual VOID Init();
108 
109  //!-------------------------------------------------------------------------
110  //! @brief Function block execution method.
111  //! @note None
112  //! \par Override
113  //! Not allowed
114  //! @attention None
115  //--------------------------------------------------------------------------
116 
117  virtual VOID Execute();
118 
119  //--------------------------------------------------------------------------
120  // Function block parameter connectors
121  //--------------------------------------------------------------------------
122 
124  TBlock_Input_Connector object_f32_Sample_Time; //!< Sample time parameter
125 
126  //--------------------------------------------------------------------------
127  // Function block input connectors
128  //--------------------------------------------------------------------------
129 
131 
132  //--------------------------------------------------------------------------
133  // Function block output connectors
134  //--------------------------------------------------------------------------
135 
136  TBlock_Output_Connector object_f32_Output; //!< Transport delay block output
137 
138  //----------------------------------------------------------------------------
139  // Protected variables and methods
140  //----------------------------------------------------------------------------
141 
142  protected:
143 
144  //----------------------------------------------------------------------------
145  // Private variables and methods
146  //----------------------------------------------------------------------------
147 
148  private:
149 
150  U32 u32_Transport_Delay_Buffer_Size; //!< Transport delay buffer size
151  U32 u32_Buffer_Index; //!< Current transport delay buffer index
152  F32 f32_Buffer[ 128 ]; //!< Transport delay buffer
153 
154 };
155 
156 //------------------------------------------------------------------------------
157 
159 {
160 
161  //----------------------------------------------------------------------------
162  // Public variables and methods
163  //----------------------------------------------------------------------------
164 
165  public:
166 
167  //!-------------------------------------------------------------------------
168  //! @brief Class constructor method.
169  //! @note None
170  //! \par Override
171  //! Not allowed
172  //! @attention Don't call this method directly.
173  //--------------------------------------------------------------------------
174 
176 
177  //!-------------------------------------------------------------------------
178  //! @brief Class destructor method.
179  //! @note None
180  //! \par Override
181  //! Not allowed
182  //! @attention Don't call this method directly.
183  //--------------------------------------------------------------------------
184 
186 
187  //!-------------------------------------------------------------------------
188  //! @brief Function block initialisation method.
189  //! @note None
190  //! \par Override
191  //! Not allowed
192  //! @attention Don't call this method directly.
193  //--------------------------------------------------------------------------
194 
195  virtual VOID Init();
196 
197  //!-------------------------------------------------------------------------
198  //! @brief Function block execution method.
199  //! @note None
200  //! \par Override
201  //! Not allowed
202  //! @attention None
203  //--------------------------------------------------------------------------
204 
205  virtual VOID Execute();
206 
207  //--------------------------------------------------------------------------
208  // Function block parameter connectors
209  //--------------------------------------------------------------------------
210 
212  TBlock_Input_Connector object_f32_Sample_Time; //!< Sample time parameter
213 
214  //--------------------------------------------------------------------------
215  // Function block input connectors
216  //--------------------------------------------------------------------------
217 
219 
220  //--------------------------------------------------------------------------
221  // Function block output connectors
222  //--------------------------------------------------------------------------
223 
224  TBlock_Output_Connector object_f32_Output; //!< Transport delay block output
225 
226  //----------------------------------------------------------------------------
227  // Protected variables and methods
228  //----------------------------------------------------------------------------
229 
230  protected:
231 
232  //----------------------------------------------------------------------------
233  // Private variables and methods
234  //----------------------------------------------------------------------------
235 
236  private:
237 
238  U32 u32_Transport_Delay_Buffer_Size; //!< Transport delay buffer size
239  U32 u32_Buffer_Index; //!< Current transport delay buffer index
240  F32 f32_Buffer[ 256 ]; //!< Transport delay buffer
241 
242 };
243 
244 //------------------------------------------------------------------------------
245 // End Of File
246 //------------------------------------------------------------------------------
void VOID
Datatypesess datatype definition.
Definition: Defines.h:105
unsigned long U32
Binary 32-Bit unsigned integer datatype defenition.
Definition: Defines.h:203
float F32
IEEE-754 32-Bit single presession floating point numbers datatype defenition.
Definition: Defines.h:324
Function block base class header file.
Function block input connector class.
Definition: Block_Input_Connector.h:83
Function block output connector class.
Definition: Block_Output_Connector.h:59
Function block base class for device.
Definition: Function_Block_Base.h:96
Class declaration description.
Definition: Function_Block_Transport_Delay.h:71
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_Transport_Delay.cpp:124
U32 u32_Transport_Delay_Buffer_Size
Transport delay buffer size.
Definition: Function_Block_Transport_Delay.h:150
TFunction_Block_Transport_Delay_F32_128()
Class constructor method.
Definition: Function_Block_Transport_Delay.cpp:68
TBlock_Input_Connector object_f32_Sample_Time
Sample time parameter.
Definition: Function_Block_Transport_Delay.h:124
F32 f32_Buffer[128]
Transport delay buffer.
Definition: Function_Block_Transport_Delay.h:152
TBlock_Input_Connector object_f32_Transport_Delay_Time
Signal transport time.
Definition: Function_Block_Transport_Delay.h:123
TBlock_Output_Connector object_f32_Output
Transport delay block output.
Definition: Function_Block_Transport_Delay.h:136
U32 u32_Buffer_Index
Current transport delay buffer index.
Definition: Function_Block_Transport_Delay.h:151
virtual ~TFunction_Block_Transport_Delay_F32_128()
Class destructor method.
Definition: Function_Block_Transport_Delay.cpp:114
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_Transport_Delay.cpp:166
TBlock_Input_Connector object_f32_Input
Input signal.
Definition: Function_Block_Transport_Delay.h:130
Definition: Function_Block_Transport_Delay.h:159
U32 u32_Buffer_Index
Current transport delay buffer index.
Definition: Function_Block_Transport_Delay.h:239
F32 f32_Buffer[256]
Transport delay buffer.
Definition: Function_Block_Transport_Delay.h:240
TBlock_Input_Connector object_f32_Sample_Time
Sample time parameter.
Definition: Function_Block_Transport_Delay.h:212
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_Transport_Delay.cpp:290
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_Transport_Delay.cpp:248
TFunction_Block_Transport_Delay_F32_256()
Class constructor method.
Definition: Function_Block_Transport_Delay.cpp:192
U32 u32_Transport_Delay_Buffer_Size
Transport delay buffer size.
Definition: Function_Block_Transport_Delay.h:238
TBlock_Output_Connector object_f32_Output
Transport delay block output.
Definition: Function_Block_Transport_Delay.h:224
TBlock_Input_Connector object_f32_Input
Input signal.
Definition: Function_Block_Transport_Delay.h:218
TBlock_Input_Connector object_f32_Transport_Delay_Time
Signal transport time.
Definition: Function_Block_Transport_Delay.h:211
virtual ~TFunction_Block_Transport_Delay_F32_256()
Class destructor method.
Definition: Function_Block_Transport_Delay.cpp:238