ConOpSys V2970  P004.07
ANVILEX control operating system
P021_23_KG3_EVIO.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file P021_23_KG3_EVIO.h
3 //! @brief KG3 digital I/O board P021.23 hardware driver header file.
4 //! @attention No special attention requered.
5 //! @copyright (C) 2015-2021 ANVILEX LLC
6 //! $HeadURL: https://192.168.3.4:8443/svn/P004_07/ConOpSys/Hardware/P021_23_KG3_DIO/P021_23_KG3_EVIO.h $
7 //! $Revision: 2496 $
8 //! $Date: 2021-03-17 14:57:57 +0500 (Mi, 17 Mrz 2021) $
9 //! $Author: minch $
10 //------------------------------------------------------------------------------
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 // TP021_23_KG3_EVIO
41 //
42 //------------------------------------------------------------------------------
43 
44 //------------------------------------------------------------------------------
45 // Protecting header files from mutual, recursive inclusion.
46 //------------------------------------------------------------------------------
47 
48 #pragma once
49 
50 //------------------------------------------------------------------------------
51 // Include standard libraries header files
52 //------------------------------------------------------------------------------
53 
54 //------------------------------------------------------------------------------
55 // Include thrid party header files
56 //------------------------------------------------------------------------------
57 
58 //------------------------------------------------------------------------------
59 // Include ConOpSys header files
60 //------------------------------------------------------------------------------
61 
62 #include "Function_Block_Base.h"
63 #include "TCME_Register.h"
64 
65 //------------------------------------------------------------------------------
66 // Include ConOpSys application header files
67 //------------------------------------------------------------------------------
68 
69 //------------------------------------------------------------------------------
70 // Macros
71 //------------------------------------------------------------------------------
72 
73 //! @brief KG3 digital I/O board (P021.23 / KG3 EVIO T1) type 1 class
75 {
76 
77  //--------------------------------------------------------------------------
78  // Public defines, methods and variables
79  //--------------------------------------------------------------------------
80 
81  public:
82 
83  //------------------------------------------------------------------------
84  // Public defines
85  //------------------------------------------------------------------------
86 
87  //! @brief Register structure for digital I/O access
88  typedef struct
89  {
90 
91  //! @brief 0x00 : Module identification low register
93 
94  //! @brief 0x01 : Module identification high register
96 
97  //! @brief 0x02 : Control word
98  // Bit 0 : Reserved
99  // Bit 1 : Reserved
100  // Bit 2 : Reserved
101  // Bit 3 : Reserved
102  // Bit 4 : Reserved
103  // Bit 5 : Reserved
104  // Bit 6 : Reserved
105  // Bit 7 : Reserved
106  // Bit 8-15 : Reserved
108 
109  //! @brief 0x03 : Status word
111 
112  //! @brief 0x04 : Register address
114 
115  //! @brief 0x05-0x08 : Data registers
116  U16 u16_Data[ 4 ];
117 
118  //! @brief 0x09 : Digital output data write
119  // Bit 0-7 : CRC7
120  // Bit 8-15 : Reserved
122 
123  //! @brief 0x0A : Reserved
125 
126  //! @brief 0x0B : Reserved
128 
129  //! @brief 0x0C : Reserved
131 
132  //! @brief 0x0D : Reserved
134 
135  //! @brief 0x0E : Reserved
137 
138  //! @brief 0x0F : Reserved
140 
142 
143  //--------------------------------------------------------------------------
144  // Public methods
145  //--------------------------------------------------------------------------
146 
147  //!-------------------------------------------------------------------------
148  //! @brief Function block class constructor method.
149  //! @note None
150  //! \par Override
151  //! Not allowed
152  //! @attention Don't call this method directly.
153  //--------------------------------------------------------------------------
154 
156 
157  //!-------------------------------------------------------------------------
158  //! @brief Function block class destructor method.
159  //! @note None
160  //! \par Override
161  //! Not allowed
162  //! @attention Don't call this method directly.
163  //--------------------------------------------------------------------------
164 
165  virtual ~TP021_23_KG3_EVIO_T1();
166 
167  //!-------------------------------------------------------------------------
168  //! @brief Hardware mapping method.
169  //! @note None
170  //! @param [in] *struct_Registers_Base_Address - Base adress to register structure mapping
171  //! \par Override
172  //! Not allowed
173  //! @attention None
174  //--------------------------------------------------------------------------
175 
176  VOID Map( TP021_23_KG3_EVIO_Registers *struct_Registers_Base_Address );
177 
178  //!-------------------------------------------------------------------------
179  //! @brief Function block initialisation method.
180  //! @note None
181  //! \par Override
182  //! Not allowed
183  //! @attention None
184  //--------------------------------------------------------------------------
185 
186  virtual VOID Init();
187 
188  //!-------------------------------------------------------------------------
189  //! @brief Function block execution method.
190  //! @note None
191  //! \par Override
192  //! Not allowed
193  //! @attention None
194  //--------------------------------------------------------------------------
195 
196  virtual VOID Execute();
197 
198  //!-------------------------------------------------------------------------
199  //! @brief Write EVSEDateTime register operation.
200  //! @note None
201  //! @return BOOL - Operation status
202  //! @retval false - Operation not done
203  //! @retval true - Operation done successfuly
204  //! \par Override
205  //! Not requered
206  //! @attention None
207  //--------------------------------------------------------------------------
208 
210 
211  //!-------------------------------------------------------------------------
212  //! @brief Write EVSEDCStatus register operation.
213  //! @note None
214  //! @return BOOL - Operation status
215  //! @retval false - Operation not done
216  //! @retval true - Operation done successfuly
217  //! \par Override
218  //! Not requered
219  //! @attention None
220  //--------------------------------------------------------------------------
221 
223 
224  //!-------------------------------------------------------------------------
225  //! @brief Write EVMacAddress register operation.
226  //! @note None
227  //! @return BOOL - Operation status
228  //! @retval false - Operation not done
229  //! @retval true - Operation done successfuly
230  //! \par Override
231  //! Not requered
232  //! @attention None
233  //--------------------------------------------------------------------------
234 
236 
237  //!-------------------------------------------------------------------------
238  //! @brief Write EVSEDCMaxLimits register operation.
239  //! @note None
240  //! @return BOOL - Operation status
241  //! @retval false - Operation not done
242  //! @retval true - Operation done successfuly
243  //! \par Override
244  //! Not requered
245  //! @attention None
246  //--------------------------------------------------------------------------
247 
249 
250  //!-------------------------------------------------------------------------
251  //! @brief Write EVSEDCRegulationLimits register operation.
252  //! @note None
253  //! @return BOOL - Operation status
254  //! @retval false - Operation not done
255  //! @retval true - Operation done successfuly
256  //! \par Override
257  //! Not requered
258  //! @attention None
259  //--------------------------------------------------------------------------
260 
262 
263  //!-------------------------------------------------------------------------
264  //! @brief Read EVDCMaxLimits register operation.
265  //! @note None
266  //! @return BOOL - Operation status
267  //! @retval false - Operation not done
268  //! @retval true - Operation done successfuly
269  //! \par Override
270  //! Not requered
271  //! @attention None
272  //--------------------------------------------------------------------------
273 
275 
276  //!-------------------------------------------------------------------------
277  //! @brief Read EVStatusDisplay register operation.
278  //! @note None
279  //! @return BOOL - Operation status
280  //! @retval false - Operation not done
281  //! @retval true - Operation done successfuly
282  //! \par Override
283  //! Not requered
284  //! @attention None
285  //--------------------------------------------------------------------------
286 
288 
289  //!-------------------------------------------------------------------------
290  //! @brief Read EVDCEnergyLimits register operation.
291  //! @note None
292  //! @return BOOL - Operation status
293  //! @retval false - Operation not done
294  //! @retval true - Operation done successfuly
295  //! \par Override
296  //! Not requered
297  //! @attention None
298  //--------------------------------------------------------------------------
299 
301 
302  //!-------------------------------------------------------------------------
303  //! @brief Read EVDCChargeTargets register operation.
304  //! @note None
305  //! @return BOOL - Operation status
306  //! @retval false - Operation not done
307  //! @retval true - Operation done successfuly
308  //! \par Override
309  //! Not requered
310  //! @attention None
311  //--------------------------------------------------------------------------
312 
314 
315  //!-------------------------------------------------------------------------
316  //! @brief Send data frame for writing operation.
317  //! @note None
318  //! @param [in] u16_Register_Address - Register address
319  //! @return None
320  //! \par Override
321  //! Not requered
322  //! @attention None
323  //--------------------------------------------------------------------------
324 
325  VOID Send_Writing_Frame( U16 u16_Register_Address );
326 
327  //!-------------------------------------------------------------------------
328  //! @brief Send data frame for reading operation.
329  //! @note None
330  //! @param [in] u16_Register_Address - Register address
331  //! @return None
332  //! \par Override
333  //! Not requered
334  //! @attention None
335  //--------------------------------------------------------------------------
336 
337  VOID Send_Reading_Frame( U16 u16_Register_Address );
338 
339  //!-------------------------------------------------------------------------
340  //! @brief Check register writing response operation.
341  //! @note None
342  //! @return BOOL - Operation status
343  //! @retval false - Operation not done
344  //! @retval true - Operation done successfuly
345  //! \par Override
346  //! Not requered
347  //! @attention None
348  //--------------------------------------------------------------------------
349 
351 
352  //!-------------------------------------------------------------------------
353  //! @brief Receive message operation.
354  //! @note None
355  //! @return BOOL - Operation status
356  //! @retval false - Operation not done
357  //! @retval true - Operation done successfuly
358  //! \par Override
359  //! Not requered
360  //! @attention None
361  //--------------------------------------------------------------------------
362 
364 
365  //--------------------------------------------------------------------------
366  // ??? ==> ANVILEX KM: ToDo: Move to the hardware class
367  //--------------------------------------------------------------------------
368 
369  U32 Get_Module_ID();
370 
371  //!-------------------------------------------------------------------------
372  //! @brief Send information about digital I/O baortd driver over communication link protocol
373  //! @note This method sends information about digital I/O driver over specified communication link protocol.
374  //! @param [in] *object_Protocol - Pointer to the communication link protocol
375  //! @return None
376  //! \par Override
377  //! Not allowed
378  //! @attention None
379  //--------------------------------------------------------------------------
380 
381  virtual VOID Send_Information( TProtocol_Base *object_Protocol );
382 
383  //--------------------------------------------------------------------------
384  // Public variables
385  //--------------------------------------------------------------------------
386 
387  //--------------------------------------------------------------------------
388  // Function block parameter connectors
389  //--------------------------------------------------------------------------
390 
391  //--------------------------------------------------------------------------
392  // Function block input connectors
393  //--------------------------------------------------------------------------
394 
395  //! @note According to TFSM_State
398 
399  //! @brief 0x300 : EVSEDCMaxLimits register
404 
405  //! @brief 0x301 : EVSEDCRegulationLimits register
410 
411  //! @brief 0x302 : EVSEDCStatus register
423 
424  //! @brief 0x303 : EVSEPlugStatus register
428 
429  //! @brief 0x304 : EVSESchedule register
433 
434  //! @brief 0x305 : EVSEScheduleTime register
437 
438  //! @brief 0x306 : EVSEID register
440 
441  //! @brief 0x307 : EVSESessionID register
443 
444  //! @brief 0x308 : EVSEDateTime register
446 
447  //! @brief 0x309 : EVSEChargeControl register
449 
450  //--------------------------------------------------------------------------
451  // Function block output connectors
452  //--------------------------------------------------------------------------
453 
456 
457  //! @brief 0x100 : ChargeInfo register
467 
468  //! @brief 0x101 : SoftwareInfo register
473 
474  //! @brief 0x102 : ErrorCodes register
479 
480  //! @brief 0x200 : EVDCMaxLimits register
486 
487  //! @brief 0x201 : EVDCChargeTargets register
491 
492  //! @brief 0x202 : EVStatusDisplay register
503 
504  //! @brief 0x203 : EVDCEnergyLimits register
507 
508  //! @brief 0x204 : EVMACAddress register
510 
511  //----------------------------------------------------------------------------
512  // Protected defines, mathods and variables
513  //----------------------------------------------------------------------------
514 
515  protected:
516 
517  //----------------------------------------------------------------------------
518  // Private defines, mathods and variables
519  //----------------------------------------------------------------------------
520 
521  private:
522 
523  //--------------------------------------------------------------------------
524  // Private defines
525  //--------------------------------------------------------------------------
526 
527  //--------------------------------------------------------------------------
528  // Private variables
529  //--------------------------------------------------------------------------
530 
531  //! @brief Status register struct
532  typedef union
533  {
534 
535  //! @brief Register raw data
537 
538  struct
539  {
540 
541  //! @brief Bit 0, Receive buffer not empty
543 
544  //! @brief Bit 1, Transmit buffer empty
546 
547  //! @brief Bit 2, CRC error flag
549 
550  //! @brief Bit 3, Overrun error
552 
553  //! @brief Bit 4, Busy flag
555 
556  //! @brief Bit 5, Received
557  U16 :1;
558 
559  //! @brief Bit 6, Received
560  U16 :1;
561 
562  //! @brief Bit 7, Received
563  U16 :1;
564 
565  //! @brief Bit 8, Received
566  U16 :1;
567 
568  //! @brief Bit 9, Received
569  U16 :1;
570 
571  //! @brief Bit 10, Received
572  U16 :1;
573 
574  //! @brief Bit 11, Received
575  U16 :1;
576 
577  //! @brief Bit 12, Received
578  U16 :1;
579 
580  //! @brief Bit 13, Received
581  U16 :1;
582 
583  //! @brief Bit 14, Received
584  U16 :1;
585 
586  //! @brief Bit 15, Received
587  U16 :1;
588  };
589  } TStatus;
590 
591  //! @brief Control register struct
592  typedef union
593  {
594 
595  //! @brief Register raw data
597 
598  struct
599  {
600 
601  //! @brief Bit 0, SPI enable
603 
604  //! @brief Bit 1, Start transmit
606 
607  //! @brief Bit 2, Received
609 
610  //! @brief Bit 3, Received
611  U16 :1;
612 
613  //! @brief Bit 4, Received
614  U16 :1;
615 
616  //! @brief Bit 5, Received
617  U16 :1;
618 
619  //! @brief Bit 6, Received
620  U16 :1;
621 
622  //! @brief Bit 7, Received
623  U16 :1;
624 
625  //! @brief Bit 8, Received
626  U16 :1;
627 
628  //! @brief Bit 9, Received
629  U16 :1;
630 
631  //! @brief Bit 10, Received
632  U16 :1;
633 
634  //! @brief Bit 11, Received
635  U16 :1;
636 
637  //! @brief Bit 12, Received
638  U16 :1;
639 
640  //! @brief Bit 13, Received
641  U16 :1;
642 
643  //! @brief Bit 14, Received
644  U16 :1;
645 
646  //! @brief Bit 15, Received
647  U16 :1;
648  };
649  } TControl;
650 
651  //! @brief Pointer to the memory area in FPGA address space
653 
654  //! @brief FSM state definitions
655  typedef enum
656  {
657 
658  //! @brief Idle state
660 
661  //! @brief Init state
663 
664  //! @brief Authentication state
666 
667  //! @brief Parameter state
669 
670  //! @brief PreCharge state
672 
673  //! @brief Charge state
675 
676  //! @brief Welding state
678 
679  //! @brief StopCharge state
681 
682  //! @brief SessionStop state
684 
685  //! @brief ShutOff state
687 
688  //! @brief Paused state
689  enum_Paused = 10,
690 
691  //! @brief Error state
692  enum_Error = 11,
693 
695 
696  //! @brief FSM state definitions
697  typedef enum
698  {
699 
700  //! @brief Idle state
702 
703  //! @brief Idle state
705 
706  //! @brief Init states
710 
711  //! @brief Authentication states
713 
714  //! @brief Parameter states
723 
724  //! @brief Isolation states
727 
728  //! @brief PreCharge states
732 
733  //! @brief Charge states
740 
741  //! @brief Welding states
744 
745  } TFSM_State;
746 
748 
749  //! @brief Register definitions
750  typedef enum : U16
751  {
752 
753  //! @brief ChargeInfo register address
755 
756  //! @brief SoftwareInfo register address
758 
759  // ErrorCodes register address
761 
762  //! @brief EVDCMaxLimits register address
764 
765  //! @brief EVDCChargeTargets register address
767 
768  //! @brief EVStatusDisplay register address
770 
771  //! @brief EVDCEnergyLimits register address
773 
774  //! @brief EVMACAddress register address
776 
777  //! @brief EVSEDCMaxLimits register address
779 
780  //! @brief EVSEDCRegulationLimits register address
782 
783  //! @brief EVSEDCStatus register address
785 
786  //! @brief EVSEPlugStatus register address
788 
789  //! @brief EVSESchedule register address
791 
792  //! @brief EVSEScheduleTime register address
794 
795  //! @brief EVSEID register address
796  enum_EVSEID = (U16)0x306,
797 
798  //! @brief EVSESessionID register address
800 
801  //! @brief EVSEDateTime register address
803 
804  //! @brief EVSEChargeControl register address
806 
808 
809  //! @brief object CME write register
811 
812  //! @brief object CME read register
814 
815  //! @brief Receive data
817 
818  //! @brief Ready to send data flag
820 
821  //! @brief Received data flag
823 
824  //! @brief Read register address
826 
827  //! @brief Write or read data
829 
830  //! @brief Communication transaction in progress flag
832 
833 };
834 
835 //------------------------------------------------------------------------------
836 // End of file
837 //------------------------------------------------------------------------------
int BOOL
Boolean datatype definition.
Definition: Defines.h:124
unsigned long long U64
Binary 64-Bit unsigned integer datatype defenition.
Definition: Defines.h:213
void VOID
Datatypesess datatype definition.
Definition: Defines.h:105
unsigned long U32
Binary 32-Bit unsigned integer datatype defenition.
Definition: Defines.h:203
unsigned short U16
Binary 16-Bit unsigned integer datatype defenition.
Definition: Defines.h:193
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
KG3 digital I/O board (P021.23 / KG3 EVIO T1) type 1 class.
Definition: P021_23_KG3_EVIO.h:75
TBlock_Input_Connector object_u8_EVSE_Voltage_Limit_Achieved
Definition: P021_23_KG3_EVIO.h:414
TBlock_Output_Connector object_u16_EV_Max_Current
0x200 : EVDCMaxLimits register
Definition: P021_23_KG3_EVIO.h:481
BOOL Write_EVSEDateTime()
Write EVSEDateTime register operation.
Definition: P021_23_KG3_EVIO.cpp:1121
TBlock_Output_Connector object_u16_EV_Energy_Capacity
0x203 : EVDCEnergyLimits register
Definition: P021_23_KG3_EVIO.h:505
virtual VOID Init()
Function block initialisation method.
Definition: P021_23_KG3_EVIO.cpp:217
TBlock_Input_Connector object_u16_EVSEPresentVoltage
Definition: P021_23_KG3_EVIO.h:413
BOOL bool_Received_Data
Received data flag.
Definition: P021_23_KG3_EVIO.h:822
TBlock_Input_Connector object_u16_EVSE_Max_Power
Definition: P021_23_KG3_EVIO.h:402
TBlock_Output_Connector object_u8_EV_Bulk_SOC
Definition: P021_23_KG3_EVIO.h:485
TBlock_Input_Connector object_u16_EVSE_Max_Voltage
Definition: P021_23_KG3_EVIO.h:401
TBlock_Input_Connector object_u8_EVSE_CurrentLimit_Achieved
Definition: P021_23_KG3_EVIO.h:418
TBlock_Output_Connector object_u8_ProximityPinState
Definition: P021_23_KG3_EVIO.h:459
TBlock_Output_Connector object_u16_EV_Max_Power
Definition: P021_23_KG3_EVIO.h:482
TBlock_Output_Connector object_u16_EV_Pre_Charge_Voltage
Definition: P021_23_KG3_EVIO.h:490
TBlock_Input_Connector object_u8_EVSE_Processing_CPD
Definition: P021_23_KG3_EVIO.h:421
TFSM_State
FSM state definitions.
Definition: P021_23_KG3_EVIO.h:698
@ enum_Isolation_Read_EVStatusDisplay
Definition: P021_23_KG3_EVIO.h:726
@ enum_Charge_Read_EVStatusDisplay
Definition: P021_23_KG3_EVIO.h:736
@ enum_Isolation_Write_EVSEDCStatus
Isolation states.
Definition: P021_23_KG3_EVIO.h:725
@ enum_Charge_Write_EVSEDCMaxLimits
Definition: P021_23_KG3_EVIO.h:735
@ enum_Charge_Read_EVDCChargeTargets
Definition: P021_23_KG3_EVIO.h:737
@ enum_Parameter_Read_EVStatusDisplay
Definition: P021_23_KG3_EVIO.h:720
@ enum_Charge_Write_EVSEDCStatus
Charge states.
Definition: P021_23_KG3_EVIO.h:734
@ enum_Decode
Idle state.
Definition: P021_23_KG3_EVIO.h:704
@ enum_Parameter_Write_EVSEDCMaxLimits
Definition: P021_23_KG3_EVIO.h:716
@ enum_Welding_Write_EVSEDCStatus
Welding states.
Definition: P021_23_KG3_EVIO.h:742
@ enum_Init_Read_EVMacAddress
Definition: P021_23_KG3_EVIO.h:709
@ enum_Init_Write_EVSEDateTime
Init states.
Definition: P021_23_KG3_EVIO.h:707
@ enum_PreCharge_Read_EVDCChargeTargets
Definition: P021_23_KG3_EVIO.h:731
@ enum_Charge_Read_EVDCMaxLimits
Definition: P021_23_KG3_EVIO.h:738
@ enum_PreCharge_Write_EVSEDCStatus
PreCharge states.
Definition: P021_23_KG3_EVIO.h:729
@ enum_Parameter_Write_EVSEDCStatus
Parameter states.
Definition: P021_23_KG3_EVIO.h:715
@ enum_Authentication_Write_EVSEDCStatus
Authentication states.
Definition: P021_23_KG3_EVIO.h:712
@ enum_Welding_Read_EVStatusDisplay
Definition: P021_23_KG3_EVIO.h:743
@ enum_Init_Write_EVSEDCStatus
Definition: P021_23_KG3_EVIO.h:708
@ enum_PreCharge_Read_EVStatusDisplay
Definition: P021_23_KG3_EVIO.h:730
@ enum_Parameter_Read_EVDCMaxLimits_2
Definition: P021_23_KG3_EVIO.h:722
@ enum_Parameter_Read_EVDCMaxLimits
Definition: P021_23_KG3_EVIO.h:719
@ enum_Parameter_Read_EVDCEnergyLimits
Definition: P021_23_KG3_EVIO.h:721
@ enum_Charge_Read_EVStatusDisplay_2
Definition: P021_23_KG3_EVIO.h:739
@ enum_Done
Idle state.
Definition: P021_23_KG3_EVIO.h:701
@ enum_Parameter_Write_EVSEDCStatus_2
Definition: P021_23_KG3_EVIO.h:718
@ enum_Parameter_Write_EVSEDCRegulationLimits
Definition: P021_23_KG3_EVIO.h:717
TBlock_Input_Connector object_u8_EVSE_Status_Code
Definition: P021_23_KG3_EVIO.h:419
TBlock_Output_Connector object_u8_Alive_Counter
Definition: P021_23_KG3_EVIO.h:465
BOOL bool_Ready_To_Send
Ready to send data flag.
Definition: P021_23_KG3_EVIO.h:819
TBlock_Output_Connector object_u16_Error_Info_2
Definition: P021_23_KG3_EVIO.h:477
BOOL Write_EVSEDCStatus()
Write EVSEDCStatus register operation.
Definition: P021_23_KG3_EVIO.cpp:1165
TBlock_Output_Connector object_u16_Error_Info_0
0x102 : ErrorCodes register
Definition: P021_23_KG3_EVIO.h:475
virtual ~TP021_23_KG3_EVIO_T1()
Function block class destructor method.
Definition: P021_23_KG3_EVIO.cpp:194
TBlock_Input_Connector object_u8_EVSE_Proximity_Pin_State
Definition: P021_23_KG3_EVIO.h:426
TBlock_Output_Connector object_u8_StateMachineState
Definition: P021_23_KG3_EVIO.h:460
TBlock_Output_Connector object_u16_EV_Max_Voltage
Definition: P021_23_KG3_EVIO.h:483
TBlock_Output_Connector object_u8_Software_Version_Major
0x101 : SoftwareInfo register
Definition: P021_23_KG3_EVIO.h:469
TBlock_Input_Connector object_u64_EVSE_ID
0x306 : EVSEID register
Definition: P021_23_KG3_EVIO.h:439
TBlock_Output_Connector object_u8_Diode_Present
Definition: P021_23_KG3_EVIO.h:466
TBlock_Input_Connector object_u32_EVSE_PMax_Schedule_Duration
0x305 : EVSEScheduleTime register
Definition: P021_23_KG3_EVIO.h:435
TBlock_Input_Connector object_u16_EVSE_Min_Voltage
Definition: P021_23_KG3_EVIO.h:407
TBlock_Input_Connector object_u8_EVSE_Current_Regulation_Tolerance
Definition: P021_23_KG3_EVIO.h:409
TBlock_Output_Connector object_u16_EV_Target_Voltage
Definition: P021_23_KG3_EVIO.h:489
U32 Get_Module_ID()
Definition: P021_23_KG3_EVIO.cpp:1566
TBlock_Input_Connector object_u32_EVSE_PMax_Schedule_Start
Definition: P021_23_KG3_EVIO.h:436
TBlock_Input_Connector object_u8_EVSE_Peak_Current_Ripple
Definition: P021_23_KG3_EVIO.h:408
BOOL Read_EVDCMaxLimits()
Read EVDCMaxLimits register operation.
Definition: P021_23_KG3_EVIO.cpp:1372
TBlock_Input_Connector object_u16_EVSE_Energy_To_Be_Delivered
Definition: P021_23_KG3_EVIO.h:403
U64 u64_Receive_Data
Receive data.
Definition: P021_23_KG3_EVIO.h:816
TBlock_Input_Connector object_u8_EVSE_Control_Pilot_Duty_Cycle
0x303 : EVSEPlugStatus register
Definition: P021_23_KG3_EVIO.h:425
TBlock_Output_Connector object_u8_EV_Full_SOC
Definition: P021_23_KG3_EVIO.h:484
BOOL bool_Communication_Transaction_In_Progress
Communication transaction in progress flag.
Definition: P021_23_KG3_EVIO.h:831
VOID Map(TP021_23_KG3_EVIO_Registers *struct_Registers_Base_Address)
Hardware mapping method.
Definition: P021_23_KG3_EVIO.cpp:202
TBlock_Input_Connector object_u8_Command
Definition: P021_23_KG3_EVIO.h:396
BOOL Receive_Message()
Receive message operation.
Definition: P021_23_KG3_EVIO.cpp:331
TCME_Register object_CME_Read_Register
object CME read register
Definition: P021_23_KG3_EVIO.h:813
virtual VOID Execute()
Function block execution method.
Definition: P021_23_KG3_EVIO.cpp:365
TBlock_Output_Connector object_u8_EV_SoC
0x202 : EVStatusDisplay register
Definition: P021_23_KG3_EVIO.h:493
TCME_Register object_CME_Write_Register
object CME write register
Definition: P021_23_KG3_EVIO.h:810
BOOL Read_EVStatusDisplay()
Read EVStatusDisplay register operation.
Definition: P021_23_KG3_EVIO.cpp:1420
TBlock_Output_Connector object_u16_EV_Energy_Request
Definition: P021_23_KG3_EVIO.h:506
TBlock_Output_Connector object_u64_EV_Mac_Address
0x204 : EVMACAddress register
Definition: P021_23_KG3_EVIO.h:509
TBlock_Output_Connector object_u8_EV_Cabin_Conditioning
Definition: P021_23_KG3_EVIO.h:499
TBlock_Output_Connector object_u16_Error_Info_3
Definition: P021_23_KG3_EVIO.h:478
TBlock_Output_Connector object_u8_Software_Version_Minor
Definition: P021_23_KG3_EVIO.h:470
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about digital I/O baortd driver over communication link protocol.
Definition: P021_23_KG3_EVIO.cpp:1581
TBlock_Output_Connector object_bool_Command_Processing_Error
Definition: P021_23_KG3_EVIO.h:455
TBlock_Output_Connector object_bool_Command_Processing_Done
Definition: P021_23_KG3_EVIO.h:454
VOID Send_Writing_Frame(U16 u16_Register_Address)
Send data frame for writing operation.
Definition: P021_23_KG3_EVIO.cpp:249
TBlock_Input_Connector object_u8_EVSE_Free_Service
Definition: P021_23_KG3_EVIO.h:415
TFSM_State object_FSM_State
Definition: P021_23_KG3_EVIO.h:747
TBlock_Output_Connector object_u8_EV_Compatible
Definition: P021_23_KG3_EVIO.h:463
TBlock_Input_Connector object_u64_EVSE_Date_Time_Now
0x308 : EVSEDateTime register
Definition: P021_23_KG3_EVIO.h:445
TBlock_Output_Connector object_u8_EV_Error_Code
Definition: P021_23_KG3_EVIO.h:494
TBlock_Output_Connector object_u8_Control_Pilot_Duty_Cycle
0x100 : ChargeInfo register
Definition: P021_23_KG3_EVIO.h:458
TBlock_Output_Connector object_u16_Error_Info_1
Definition: P021_23_KG3_EVIO.h:476
BOOL Write_EVSEDCMaxLimits()
Write EVSEDCMaxLimits register operation.
Definition: P021_23_KG3_EVIO.cpp:1268
TBlock_Output_Connector object_u8_EV_Charging_Complete
Definition: P021_23_KG3_EVIO.h:496
TBlock_Output_Connector object_u8_TCP_Status
Definition: P021_23_KG3_EVIO.h:464
TBlock_Input_Connector object_bool_Command_Processing_Start
Definition: P021_23_KG3_EVIO.h:397
TBlock_Input_Connector object_u16_EVSE_PMax_Schedule_Power
Definition: P021_23_KG3_EVIO.h:431
TBlock_Input_Connector object_u8_EVSE_Isolation_Status
Definition: P021_23_KG3_EVIO.h:416
TBlock_Output_Connector object_u32_EV_Time_To_Full_SoC
Definition: P021_23_KG3_EVIO.h:501
BOOL Read_EVDCEnergyLimits()
Read EVDCEnergyLimits register operation.
Definition: P021_23_KG3_EVIO.cpp:1473
volatile TP021_23_KG3_EVIO_Registers * struct_Registers
Pointer to the memory area in FPGA address space.
Definition: P021_23_KG3_EVIO.h:652
TBlock_Output_Connector object_u8_Software_Version_Config
Definition: P021_23_KG3_EVIO.h:472
TBlock_Input_Connector object_u8_EVSE_Processing_CA
Definition: P021_23_KG3_EVIO.h:422
TBlock_Output_Connector object_u8_Software_Version_Patch
Definition: P021_23_KG3_EVIO.h:471
TBlock_Input_Connector object_u16_EVSE_PMax_Schedule_ID
0x304 : EVSESchedule register
Definition: P021_23_KG3_EVIO.h:430
TBlock_Input_Connector object_u16_EVSE_Current_Limit
0x309 : EVSEChargeControl register
Definition: P021_23_KG3_EVIO.h:448
TBlock_Output_Connector object_u8_EV_RESS_Conditioning
Definition: P021_23_KG3_EVIO.h:498
TP021_23_KG3_EVIO_T1()
Function block class constructor method.
Definition: P021_23_KG3_EVIO.cpp:68
TBlock_Input_Connector object_u8_EVSE_SA_Schedule_Tuple_ID
Definition: P021_23_KG3_EVIO.h:432
TBlock_Input_Connector object_u8_EVSE_Processing_CC
Definition: P021_23_KG3_EVIO.h:420
TBlock_Input_Connector object_u16_EVSE_Max_Current
0x300 : EVSEDCMaxLimits register
Definition: P021_23_KG3_EVIO.h:400
U16 u16_Read_Register_Address
Read register address.
Definition: P021_23_KG3_EVIO.h:825
TBlock_Input_Connector object_u64_EVSE_Session_ID
0x307 : EVSESessionID register
Definition: P021_23_KG3_EVIO.h:442
TBlock_Output_Connector object_u32_EV_Time_To_Bulk_SoC
Definition: P021_23_KG3_EVIO.h:497
U16 u16_Write_Read_Data
Write or read data.
Definition: P021_23_KG3_EVIO.h:828
VOID Send_Reading_Frame(U16 u16_Register_Address)
Send data frame for reading operation.
Definition: P021_23_KG3_EVIO.cpp:279
TRgisters_Address
Register definitions.
Definition: P021_23_KG3_EVIO.h:751
@ enum_EVDCChargeTargets
EVDCChargeTargets register address.
Definition: P021_23_KG3_EVIO.h:766
@ enum_ChargeInfo
ChargeInfo register address.
Definition: P021_23_KG3_EVIO.h:754
@ enum_SoftwareInfo
SoftwareInfo register address.
Definition: P021_23_KG3_EVIO.h:757
@ enum_EVSEDCRegulationLimits
EVSEDCRegulationLimits register address.
Definition: P021_23_KG3_EVIO.h:781
@ enum_EVDCEnergyLimits
EVDCEnergyLimits register address.
Definition: P021_23_KG3_EVIO.h:772
@ enum_ErrorCodes
Definition: P021_23_KG3_EVIO.h:760
@ enum_EVSEDateTime
EVSEDateTime register address.
Definition: P021_23_KG3_EVIO.h:802
@ enum_EVMACAddress
EVMACAddress register address.
Definition: P021_23_KG3_EVIO.h:775
@ enum_EVSEDCStatus
EVSEDCStatus register address.
Definition: P021_23_KG3_EVIO.h:784
@ enum_EVSEDCMaxLimits
EVSEDCMaxLimits register address.
Definition: P021_23_KG3_EVIO.h:778
@ enum_EVSEID
EVSEID register address.
Definition: P021_23_KG3_EVIO.h:796
@ enum_EVSEPlugStatus
EVSEPlugStatus register address.
Definition: P021_23_KG3_EVIO.h:787
@ enum_EVDCMaxLimits
EVDCMaxLimits register address.
Definition: P021_23_KG3_EVIO.h:763
@ enum_EVSESessionID
EVSESessionID register address.
Definition: P021_23_KG3_EVIO.h:799
@ enum_EVSEScheduleTime
EVSEScheduleTime register address.
Definition: P021_23_KG3_EVIO.h:793
@ enum_EVSEChargeControl
EVSEChargeControl register address.
Definition: P021_23_KG3_EVIO.h:805
@ enum_EVStatusDisplay
EVStatusDisplay register address.
Definition: P021_23_KG3_EVIO.h:769
@ enum_EVSESchedule
EVSESchedule register address.
Definition: P021_23_KG3_EVIO.h:790
TFSM_State_Decoder
FSM state definitions.
Definition: P021_23_KG3_EVIO.h:656
@ enum_Welding
Welding state.
Definition: P021_23_KG3_EVIO.h:677
@ enum_Idle
Idle state.
Definition: P021_23_KG3_EVIO.h:659
@ enum_Parameter
Parameter state.
Definition: P021_23_KG3_EVIO.h:668
@ enum_Authentication
Authentication state.
Definition: P021_23_KG3_EVIO.h:665
@ enum_Charge
Charge state.
Definition: P021_23_KG3_EVIO.h:674
@ enum_ShutOff
ShutOff state.
Definition: P021_23_KG3_EVIO.h:686
@ enum_Paused
Paused state.
Definition: P021_23_KG3_EVIO.h:689
@ enum_StopCharge
StopCharge state.
Definition: P021_23_KG3_EVIO.h:680
@ enum_PreCharge
PreCharge state.
Definition: P021_23_KG3_EVIO.h:671
@ enum_Error
Error state.
Definition: P021_23_KG3_EVIO.h:692
@ enum_SessionStop
SessionStop state.
Definition: P021_23_KG3_EVIO.h:683
@ enum_Init
Init state.
Definition: P021_23_KG3_EVIO.h:662
TBlock_Output_Connector object_u8_SLAC_Link_Status
Definition: P021_23_KG3_EVIO.h:502
TBlock_Input_Connector object_u8_EVSE_Control_Pilot_State
Definition: P021_23_KG3_EVIO.h:427
BOOL Write_EVSEDCRegulationLimits()
Write EVSEDCRegulationLimits register operation.
Definition: P021_23_KG3_EVIO.cpp:1320
TBlock_Output_Connector object_u8_EV_Bulk_Charging_Complete
Definition: P021_23_KG3_EVIO.h:495
TBlock_Input_Connector object_u8_EVSE_PowerLimit_Achieved
Definition: P021_23_KG3_EVIO.h:417
TBlock_Input_Connector object_u16_EVSE_Min_Current
0x301 : EVSEDCRegulationLimits register
Definition: P021_23_KG3_EVIO.h:406
TBlock_Input_Connector object_u16_EVSEPresentCurrent
0x302 : EVSEDCStatus register
Definition: P021_23_KG3_EVIO.h:412
TBlock_Output_Connector object_u8_Control_Pilot_State
Definition: P021_23_KG3_EVIO.h:461
BOOL Read_EVDCChargeTargets()
Read EVDCChargeTargets register operation.
Definition: P021_23_KG3_EVIO.cpp:1518
TBlock_Output_Connector object_u8_Actual_Charge_Protocol
Definition: P021_23_KG3_EVIO.h:462
BOOL Check_Register_Writing_Response()
Check register writing response operation.
Definition: P021_23_KG3_EVIO.cpp:309
BOOL Read_EVMacAddress()
Write EVMacAddress register operation.
Definition: P021_23_KG3_EVIO.cpp:1224
TBlock_Output_Connector object_u8_EV_Ready
Definition: P021_23_KG3_EVIO.h:500
TBlock_Output_Connector object_u16_EV_Target_Current
0x201 : EVDCChargeTargets register
Definition: P021_23_KG3_EVIO.h:488
Definition: Protocol_Base.h:57
Register structure for digital I/O access.
Definition: P021_23_KG3_EVIO.h:89
U16 u16_Reserved_10
0x0A : Reserved
Definition: P021_23_KG3_EVIO.h:124
U16 u16_Reserved_15
0x0F : Reserved
Definition: P021_23_KG3_EVIO.h:139
U16 u16_Reserved_13
0x0D : Reserved
Definition: P021_23_KG3_EVIO.h:133
U16 u16_Unit_ID_H
0x01 : Module identification high register
Definition: P021_23_KG3_EVIO.h:95
U16 u16_Register_Address
0x04 : Register address
Definition: P021_23_KG3_EVIO.h:113
U16 u16_Reserved_11
0x0B : Reserved
Definition: P021_23_KG3_EVIO.h:127
U16 u16_Reserved_14
0x0E : Reserved
Definition: P021_23_KG3_EVIO.h:136
U16 u16_Unit_ID_L
0x00 : Module identification low register
Definition: P021_23_KG3_EVIO.h:92
U16 u16_CRC7
0x09 : Digital output data write
Definition: P021_23_KG3_EVIO.h:121
U16 u16_Control_Word
0x02 : Control word
Definition: P021_23_KG3_EVIO.h:107
U16 u16_Status_Word
0x03 : Status word
Definition: P021_23_KG3_EVIO.h:110
U16 u16_Reserved_12
0x0C : Reserved
Definition: P021_23_KG3_EVIO.h:130
U16 u16_Start_Transmit
Bit 1, Start transmit.
Definition: P021_23_KG3_EVIO.h:605
U16 u16_SPE
Bit 0, SPI enable.
Definition: P021_23_KG3_EVIO.h:602
U16 u16_Control
Register raw data.
Definition: P021_23_KG3_EVIO.h:596
U16 u16_Data_Direction
Bit 2, Received.
Definition: P021_23_KG3_EVIO.h:608
U16 u16_Status
Register raw data.
Definition: P021_23_KG3_EVIO.h:536
U16 u16_Ready
Bit 1, Transmit buffer empty.
Definition: P021_23_KG3_EVIO.h:545
U16 u16_RXNE
Bit 0, Receive buffer not empty.
Definition: P021_23_KG3_EVIO.h:542
U16 u16_OVR
Bit 3, Overrun error.
Definition: P021_23_KG3_EVIO.h:551
U16 u16_BSY
Bit 4, Busy flag.
Definition: P021_23_KG3_EVIO.h:554
U16 u16_CRCERR
Bit 2, CRC error flag.
Definition: P021_23_KG3_EVIO.h:548