ConOpSys V2970  P004.07
ANVILEX control operating system
Block_Connector.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Block_Connector.h
3 //! @URL $HeadURL: https://192.168.3.4:8443/svn/P004_07/ConOpSys/Blocks/Block_Connector.h $
4 //! @author $Author: minch $ (ANVILEX)
5 //! @version $Revision: 2952 $
6 //! @date $Date: 2022-02-27 19:31:14 +0500 (So, 27 Feb 2022) $
7 //! @brief Block connecttor class header file.
8 //! @attention
9 //!
10 //! COPYRIGHT(C) 2015-2021 ANVILEX
11 //!
12 //! Redistribution and use in source and binary forms, with or without
13 //! modification, are permitted provided that the following conditions are met:
14 //!
15 //! 1. Redistributions of source code must retain the above copyright notice,
16 //! this list of conditions and the following disclaimer.
17 //!
18 //! 2. Redistributions in binary form must reproduce the above copyright notice,
19 //! this list of conditions and the following disclaimer in the documentation
20 //! and/or other materials provided with the distribution.
21 //!
22 //! 3. Neither the name of ANVILEX nor the names of its contributors may be
23 //! used to endorse or promote products derived from this software without
24 //! specific prior written permission.
25 //!
26 //! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27 //! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 //! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29 //! ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
30 //! LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 //! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 //! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33 //! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34 //! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35 //! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36 //! POSSIBILITY OF SUCH DAMAGE.
37 //------------------------------------------------------------------------------
38 
39 //------------------------------------------------------------------------------
40 // Protecting header files from mutual, recursive inclusion.
41 //------------------------------------------------------------------------------
42 
43 //#pragma once
44 #ifndef Block_ConnectorH
45 #define Block_ConnectorH
46 
47 //------------------------------------------------------------------------------
48 // Include standard libraries header files
49 //------------------------------------------------------------------------------
50 
51 //------------------------------------------------------------------------------
52 // Include thrid party header files
53 //------------------------------------------------------------------------------
54 
55 //------------------------------------------------------------------------------
56 // VDC related header files
57 //------------------------------------------------------------------------------
58 
59 #include "ConOpSys_Target.h"
60 
61 #if CONOPSYS_TARGET == CONOPSYS_TARGET_VDC
62 
63 #include <System.Classes.hpp>
64 #include <Vcl.Controls.hpp>
65 //#include <Vcl.StdCtrls.hpp>
66 //#include <Vcl.Forms.hpp>
67 //#include <Vcl.ComCtrls.hpp>
68 #include <Vcl.ExtCtrls.hpp>
69 //#include <System.ImageList.hpp>
70 //#include <Vcl.ImgList.hpp>
71 //#include <Vcl.Buttons.hpp>
72 
73 #endif
74 
75 //------------------------------------------------------------------------------
76 // Include ConOpSys header files
77 //------------------------------------------------------------------------------
78 
79 #include "ConOpSys_Variant.h"
80 
81 //------------------------------------------------------------------------------
82 // Include VDC header files
83 //------------------------------------------------------------------------------
84 
85 #if CONOPSYS_TARGET == CONOPSYS_TARGET_VDC
86 
87 #include "Block_Connector_Signal.h"
88 #include "Block_Signal_Position.h"
89 #include "Block_Connector_Address.h"
90 
91 #endif
92 
93 //------------------------------------------------------------------------------
94 // Include ConOpSys application header files
95 //------------------------------------------------------------------------------
96 
97 //------------------------------------------------------------------------------
98 // Macros
99 //------------------------------------------------------------------------------
100 
101 //-----------------------------------------------------------------------------
102 // Class definitions
103 //-----------------------------------------------------------------------------
104 
105 //! @brief Function block connector type class
107 {
108 
109  //----------------------------------------------------------------------------
110  // Special data type
111  //----------------------------------------------------------------------------
112 
113  //! @brief Connector unassigned
115 
116  //! @brief Unknown data type
118 
119  //----------------------------------------------------------------------------
120  // Boolean data types
121  //----------------------------------------------------------------------------
122 
123  //! @brief Boolean data type
125 
126  //----------------------------------------------------------------------------
127  // Integed data types
128  //----------------------------------------------------------------------------
129 
130  //! @brief 8 bit unsigned integer data type
132 
133  //! @brief 8 bit signed integer data type
135 
136  //! @brief 16 bit unsigned integer data type
138 
139  //! @brief 16 bit signed integer data type
141 
142  //! @brief 32 bit unsigned integer data type
144 
145  //! @brief 32 bit signed integer data type
147 
148  //! @brief 64 bit unsigned integer data type
150 
151  //! @brief 64 bit signed integer data type
153 
154  // Test for U128 datatype supported
155  #if ( PARAMETER_DATATYPE_U128_SUPPORT == (true) )
156 
157  //! @brief 128 bit unsigned integer data type
158  //! @note Reserved for future use, no all integer number functionality can be available in actual version
160 
161  #endif
162 
163  // Test for I128 datatype supported
164  #if ( PARAMETER_DATATYPE_I128_SUPPORT == (true) )
165 
166  //! @brief 128 bit signed integer data type
167  //! @note Reserved for future use, no all integer number functionality can be available in actual version
169 
170  #endif
171 
172  // Test for U256 datatype supported
173  #if ( PARAMETER_DATATYPE_U256_SUPPORT == (true) )
174 
175  //! @brief 256 bit unsigned integer data type
176  //! @note Reserved for future use, no all integer number functionality can be available in actual version
178 
179  #endif
180 
181  // Test for I256 datatype supported
182  #if ( PARAMETER_DATATYPE_I256_SUPPORT == (true) )
183 
184  //! @brief 256 bit signed integer data type
185  //! @note Reserved for future use, no all integer number functionality can be available in actual version
187 
188  #endif
189 
190  //----------------------------------------------------------------------------
191  // Floating point datatypes
192  //----------------------------------------------------------------------------
193 
194  // Test for F16 datatype supported
195  #if ( PARAMETER_DATATYPE_F16_SUPPORT == (true) )
196 
197  //! @brief 16 bit floating point data type
198  //! @note Reserved for future use, no all floating point functionality can be available in actual version
200 
201  #endif
202 
203  //! @brief 32 bit floating point data type
205 
206  //! @brief 64 bit floating point data type
208 
209  // Test for F80 datatype supported
210  #if ( PARAMETER_DATATYPE_F80_SUPPORT == (true) )
211 
212  //! @brief 80 bit floating point data type
213  //! @note Reserved for future use, no all floating point functionality can be available in actual version
215 
216  #endif
217 
218  // Test for F128 datatype supported
219  #if ( PARAMETER_DATATYPE_F128_SUPPORT == (true) )
220 
221  //! @brief 128 bit floating point data type
222  //! @note Reserved for future use, no all floating point functionality can be available in actual version
224 
225  #endif
226 
227  // Test for F256 datatype supported
228  #if ( PARAMETER_DATATYPE_F256_SUPPORT == (true) )
229 
230  //! @brief 256 bit floating point data type
231  //! @note Reserved for future use, no all floating point functionality can be available in actual version
233 
234  #endif
235 
236  //----------------------------------------------------------------------------
237  // 32 bit fixed point data types
238  //----------------------------------------------------------------------------
239 
240  // Test for IQ datatype supported
241  #if ( PARAMETER_DATATYPE_IQ_SUPPORT == (true) )
242 
243  //! @brief 32 bit IQ1 fixed point data type
244  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
246 
247  //! @brief 32 bit IQ2 fixed point data type
248  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
250 
251  //! @brief 32 bit IQ3 fixed point data type
252  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
254 
255  //! @brief 32 bit IQ4 fixed point data type
256  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
258 
259  //! @brief 32 bit IQ5 fixed point data type
260  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
262 
263  //! @brief 32 bit IQ6 fixed point data type
264  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
266 
267  //! @brief 32 bit IQ7 fixed point data type
268  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
270 
271  //! @brief 32 bit IQ8 fixed point data type
272  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
274 
275  //! @brief 32 bit IQ9 fixed point data type
276  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
278 
279  //! @brief 32 bit IQ10 fixed point data type
280  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
282 
283  //! @brief 32 bit IQ11 fixed point data type
284  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
286 
287  //! @brief 32 bit IQ12 fixed point data type
288  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
290 
291  //! @brief 32 bit IQ13 fixed point data type
292  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
294 
295  //! @brief 32 bit IQ14 fixed point data type
296  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
298 
299  //! @brief 32 bit IQ15 fixed point data type
300  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
302 
303  //! @brief 32 bit IQ16 fixed point data type
304  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
306 
307  //! @brief 32 bit IQ17 fixed point data type
308  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
310 
311  //! @brief 32 bit IQ18 fixed point data type
312  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
314 
315  //! @brief 32 bit IQ19 fixed point data type
316  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
318 
319  //! @brief 32 bit IQ20 fixed point data type
320  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
322 
323  //! @brief 32 bit IQ21 fixed point data type
324  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
326 
327  //! @brief 32 bit IQ22 fixed point data type
328  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
330 
331  //! @brief 32 bit IQ23 fixed point data type
332  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
334 
335  //! @brief 32 bit IQ24 fixed point data type
336  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
338 
339  //! @brief 32 bit IQ25 fixed point data type
340  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
342 
343  //! @brief 32 bit IQ26 fixed point data type
344  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
346 
347  //! @brief 32 bit IQ27 fixed point data type
348  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
350 
351  //! @brief 32 bit IQ28 fixed point data type
352  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
354 
355  //! @brief 32 bit IQ29 fixed point data type
356  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
358 
359  //! @brief 32 bit IQ30 fixed point data type
360  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
362 
363  //! @brief 32 bit IQ31 fixed point data type
364  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
366 
367  //! @brief 32 bit IQ32 fixed point data type
368  //! @note Reserved for future use, no all fixed point functionality can be available in actual version
370 
371  #endif
372 
373  //----------------------------------------------------------------------------
374  // Virtual machine data types
375  //----------------------------------------------------------------------------
376 
377  //! @brief Virtual machine program data type
379 
380 };
381 
382 //------------------------------------------------------------------------------
383 
384 //! @brief Function block connector base class
385 #if CONOPSYS_TARGET == CONOPSYS_TARGET_DEVICE
388 class TBlock_Connector : public TPaintBox
389 #endif
390 {
391 
392  //----------------------------------------------------------------------------
393  // Public defines, methods and variables related to ConOpSys
394  //----------------------------------------------------------------------------
395 
396  public:
397 
398  //--------------------------------------------------------------------------
399  // Public methods
400  //--------------------------------------------------------------------------
401 
402  //!-------------------------------------------------------------------------
403  //! @brief Class constructor method.
404  //! @note None
405  //! \par Override
406  //! Not allowed
407  //! @attention Don't call this method directly.
408  //! \par UML diagram
409  //! @dotfile TBlock_Connector__TBlock_Connector.dt
410  //--------------------------------------------------------------------------
411 
413 
414  //!-------------------------------------------------------------------------
415  //! @brief Class constructor method.
416  //! @note None
417  //! \par Override
418  //! Not allowed
419  //! @attention Don't call this method directly.
420  //! \par UML diagram
421  //! @dotfile TBlock_Connector__TBlock_Connector.dt
422  //--------------------------------------------------------------------------
423 
424  TBlock_Connector( TBlock_Connector_Type enum_Connector_Type );
425 
426  #if CONOPSYS_TARGET == CONOPSYS_TARGET_DEVICE
427 
428  //!-------------------------------------------------------------------------
429  //! @brief Class desrtuctor method.
430  //! @note None
431  //! @param [in] enum_Connector_Type - Connector data type in according to the TBlock_Connector_Type
432  //! \par Override
433  //! Not allowed
434  //! @attention Don't call this method directly.
435  //! \par UML diagram
436  //! @dotfile TBlock_Connector___TBlock_Connector.dt
437  //--------------------------------------------------------------------------
438 
440 
441  #endif
442 
443  //!-------------------------------------------------------------------------
444  //! @brief Set specified data type of the input connector
445  //! @note None
446  //! @param [in] enum_Connector_Type - Connector data type in according to the TBlock_Connector_Type
447  //! \par Override
448  //! Not allowed
449  //! @attention None
450  //! \par UML diagram
451  //! @dotfile TBlock_Connector__Set_Type.dt
452  //--------------------------------------------------------------------------
453 
454  VOID Set_Type( TBlock_Connector_Type enum_Connector_Type );
455 
456  //!-------------------------------------------------------------------------
457  //! @brief Set data type of the input connector to BOOL and initialise by specifiet value
458  //! @note None
459  //! @param [in] bool_Value - Default BOOL initalisation value of input connector
460  //! \par Override
461  //! Not allowed
462  //! @attention None
463  //! \par UML diagram
464  //! @dotfile TBlock_Connector__Set_Type_BOOL.dt
465  //--------------------------------------------------------------------------
466 
467  VOID Set_Type_BOOL( BOOL bool_Value );
468 
469  //!-------------------------------------------------------------------------
470  //! @brief Set data type of the input connector to U8 and initialise by specifiet value
471  //! @note None
472  //! @param [in] u8_Value - Default U8 initalisation value of input connector
473  //! \par Override
474  //! Not allowed
475  //! @attention None
476  //! \par UML diagram
477  //! @dotfile TBlock_Connector__Set_Type_U8.dt
478  //--------------------------------------------------------------------------
479 
480  VOID Set_Type_U8( U8 u8_Value );
481 
482  //!-------------------------------------------------------------------------
483  //! @brief Set data type of the input connector to I8 and initialise by specifiet value
484  //! @note None
485  //! @param [in] i8_Value - Default I8 initalisation value of input connector
486  //! \par Override
487  //! Not allowed
488  //! @attention None
489  //! \par UML diagram
490  //! @dotfile TBlock_Connector__Set_Type_I8.dt
491  //--------------------------------------------------------------------------
492 
493  VOID Set_Type_I8( I8 i8_Value );
494 
495  //!-------------------------------------------------------------------------
496  //! @brief Set data type of the input connector to U16 and initialise by specifiet value
497  //! @note None
498  //! @param [in] u16_Value - Default U16 initalisation value of input connector
499  //! \par Override
500  //! Not allowed
501  //! @attention None
502  //! \par UML diagram
503  //! @dotfile TBlock_Connector__Set_Type_U16.dt
504  //--------------------------------------------------------------------------
505 
506  VOID Set_Type_U16( U16 u16_Value );
507 
508  //!-------------------------------------------------------------------------
509  //! @brief Set data type of the input connector to I16 and initialise by specifiet value
510  //! @note None
511  //! @param [in] i16_Value - Default I16 initalisation value of input connector
512  //! \par Override
513  //! Not allowed
514  //! @attention None
515  //! \par UML diagram
516  //! @dotfile TBlock_Connector__Set_Type_I16.dt
517  //--------------------------------------------------------------------------
518 
519  VOID Set_Type_I16( I16 i16_Value );
520 
521  //!-------------------------------------------------------------------------
522  //! @brief Set data type of the input connector to U32 and initialise by specifiet value
523  //! @note None
524  //! @param [in] u32_Value - Default U32 initalisation value of input connector
525  //! \par Override
526  //! Not allowed
527  //! @attention None
528  //! \par UML diagram
529  //! @dotfile TBlock_Connector__Set_Type_U32.dt
530  //--------------------------------------------------------------------------
531 
532  VOID Set_Type_U32( U32 u32_Value );
533 
534  //!-------------------------------------------------------------------------
535  //! @brief Set data type of the input connector to I32 and initialise by specifiet value
536  //! @note None
537  //! @param [in] i32_Value - Default I32 initalisation value of input connector
538  //! \par Override
539  //! Not allowed
540  //! @attention None
541  //! \par UML diagram
542  //! @dotfile TBlock_Connector__Set_Type_I32.dt
543  //--------------------------------------------------------------------------
544 
545  VOID Set_Type_I32( I32 i32_Value );
546 
547  //!-------------------------------------------------------------------------
548  //! @brief Set data type of the input connector to U64 and initialise by specifiet value
549  //! @note None
550  //! @param [in] u64_Value - Default U64 initalisation value of input connector
551  //! \par Override
552  //! Not allowed
553  //! @attention None
554  //! \par UML diagram
555  //! @dotfile TBlock_Connector__Set_Type_U64.dt
556  //--------------------------------------------------------------------------
557 
558  VOID Set_Type_U64( U64 u64_Value );
559 
560  //!-------------------------------------------------------------------------
561  //! @brief Set data type of the input connector to I64 and initialise by specifiet value
562  //! @note None
563  //! @param [in] i64_Value - Default I64 initalisation value of input connector
564  //! \par Override
565  //! Not allowed
566  //! @attention None
567  //! \par UML diagram
568  //! @dotfile TBlock_Connector__Set_Type_I64.dt
569  //--------------------------------------------------------------------------
570 
571  VOID Set_Type_I64( I64 i64_Value );
572 
573  //!-------------------------------------------------------------------------
574  //! @brief Set data type of the input connector to F32 and initialise by specifiet value
575  //! @note None
576  //! @param [in] f32_Value - Default f32 initalisation value of input connector
577  //! \par Override
578  //! Not allowed
579  //! @attention None
580  //! \par UML diagram
581  //! @dotfile TBlock_Connector__Set_Type_F32.dt
582  //--------------------------------------------------------------------------
583 
584  VOID Set_Type_F32( F32 f32_Value );
585 
586  //!-------------------------------------------------------------------------
587  //! @brief Set data type of the input connector to F64 and initialise by specifiet value
588  //! @note None
589  //! @param [in] f64_Value - Default F64 initalisation value of input connector
590  //! \par Override
591  //! Not allowed
592  //! @attention None
593  //! \par UML diagram
594  //! @dotfile TBlock_Connector__Set_Type_F64.dt
595  //--------------------------------------------------------------------------
596 
597  VOID Set_Type_F64( F64 f64_Value );
598 
599  //!-------------------------------------------------------------------------
600  //! @brief Get connector data type
601  //! @note None
602  //! @return TBlock_Connector_Type - Connector data type
603  //! \par Override
604  //! Not allowed
605  //! @attention None
606  //! \par UML diagram
607  //! @dotfile TBlock_Connector__Get_Type.dt
608  //--------------------------------------------------------------------------
609 
611 
612  //!-------------------------------------------------------------------------
613  //! @brief Get connector underlaying variant data type
614  //! @note None
615  //! @return TConOpSys_Variant_Data_Type - Connector underlaying variant data type
616  //! \par Override
617  //! Not allowed
618  //! @attention None
619  //! \par UML diagram
620  //! @dotfile TBlock_Connector__Get_Variant_Type.dt
621  //--------------------------------------------------------------------------
622 
624 
625  //--------------------------------------------------------------------------
626  // Public variables
627  //--------------------------------------------------------------------------
628 
629  //! @brief Connector local data storage
631 
632  //----------------------------------------------------------------------------
633  // Public defines, methods and variables related to VDC
634  //----------------------------------------------------------------------------
635 
636  public:
637 
638  //--------------------------------------------------------------------------
639  // Public methods related to VDC
640  //--------------------------------------------------------------------------
641 
642  #if CONOPSYS_TARGET == CONOPSYS_TARGET_VDC
643 
644  __fastcall TBlock_Connector( TComponent* Owner, TList *Storage, bool Mode );
645 
646  __fastcall ~TBlock_Connector();
647 
648  VOID __fastcall Create_Signal( TComponent *Owner, TBlock_Connector *OutputConnector );
649 
650  VOID __fastcall Destroy_Signal( TBlock_Connector *OutputConnector );
651 
652  VOID __fastcall Assign_Signal( TBlock_Connector_Signal *Signal );
653 
654  VOID __fastcall Unassign_Signal( TBlock_Connector_Signal *Signal );
655 
656  BOOL __fastcall Signal_Exists( TBlock_Connector_Signal *Signal );
657 
658  BOOL __fastcall Is_Unconnected();
659 
660  VOID __fastcall Resolve_Address( TBlock_Connector_Address *ConnectorAddress );
661 
662  #endif
663 
664  //--------------------------------------------------------------------------
665  // Public variables related to VDC
666  //--------------------------------------------------------------------------
667 
668  #if CONOPSYS_TARGET == CONOPSYS_TARGET_VDC
669 
670  // Pointer to storage of connectors
672 
673  // Storage of the signals
675 
676  // Locked mode flag
678 
679  // Locked X position
680  int Locked_X;
681 
682  // Locked Y position
683  int Locked_Y;
684 
685  // Signal position
686  TBlock_Signal_Position Signal_Position;
687 
688  // Label of the connector
689  TLabel *Label;
690 
691  // Multisignal flag
693 
694  // Address of the output connector
695  TBlock_Connector_Address OutputConnectorAddress;
696 
697  //--------------------------------------------------------------------------
698  // Public propoerties
699  //--------------------------------------------------------------------------
700 
701  //
702  __property BOOL Selected = { read = FSelected, write = SetSelectedFlag };
703 
704  //
705  __property BOOL Flipped = { read = FFlipped, write = SetFlippedFlag };
706 
707  //
708  __property TResolveConnectorAddressEvent OnResolveConnectorAddress = { read = FOnResolveConnectorAddress, write = FOnResolveConnectorAddress };
709 
710  #endif
711 
712  //----------------------------------------------------------------------------
713  // Protected defines, methods and variables
714  //----------------------------------------------------------------------------
715 
716  protected:
717 
718  //--------------------------------------------------------------------------
719  // Protected methods
720  //--------------------------------------------------------------------------
721 
722  //!-------------------------------------------------------------------------
723  //! @brief Resolve correcponding variant data type
724  //! @note None
725  //! @param [in] enum_Connector_Type - Connector data type
726  //! @return TConOpSys_Variant_Data_Type - Variant data type
727  //! \par Override
728  //! Not allowed
729  //! @attention None
730  //! \par UML diagram
731  //! @dotfile TBlock_Connector__Resolve_Variant_Type.dt
732  //--------------------------------------------------------------------------
733 
735 
736  //!-------------------------------------------------------------------------
737  //! @brief Resolve correcpondung variant pointer data type
738  //! @note None
739  //! @param [in] enum_Connector_Type - Connector data type
740  //! @return TConOpSys_Variant_Data_Type - Variant pointer data type
741  //! \par Override
742  //! Not allowed
743  //! @attention None
744  //! \par UML diagram
745  //! @dotfile TBlock_Connector__Resolve_Pointer_Type.dt
746  //--------------------------------------------------------------------------
747 
749 
750  //----------------------------------------------------------------------------
751  // Private defines, methods and variables
752  //----------------------------------------------------------------------------
753 
754  private:
755 
756  //--------------------------------------------------------------------------
757  // Private variables
758  //--------------------------------------------------------------------------
759 
760  //! @brief Connector ID
762 
763  //! @brief Connector data type
765 
766  //----------------------------------------------------------------------------
767  // Private defines, methods and variables related to VDC
768  //----------------------------------------------------------------------------
769 
770  #if CONOPSYS_TARGET == CONOPSYS_TARGET_VDC
771 
772  private:
773 
774  //--------------------------------------------------------------------------
775  // Private methods related to VDC
776  //--------------------------------------------------------------------------
777 
778  void __fastcall SetSelectedFlag( BOOL Value );
779 
780  void __fastcall SetFlippedFlag( BOOL Value );
781 
782  //--------------------------------------------------------------------------
783  // Private variables related to VDC
784  //--------------------------------------------------------------------------
785 
786  //! @brief Connector selected flag
787  BOOL FSelected = (BOOL)false;
788 
789  //! @brief Connector flipped flag
790  BOOL FFlipped = (BOOL)false;
791 
792  //! @brief Resolve connector address event method storage
793  TResolveConnectorAddressEvent FOnResolveConnectorAddress;
794 
795  //! @brief Temporary signal pointer storage
796  TBlock_Connector_Signal *Temporary_Signal;
797 
798  #endif
799 
800 };
801 
802 //------------------------------------------------------------------------------
803 
804 #endif
805 
806 //------------------------------------------------------------------------------
807 // End of file
808 //------------------------------------------------------------------------------
TBlock_Connector_Type
Function block connector type class
Definition: Block_Connector.h:107
@ enum_IQ12
32 bit IQ12 fixed point data type
@ enum_U64
64 bit unsigned integer data type
@ enum_F80
80 bit floating point data type
@ enum_IQ27
32 bit IQ27 fixed point data type
@ enum_IQ6
32 bit IQ6 fixed point data type
@ enum_IQ9
32 bit IQ9 fixed point data type
@ enum_F128
128 bit floating point data type
@ enum_IQ28
32 bit IQ28 fixed point data type
@ enum_IQ2
32 bit IQ2 fixed point data type
@ enum_IQ8
32 bit IQ8 fixed point data type
@ enum_IQ24
32 bit IQ24 fixed point data type
@ enum_Unassigned
Connector unassigned.
@ enum_IQ16
32 bit IQ16 fixed point data type
@ enum_IQ10
32 bit IQ10 fixed point data type
@ enum_IQ23
32 bit IQ23 fixed point data type
@ enum_IQ7
32 bit IQ7 fixed point data type
@ enum_F64
64 bit floating point data type
@ enum_Unknown
Unknown data type.
@ enum_IQ25
32 bit IQ25 fixed point data type
@ enum_BOOL
Boolean data type.
@ enum_IQ3
32 bit IQ3 fixed point data type
@ enum_F256
256 bit floating point data type
@ enum_IQ5
32 bit IQ5 fixed point data type
@ enum_IQ31
32 bit IQ31 fixed point data type
@ enum_U32
32 bit unsigned integer data type
@ enum_U128
128 bit unsigned integer data type
@ enum_IQ29
32 bit IQ29 fixed point data type
@ enum_U256
256 bit unsigned integer data type
@ enum_I128
128 bit signed integer data type
@ enum_U8
8 bit unsigned integer data type
@ enum_IQ22
32 bit IQ22 fixed point data type
@ enum_IQ30
32 bit IQ30 fixed point data type
@ enum_IQ1
32 bit IQ1 fixed point data type
@ enum_I64
64 bit signed integer data type
@ enum_IQ26
32 bit IQ26 fixed point data type
@ enum_IQ15
32 bit IQ15 fixed point data type
@ enum_IQ32
32 bit IQ32 fixed point data type
@ enum_I16
16 bit signed integer data type
@ enum_F32
32 bit floating point data type
@ enum_F16
16 bit floating point data type
@ enum_IQ13
32 bit IQ13 fixed point data type
@ enum_AVMP
Virtual machine program data type.
@ enum_I256
256 bit signed integer data type
@ enum_U16
16 bit unsigned integer data type
@ enum_IQ4
32 bit IQ4 fixed point data type
@ enum_IQ20
32 bit IQ20 fixed point data type
@ enum_I8
8 bit signed integer data type
@ enum_IQ17
32 bit IQ17 fixed point data type
@ enum_IQ18
32 bit IQ18 fixed point data type
@ enum_IQ19
32 bit IQ19 fixed point data type
@ enum_IQ21
32 bit IQ21 fixed point data type
@ enum_IQ14
32 bit IQ14 fixed point data type
@ enum_I32
32 bit signed integer data type
@ enum_IQ11
32 bit IQ11 fixed point data type
ConOpSys deploy target definitions file.
#define CONOPSYS_TARGET_VDC
Visual device configurator tool.
Definition: ConOpSys_Target.h:50
#define CONOPSYS_TARGET
Deploy target selection.
Definition: ConOpSys_Target.h:63
ConOpSys variant class header file.
TConOpSys_Variant_Data_Type
Definition: ConOpSys_Variant_Data_Type.h:57
@ enum_U64
Variant contains value of U64 data.
@ enum_F80
Variant contains value of F80 data.
@ enum_F128
Variant contains value of F128 data.
@ enum_Unassigned
Unassigned data type marker.
@ enum_F64
Variant contains value of F64 data.
@ enum_Unknown
Unknown data type marker.
@ enum_BOOL
Variant contains value of boolean data type.
@ enum_F256
Variant contains value of F256 data.
@ enum_U32
Variant contains value of U32 data type.
@ enum_U128
Variant contains value of U128 data.
@ enum_U256
Variant contains value of U256 data.
@ enum_I128
Variant contains value of I128 data.
@ enum_U8
Variant contains value of U8 data type.
@ enum_I64
Variant contains value of I64 data type.
@ enum_I16
Variant contains value of I16 data type.
@ enum_F32
Variant contains value of F32 data.
@ enum_F16
Variant contains value of F16 data.
@ enum_AVMP
Virtual machine array of commands data type.
@ enum_I256
Variant contains value of I256 data.
@ enum_U16
Variant contains value of U16 data type.
@ enum_I8
Variant contains value of I8 data type.
@ enum_I32
Variant contains value of I32 data type.
int BOOL
Boolean datatype definition.
Definition: Defines.h:124
unsigned long long U64
Binary 64-Bit unsigned integer datatype defenition.
Definition: Defines.h:213
long I32
2s Compliment 32-Bit signed integer datatype defenition
Definition: Defines.h:206
unsigned char U8
Binary 8-Bit unsigned integer datatype defenition.
Definition: Defines.h:183
signed char I8
2s Compliment 8-Bit signed integer datatype defenition
Definition: Defines.h:186
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
short I16
2s Compliment 16-Bit signed integer datatype defenition
Definition: Defines.h:196
long long I64
2s Compliment 64-Bit signed integer datatype defenition
Definition: Defines.h:217
double F64
IEEE-754 64-Bit double presession floating point numbers datatype defenition.
Definition: Defines.h:327
unsigned short U16
Binary 16-Bit unsigned integer datatype defenition.
Definition: Defines.h:193
Function block connector base class.
Definition: Block_Connector.h:390
VOID Set_Type_F64(F64 f64_Value)
Set data type of the input connector to F64 and initialise by specifiet value.
Definition: Block_Connector.cpp:360
BOOL __fastcall Is_Unconnected()
Definition: Block_Connector.cpp:2635
TResolveConnectorAddressEvent FOnResolveConnectorAddress
Resolve connector address event method storage.
Definition: Block_Connector.h:793
VOID Set_Type(TBlock_Connector_Type enum_Connector_Type)
Set specified data type of the input connector.
Definition: Block_Connector.cpp:195
VOID Set_Type_F32(F32 f32_Value)
Set data type of the input connector to F32 and initialise by specifiet value.
Definition: Block_Connector.cpp:345
TBlock_Connector()
Class constructor method.
Definition: Block_Connector.cpp:71
__property BOOL Selected
Definition: Block_Connector.h:702
TList * StorageOfSignals
Definition: Block_Connector.h:674
VOID __fastcall Create_Signal(TComponent *Owner, TBlock_Connector *OutputConnector)
Definition: Block_Connector.cpp:2513
__property BOOL Flipped
Definition: Block_Connector.h:705
void __fastcall SetSelectedFlag(BOOL Value)
Definition: Block_Connector.cpp:2453
TList * StorageOfConnectors
Definition: Block_Connector.h:671
BOOL __fastcall Signal_Exists(TBlock_Connector_Signal *Signal)
Definition: Block_Connector.cpp:2619
TConOpSys_Variant_Data_Type Resolve_Variant_Type(TBlock_Connector_Type enum_Connector_Type)
Resolve correcponding variant data type.
Definition: Block_Connector.cpp:399
VOID Set_Type_U16(U16 u16_Value)
Set data type of the input connector to U16 and initialise by specifiet value.
Definition: Block_Connector.cpp:255
__property TResolveConnectorAddressEvent OnResolveConnectorAddress
Definition: Block_Connector.h:708
TBlock_Connector_Type enum_Type
Connector data type.
Definition: Block_Connector.h:764
VOID __fastcall Destroy_Signal(TBlock_Connector *OutputConnector)
Definition: Block_Connector.cpp:2529
TConOpSys_Variant object_Storage
Connector local data storage.
Definition: Block_Connector.h:630
TBlock_Connector_Type Get_Type()
Get connector data type.
Definition: Block_Connector.cpp:375
TBlock_Connector_Address OutputConnectorAddress
Definition: Block_Connector.h:695
U32 u32_Connector_ID
Connector ID.
Definition: Block_Connector.h:761
VOID Set_Type_U8(U8 u8_Value)
Set data type of the input connector to U8 and initialise by specifiet value.
Definition: Block_Connector.cpp:225
BOOL FFlipped
Connector flipped flag.
Definition: Block_Connector.h:790
VOID __fastcall Resolve_Address(TBlock_Connector_Address *ConnectorAddress)
Definition: Block_Connector.cpp:2481
BOOL FSelected
Connector selected flag.
Definition: Block_Connector.h:787
VOID Set_Type_I32(I32 i32_Value)
Set data type of the input connector to I32 and initialise by specifiet value.
Definition: Block_Connector.cpp:300
TBlock_Signal_Position Signal_Position
Definition: Block_Connector.h:686
TBlock_Connector_Signal * Temporary_Signal
Temporary signal pointer storage.
Definition: Block_Connector.h:796
TConOpSys_Variant_Data_Type Resolve_Pointer_Type(TBlock_Connector_Type enum_Connector_Type)
Resolve correcpondung variant pointer data type.
Definition: Block_Connector.cpp:1416
VOID Set_Type_I8(I8 i8_Value)
Set data type of the input connector to I8 and initialise by specifiet value.
Definition: Block_Connector.cpp:240
int Locked_X
Definition: Block_Connector.h:680
bool MultiSignal
Definition: Block_Connector.h:692
bool Locked_Mode
Definition: Block_Connector.h:677
VOID __fastcall Assign_Signal(TBlock_Connector_Signal *Signal)
Definition: Block_Connector.cpp:2568
VOID Set_Type_U32(U32 u32_Value)
Set data type of the input connector to U32 and initialise by specifiet value.
Definition: Block_Connector.cpp:285
VOID __fastcall Unassign_Signal(TBlock_Connector_Signal *Signal)
Definition: Block_Connector.cpp:2592
VOID Set_Type_I16(I16 i16_Value)
Set data type of the input connector to I16 and initialise by specifiet value.
Definition: Block_Connector.cpp:270
VOID Set_Type_BOOL(BOOL bool_Value)
Set data type of the input connector to BOOL and initialise by specifiet value.
Definition: Block_Connector.cpp:210
VOID Set_Type_U64(U64 u64_Value)
Set data type of the input connector to U64 and initialise by specifiet value.
Definition: Block_Connector.cpp:315
void __fastcall SetFlippedFlag(BOOL Value)
Definition: Block_Connector.cpp:2434
TConOpSys_Variant_Data_Type Get_Variant_Type()
Get connector underlaying variant data type.
Definition: Block_Connector.cpp:387
TLabel * Label
Definition: Block_Connector.h:689
~TBlock_Connector()
Class desrtuctor method.
Definition: Block_Connector.cpp:157
int Locked_Y
Definition: Block_Connector.h:683
VOID Set_Type_I64(I64 i64_Value)
Set data type of the input connector to I64 and initialise by specifiet value.
Definition: Block_Connector.cpp:330
ConOpSys variant class.
Definition: ConOpSys_Variant.h:851
Definition: List.h:15