Prechádzať zdrojové kódy

2020.10.06 / Wendell

Actions:
1. Modify define.h for DO360 project

Files:
1. As follow commit history
Wendell 4 rokov pred
rodič
commit
65b8a05450
1 zmenil súbory, kde vykonal 300 pridanie a 206 odobranie
  1. 300 206
      EVSE/Projects/define.h

+ 300 - 206
EVSE/Projects/define.h

@@ -37,19 +37,21 @@ Storage							0x0A200000-0x7FFFFFFF		1886 MB
 
 /*relevant to Quantity */
 #ifdef AWRegular
-	#define MAX_PSU_QUANTITY		62
-	#define CHAdeMO_QUANTITY		1
-	#define CCS_QUANTITY			1
-	#define GB_QUANTITY				0
-	#define AC_QUANTITY				1
-	#define PSU_QUANTITY			2
-	#define ONE_CONNECTOR_USE		0
+    #define MAX_PSU_QUANTITY        62
+    #define CHAdeMO_QUANTITY        1
+    #define CCS_QUANTITY            1
+    #define GB_QUANTITY             0
+    #define AC_QUANTITY             1
+    #define GENERAL_GUN_QUANTITY    0
+    #define PSU_QUANTITY            2
+    #define ONE_CONNECTOR_USE       0
 #elif BYTONGB
 	#define MAX_PSU_QUANTITY        62
 	#define CHAdeMO_QUANTITY        1
 	#define CCS_QUANTITY            1
 	#define GB_QUANTITY             0
 	#define AC_QUANTITY             1
+    #define GENERAL_GUN_QUANTITY	0
 	#define PSU_QUANTITY            2
 	#define ONE_CONNECTOR_USE       0
 #elif DW30
@@ -58,6 +60,7 @@ Storage							0x0A200000-0x7FFFFFFF		1886 MB
 	#define CCS_QUANTITY            1
 	#define GB_QUANTITY             0
 	#define AC_QUANTITY             0
+    #define GENERAL_GUN_QUANTITY	0
 	#define PSU_QUANTITY            2
 	#define ONE_CONNECTOR_USE       0
 #elif DM30
@@ -66,6 +69,7 @@ Storage							0x0A200000-0x7FFFFFFF		1886 MB
 	#define CCS_QUANTITY            1
 	#define GB_QUANTITY             0
 	#define AC_QUANTITY             0
+    #define GENERAL_GUN_QUANTITY	0
 	#define PSU_QUANTITY            2
 	#define ONE_CONNECTOR_USE       0
 #elif DS60120
@@ -74,6 +78,7 @@ Storage							0x0A200000-0x7FFFFFFF		1886 MB
 	#define CCS_QUANTITY            1
 	#define GB_QUANTITY             0
 	#define AC_QUANTITY             0
+    #define GENERAL_GUN_QUANTITY	0
 	#define PSU_QUANTITY            2
 	#define ONE_CONNECTOR_USE       0
 #elif DS60210
@@ -82,6 +87,7 @@ Storage							0x0A200000-0x7FFFFFFF		1886 MB
 	#define CCS_QUANTITY            1
 	#define GB_QUANTITY             0
 	#define AC_QUANTITY             0
+    #define GENERAL_GUN_QUANTITY	0
 	#define PSU_QUANTITY            2
 	#define ONE_CONNECTOR_USE       0
 #elif PlugIt360
@@ -90,6 +96,7 @@ Storage							0x0A200000-0x7FFFFFFF		1886 MB
     #define CCS_QUANTITY            1
     #define GB_QUANTITY             0
     #define AC_QUANTITY             0
+    #define GENERAL_GUN_QUANTITY	0
     #define PSU_QUANTITY            2
     #define ONE_CONNECTOR_USE       0
 #elif DD360
@@ -98,15 +105,17 @@ Storage							0x0A200000-0x7FFFFFFF		1886 MB
     #define CCS_QUANTITY            1
     #define GB_QUANTITY             0
     #define AC_QUANTITY             0
+    #define GENERAL_GUN_QUANTITY	0
     #define PSU_QUANTITY            2
     #define ONE_CONNECTOR_USE       0
 #elif DO360
     #define MAX_PSU_QUANTITY        62
     #define CHAdeMO_QUANTITY        0
-    #define CCS_QUANTITY            1
+    #define CCS_QUANTITY            0
     #define GB_QUANTITY             0
     #define AC_QUANTITY             0
-    #define PSU_QUANTITY            2
+    #define GENERAL_GUN_QUANTITY    4
+    #define PSU_QUANTITY            6
     #define ONE_CONNECTOR_USE       0
 #elif ATE
     #define MAX_PSU_QUANTITY        62
@@ -114,18 +123,22 @@ Storage							0x0A200000-0x7FFFFFFF		1886 MB
     #define CCS_QUANTITY            1
     #define GB_QUANTITY             0
     #define AC_QUANTITY             0
+    #define GENERAL_GUN_QUANTITY	0
     #define PSU_QUANTITY            2
     #define ONE_CONNECTOR_USE       0
 #else
-	#define MAX_PSU_QUANTITY        62
-	#define CHAdeMO_QUANTITY        1
-	#define CCS_QUANTITY            1
-	#define GB_QUANTITY             0
-	#define AC_QUANTITY             1
-	#define PSU_QUANTITY            2
-	#define ONE_CONNECTOR_USE       0
+    #define MAX_PSU_QUANTITY        62
+    #define CHAdeMO_QUANTITY        1
+    #define CCS_QUANTITY            1
+    #define GB_QUANTITY             0
+    #define AC_QUANTITY             1
+    #define GENERAL_GUN_QUANTITY    0
+    #define PSU_QUANTITY            2
+    #define ONE_CONNECTOR_USE       0
 #endif
 
+#define CONNECTOR_QUANTITY			(CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY + GENERAL_GUN_QUANTITY)
+
 /*SystemLog message*/
 #define SystemLogMessage			//for debug info save to log file
 //#define ConsloePrintLog				//for debug info print to console
@@ -145,6 +158,7 @@ Storage							0x0A200000-0x7FFFFFFF		1886 MB
 #define ShmGBTCommKey			1010
 #define ShmLedBdKey				1011
 #define ShmOcpp20ModuleKey		1012
+#define ShmRelay2BdKey			1013
 
 /**************************************************************************************/
 /****************** Share memory configuration value constant define ******************/
@@ -263,9 +277,9 @@ enum CoreProfile {
 	 QueueOffLineStartTransactionMessage,
 	 AuthorizationKey,
 	 SecurityProfile,
-	 DefaultPrice,
-	 CustomDisplayCostAndPrice,
-	 CustomIdleFeeAfterStop,
+     DefaultPrice,
+     CustomDisplayCostAndPrice,
+     CustomIdleFeeAfterStop,
 	 _CoreProfile_CNT
 };
 
@@ -503,6 +517,90 @@ struct ChargingInfoData
 	int 				EvBatteryStartSoc;				// 0~100%
 };
 
+struct DispenserModule
+{
+    unsigned char   LocalStatus;                // 0: None, 1: Identification, 2: Idle, 3: Alarm, 4: Charging, 5: _DS_Timeout
+    unsigned char   ConnectorQuantity;          //Connector count
+    unsigned char   ConnectorID[2];             //Available Connector ID: 1 ~ 4
+    unsigned char   UserId[32];                 //the user use this ID to trigger charging event, it can be RFID card number, OCPP IdTag, etc.
+    unsigned char   ModelName[64];              //charger model name
+    unsigned char   SerialNumber[64];           //charger system serial number
+    unsigned char   SystemId[128];              //charger system ID
+    unsigned char   AuthorisationMode;          //0: enable, 1: disable
+    unsigned char   RfidCardNumEndian;          //0: little endian,  1: big endian
+    unsigned char   isAPP;                      //for AuthorisationMode=0; 0:false, 1:true
+    unsigned char   isQRCode;                   //for AuthorisationMode=0; 0:false, 1:true
+    unsigned char   isRFID;                     //for AuthorisationMode=0; 0:false, 1:true
+    unsigned char   QRCodeMadeMode;             //for isQRCode=1 ; 0: default	1:customized
+    unsigned char   QRCodeContent[128];         //for QRCodeMadeMode=1
+
+    unsigned char   FactoryConfiguration;       //0: normal, 1: trigger, charger will return the configuration to factory default if trigger
+    unsigned char   CsuBootLoadFwRev[32];       //CSU board bootloader firmware version
+    unsigned char   CsuKernelFwRev[32];         //CSU board OS kernel firmware version
+    unsigned char   CsuRootFsFwRev[32];         //CSU board root file system firmware version
+    unsigned char   CsuPrimFwRev[32];           //CSU board root file system firmware version
+    unsigned char   LcmFwRev[32];               //LCM module firmware version
+    unsigned char   PsuPrimFwRev[32];           //PSU primary firmware version
+    unsigned char   PsuSecFwRev[32];            //PSU secondary firmware version
+    unsigned char   FanModuleFwRev[32];         //Fan  module firmware version
+    unsigned char   RelayModuleFwRev[32];       //Relay control  module firmware version
+    unsigned char   TelcomModemFwRev[32];       //the 3G/4G modem firmware version
+    unsigned char   LedModuleFwRev[32];         //LED control module firmware version
+    unsigned char   Connector1FwRev[32];        //Connector1 module firmware version
+    unsigned char   Connector2FwRev[32];        //Connector2 module firmware version
+    struct   LED    LedInfo;                    // LED configuration info
+};
+
+struct ConnectionInfoData
+{
+    unsigned char Status;                       // 0: free, 1: WaitModelName, 2: DispenserMatched
+    unsigned char DispenserIndex;
+    unsigned int  IpAddress;
+};
+
+struct DispenserInfoData
+{
+    unsigned char               DispenserQuantity;
+    unsigned char               TotalConnectorQuantity;
+    struct DispenserModule      Dispenser[GENERAL_GUN_QUANTITY];
+
+    union
+    {
+        unsigned char Status;
+        struct
+        {
+            unsigned char Dispenser1:1;             //1: ever checkin, 0: never checkin
+            unsigned char Dispenser2:1;             //1: ever checkin, 0: never checkin
+            unsigned char Dispenser3:1;             //1: ever checkin, 0: never checkin
+            unsigned char Dispenser4:1;             //1: ever checkin, 0: never checkin
+            unsigned char Dispenser5:1;             //1: ever checkin, 0: never checkin
+            unsigned char Dispenser6:1;             //1: ever checkin, 0: never checkin
+            unsigned char Dispenser7:1;             //1: ever checkin, 0: never checkin
+            unsigned char Dispenser8:1;             //1: ever checkin, 0: never checkin
+        }Flag;
+    }CheckInLog;                                                        // record dispenser checkin status
+    unsigned char               ConnectorLog[GENERAL_GUN_QUANTITY];     // record connector quantity of dispenser
+    struct ConnectionInfoData   ConnectionInfo[GENERAL_GUN_QUANTITY];
+};
+
+struct WARNING_CODE_INFO
+{
+    unsigned char WarningCount;
+    unsigned char PageIndex;
+    unsigned char WarningCode[10][7];
+    unsigned char Level;
+    unsigned char ExtraErrProcess;                      // 0 : none, 1 : input uvp..
+};
+
+struct ConnectorInfoData
+{
+    unsigned char RemoteStatus;                         // 0: Idle, 1: Preparing, 2: Charging, 3: Terminating
+    unsigned char Enable;                               // 0: Disable, 1: Enable
+    unsigned char ReadyToCharge;                        // 0: Not Ready, 1: Ready to Charge
+    struct ChargingInfoData GeneralChargingData;
+    struct WARNING_CODE_INFO WarningInfo;
+};
+
 struct SysInfoData
 {
 	/**************System***************/
@@ -578,16 +676,13 @@ struct SysInfoData
 	unsigned char		IsAlternatvieConf;				// 0 : normal, 1 : alternative
 	unsigned char		StartToChargingFlag;			// 0 : Stop, 1 : Start for modbus
 	unsigned char 		ChargerType;					// 0 : IEC, 1 : UL
-	unsigned char 		ethInternetConn;				//0: disconnected, 1: connected
-};
+    unsigned char       ethInternetConn;                // 0 : disconnected, 1: connected
 
-struct WARNING_CODE_INFO
-{
-	unsigned char WarningCount;
-	unsigned char PageIndex;
-	unsigned char WarningCode[10][7];
-	unsigned char Level;
-	unsigned char ExtraErrProcess;						// 0 : none, 1 : input uvp..
+    // DO360
+    unsigned char Relay2ModuleHwRev[32];	//Relay control  module hardware version
+    unsigned char Relay2ModuleFwRev[32];	//Relay control  module firmware version
+    struct DispenserInfoData DispenserInfo;
+    struct ConnectorInfoData ConnectorInfo[GENERAL_GUN_QUANTITY];
 };
 
 struct SysConfigAndInfo
@@ -1707,7 +1802,7 @@ struct PsuModuleData
 	unsigned short 	PresentOutputVoltage;	//abcd=abc.d volt
 	unsigned short 	PresentOutputCurrent;	//abcd=abc.d amp
 	unsigned short 	AvailableCurrent;		//abcd=abc.d amp
-	unsigned int 		AvailablePower;		//Watt
+	unsigned int 		AvailablePower;		//abcd=abc.d kWatt
 	char 				CriticalTemp1;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
 	char 				CriticalTemp2;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
 	char 				CriticalTemp3;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
@@ -1729,7 +1824,7 @@ struct PsuGroupData
 	unsigned short 		GroupTargetOutputVoltage;		//abcd=abc.d volt
 	unsigned short 		GroupTargetOutputCurrent;		//abcd=abc.d amp
 	unsigned short 		GroupAvailableCurrent;			//abcd=abc.d amp
-	unsigned int 			GroupAvailablePower;			//Watt
+	unsigned int 			GroupAvailablePower;			//abcd=abc.d kWatt
 	unsigned int		GroupRealOutputPower;		//Watt
 	unsigned short 		GroupPresentOutputVoltage; 	//abcd=abc.d volt
 	unsigned short 		GroupPresentOutputCurrent;		//abcd=abc.d Amps
@@ -3858,151 +3953,151 @@ struct OCPP16ConfigurationTable
 
 struct OCPP16Data
 {
-		unsigned char 							OcppServerURL[512];		//http: non-secure OCPP 1.5-S, https: secure OCPP 1.5-S, ws: non-secure OCPP 1.6-J, wss: secure OCPP 1.6-J"
-		unsigned char 							ChargeBoxId[128];
-		unsigned char 							OcppConnStatus;			//0: disconnected, 1: connected
-		unsigned int 							Timeout_Secs;
-		unsigned short 							Ping_Pong_Interval;
-		union
-		{
-			//Operations Initiated by Charge Point
-			unsigned char CpMsgValue[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-			struct
-			{
-				//CpMsgValue[0]
-				unsigned char DataTransferReq:1;	//bit 0,
-				unsigned char DataTransferConf:1;	//bit 1,
-				unsigned char StartTransactionReq:1; //bit 2,
-				unsigned char StartTransactionConf:1;	//bit 3,
-				unsigned char StopTransactionReq:1;	//bit 4,
-				unsigned char StopTransactionConf:1;	//bit 5,
-				unsigned char :2;	//bit 6,7 , reserved
-			} bits[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		}CpMsg;
-
-		union
-		{
-			//Operations Initiated by Sequence Point
-			unsigned char SpMsgValue[1];
-			struct
-			{
-				//SpMsgValue[0]
-				unsigned char BootNotificationReq :1;	//bit 0,
-				unsigned char BootNotificationConf :1;	//bit 1,
-				unsigned char AuthorizeReq :1; //bit 2,
-				unsigned char AuthorizeConf :1;	//bit 3,
-				unsigned char DiagnosticsStatusNotificationReq :1;	//bit 4,
-				unsigned char DiagnosticsStatusNotificationConf :1;	//bit 5,
-				unsigned char FirmwareStatusNotificationReq :1; //bit 6,
-				unsigned char FirmwareStatusNotificationConf :1; //bit 7,
-			} bits;
-		} SpMsg;
-
-		union
-		{
-			//Operations Initiated by Central System
-			unsigned char CsMsgValue[3 * (CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY)];
-			struct
-			{
-				//CsMsgValue[0]
-				unsigned char CancelReservationReq :1;	//bit 0,
-				unsigned char CancelReservationConf :1;	//bit 1,
-				unsigned char ChangeAvailabilityReq :1; //bit 2,
-				unsigned char ChangeAvailabilityConf :1;	//bit 3,
-				unsigned char ReserveNowReq :1;	//bit 4,
-				unsigned char ReserveNowConf :1;	//bit 5,
-				unsigned char SetChargingProfileReq :1;	//bit 6,
-				unsigned char SetChargingProfileConf :1;	//bit 7,
-				//CsMsgValue[1]
-				unsigned char TriggerMessageReq :1;	//bit 0,
-				unsigned char TriggerMessageConf :1;	//bit 1,
-				unsigned char UnlockConnectorReq :1; //bit 2,
-				unsigned char UnlockConnectorConf :1;	//bit 3,
-				unsigned char RemoteStartTransactionReq :1;	//bit 4,
-				unsigned char RemoteStartTransactionConf :1; //bit 5,
-				unsigned char RemoteStopTransactionReq :1;	//bit 6,
-				unsigned char RemoteStopTransactionConf :1;	//bit 7,
-				//CsMsgValue[2]
-				unsigned char ClearChargingProfileReq :1;	//bit 0,
-				unsigned char ClearChargingProfileConf :1;	//bit 1,
-				unsigned char DataTransferReq :1; //bit 2,
-				unsigned char DataTransferConf :1;	//bit 3,
-				unsigned char GetCompositeScheduleReq :1;	//bit 4,
-				unsigned char GetCompositeScheduleConf :1;	//bit 5,
-				unsigned char :2;	//bit 6,7
-			} bits[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		}CsMsg;
-
-		union
-		{
-			//Operations Initiated by Main System
-			unsigned char MsMsgValue[2];
-			struct
-			{
-				//CsMsgValue[0]
-				unsigned char ChangeConfigurationReq :1;	//bit 0,
-				unsigned char ChangeConfigurationConf :1;	//bit 1,
-				unsigned char ClearCacheReq :1;	//bit 2,
-				unsigned char ClearCacheConf :1;	//bit 3,
-				unsigned char GetConfigurationReq :1;	//bit 4,
-				unsigned char GetConfigurationConf :1;	//bit 5,
-				unsigned char UpdateFirmwareReq :1;	//bit 6,
-				unsigned char UpdateFirmwareConf :1;	//bit 7,
-				//CsMsgValue[1]
-				unsigned char GetDiagnosticsReq :1;	//bit 0,
-				unsigned char GetDiagnosticsConf :1;	//bit 1,
-				unsigned char GetLocalListVersionReq :1; //bit 2,
-				unsigned char GetLocalListVersionConf :1;	//bit 3,
-				unsigned char ResetReq :1; //bit 4,
-				unsigned char ResetConf :1;	//bit 5,
-				unsigned char SendLocalListReq :1;	//bit 6,
-				unsigned char SendLocalListConf :1;	//bit 7,
-			} bits;
-		} MsMsg;
-
-		union
-		{
-			//Operations triggered by CSU
-			unsigned char CSUMsgValue[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-			struct
-			{
-				//CSUMsgValue[0]
-				unsigned char ChargingProfileReq:1;	//bit 0,
-				unsigned char ChargingProfileConf:1;	//bit 0,
-				unsigned char :6;	//bit 1,2,3,4,5,6,7 , reserved
-			} bits[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		}CSUMsg;
-
-		struct StructBootNotification 				BootNotification;
-		struct StructHeartbeat					Heartbeat;
-		struct StructAuthorize		 			Authorize;
-		struct StructStartTransaction				StartTransaction[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructStopTransaction				StopTransaction[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructStatusNotification				StatusNotification[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructCancelReservation			CancelReservation[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructChangeAvailability			ChangeAvailability[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructChangeConfiguration			ChangeConfiguration;
-		struct StructClearCache					ClearCache;
-		struct StructClearChargingProfile			ClearChargingProfile[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructDataTransfer					DataTransfer[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructDiagnosticsStatusNotification	DiagnosticsStatusNotification;
-		struct StructFirmwareStatusNotification		FirmwareStatusNotification;
-		struct StructGetCompositeSchedule		GetCompositeSchedule[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructGetConfiguration				GetConfiguration;
-		struct StructGetDiagnostics				GetDiagnostics;
-		struct StructGetLocalListVersion			GetLocalListVersion;
-		struct StructMeterValues					MeterValues[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructRemoteStartTransaction		RemoteStartTransaction[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructRemoteStopTransaction		RemoteStopTransaction[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructReserveNow					ReserveNow[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructReset						Reset;
-		struct StructSendLocalList				SendLocalList;
-		struct StructSetChargingProfile			SetChargingProfile[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructTriggerMessage				TriggerMessage[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructUnlockConnector			UnlockConnector[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-		struct StructUpdateFirmware				UpdateFirmware;
-		struct OCPP16ConfigurationTable			ConfigurationTable;
-		struct StructChargingProfile		    SmartChargingProfile[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];		
+        unsigned char                           OcppServerURL[512];     //http: non-secure OCPP 1.5-S, https: secure OCPP 1.5-S, ws: non-secure OCPP 1.6-J, wss: secure OCPP 1.6-J"
+        unsigned char                           ChargeBoxId[128];
+        unsigned char                           OcppConnStatus;         //0: disconnected, 1: connected
+        unsigned int                            Timeout_Secs;
+        unsigned short                          Ping_Pong_Interval;
+        union
+        {
+            //Operations Initiated by Charge Point
+            unsigned char CpMsgValue[CONNECTOR_QUANTITY];
+            struct
+            {
+                //CpMsgValue[0]
+                unsigned char DataTransferReq:1;        //bit 0,
+                unsigned char DataTransferConf:1;       //bit 1,
+                unsigned char StartTransactionReq:1;    //bit 2,
+                unsigned char StartTransactionConf:1;   //bit 3,
+                unsigned char StopTransactionReq:1;     //bit 4,
+                unsigned char StopTransactionConf:1;    //bit 5,
+                unsigned char :2;                       //bit 6,7 , reserved
+            } bits[CONNECTOR_QUANTITY];
+        }CpMsg;
+
+        union
+        {
+            //Operations Initiated by Sequence Point
+            unsigned char SpMsgValue[1];
+            struct
+            {
+                //SpMsgValue[0]
+                unsigned char BootNotificationReq :1;               //bit 0,
+                unsigned char BootNotificationConf :1;              //bit 1,
+                unsigned char AuthorizeReq :1;                      //bit 2,
+                unsigned char AuthorizeConf :1;                     //bit 3,
+                unsigned char DiagnosticsStatusNotificationReq :1;  //bit 4,
+                unsigned char DiagnosticsStatusNotificationConf :1; //bit 5,
+                unsigned char FirmwareStatusNotificationReq :1;     //bit 6,
+                unsigned char FirmwareStatusNotificationConf :1;    //bit 7,
+            } bits;
+        } SpMsg;
+
+        union
+        {
+            //Operations Initiated by Central System
+            unsigned char CsMsgValue[3 * (CONNECTOR_QUANTITY)];
+            struct
+            {
+                //CsMsgValue[0]
+                unsigned char CancelReservationReq :1;      //bit 0,
+                unsigned char CancelReservationConf :1;     //bit 1,
+                unsigned char ChangeAvailabilityReq :1;     //bit 2,
+                unsigned char ChangeAvailabilityConf :1;    //bit 3,
+                unsigned char ReserveNowReq :1;             //bit 4,
+                unsigned char ReserveNowConf :1;            //bit 5,
+                unsigned char SetChargingProfileReq :1;     //bit 6,
+                unsigned char SetChargingProfileConf :1;    //bit 7,
+                //CsMsgValue[1]
+                unsigned char TriggerMessageReq :1;         //bit 0,
+                unsigned char TriggerMessageConf :1;        //bit 1,
+                unsigned char UnlockConnectorReq :1;        //bit 2,
+                unsigned char UnlockConnectorConf :1;       //bit 3,
+                unsigned char RemoteStartTransactionReq :1; //bit 4,
+                unsigned char RemoteStartTransactionConf :1;//bit 5,
+                unsigned char RemoteStopTransactionReq :1;  //bit 6,
+                unsigned char RemoteStopTransactionConf :1; //bit 7,
+                //CsMsgValue[2]
+                unsigned char ClearChargingProfileReq :1;   //bit 0,
+                unsigned char ClearChargingProfileConf :1;  //bit 1,
+                unsigned char DataTransferReq :1;           //bit 2,
+                unsigned char DataTransferConf :1;          //bit 3,
+                unsigned char GetCompositeScheduleReq :1;   //bit 4,
+                unsigned char GetCompositeScheduleConf :1;  //bit 5,
+                unsigned char :2;                           //bit 6,7
+            } bits[CONNECTOR_QUANTITY];
+        }CsMsg;
+
+        union
+        {
+            //Operations Initiated by Main System
+            unsigned char MsMsgValue[2];
+            struct
+            {
+                //CsMsgValue[0]
+                unsigned char ChangeConfigurationReq :1;    //bit 0,
+                unsigned char ChangeConfigurationConf :1;   //bit 1,
+                unsigned char ClearCacheReq :1;             //bit 2,
+                unsigned char ClearCacheConf :1;            //bit 3,
+                unsigned char GetConfigurationReq :1;       //bit 4,
+                unsigned char GetConfigurationConf :1;      //bit 5,
+                unsigned char UpdateFirmwareReq :1;         //bit 6,
+                unsigned char UpdateFirmwareConf :1;        //bit 7,
+                //CsMsgValue[1]
+                unsigned char GetDiagnosticsReq :1;         //bit 0,
+                unsigned char GetDiagnosticsConf :1;        //bit 1,
+                unsigned char GetLocalListVersionReq :1;    //bit 2,
+                unsigned char GetLocalListVersionConf :1;   //bit 3,
+                unsigned char ResetReq :1;                  //bit 4,
+                unsigned char ResetConf :1;                 //bit 5,
+                unsigned char SendLocalListReq :1;          //bit 6,
+                unsigned char SendLocalListConf :1;         //bit 7,
+            } bits;
+        } MsMsg;
+
+        union
+        {
+            //Operations triggered by CSU
+            unsigned char CSUMsgValue[CONNECTOR_QUANTITY];
+            struct
+            {
+                //CSUMsgValue[0]
+                unsigned char ChargingProfileReq:1;     //bit 0,
+                unsigned char ChargingProfileConf:1;    //bit 0,
+                unsigned char :6;                       //bit 1,2,3,4,5,6,7 , reserved
+            } bits[CONNECTOR_QUANTITY];
+        }CSUMsg;
+
+		struct StructBootNotification               BootNotification;
+		struct StructHeartbeat                      Heartbeat;
+		struct StructAuthorize                      Authorize;
+		struct StructStartTransaction               StartTransaction[CONNECTOR_QUANTITY];
+		struct StructStopTransaction                StopTransaction[CONNECTOR_QUANTITY];
+		struct StructStatusNotification             StatusNotification[CONNECTOR_QUANTITY];
+		struct StructCancelReservation              CancelReservation[CONNECTOR_QUANTITY];
+		struct StructChangeAvailability             ChangeAvailability[CONNECTOR_QUANTITY];
+		struct StructChangeConfiguration            ChangeConfiguration;
+		struct StructClearCache                     ClearCache;
+		struct StructClearChargingProfile           ClearChargingProfile[CONNECTOR_QUANTITY];
+		struct StructDataTransfer                   DataTransfer[CONNECTOR_QUANTITY];
+		struct StructDiagnosticsStatusNotification  DiagnosticsStatusNotification;
+		struct StructFirmwareStatusNotification     FirmwareStatusNotification;
+		struct StructGetCompositeSchedule           GetCompositeSchedule[CONNECTOR_QUANTITY];
+		struct StructGetConfiguration               GetConfiguration;
+		struct StructGetDiagnostics                 GetDiagnostics;
+		struct StructGetLocalListVersion            GetLocalListVersion;
+		struct StructMeterValues                    MeterValues[CONNECTOR_QUANTITY];
+		struct StructRemoteStartTransaction         RemoteStartTransaction[CONNECTOR_QUANTITY];
+		struct StructRemoteStopTransaction          RemoteStopTransaction[CONNECTOR_QUANTITY];
+		struct StructReserveNow                     ReserveNow[CONNECTOR_QUANTITY];
+		struct StructReset                          Reset;
+		struct StructSendLocalList                  SendLocalList;
+		struct StructSetChargingProfile             SetChargingProfile[CONNECTOR_QUANTITY];
+		struct StructTriggerMessage                 TriggerMessage[CONNECTOR_QUANTITY];
+		struct StructUnlockConnector                UnlockConnector[CONNECTOR_QUANTITY];
+		struct StructUpdateFirmware                 UpdateFirmware;
+		struct OCPP16ConfigurationTable             ConfigurationTable;
+		struct StructChargingProfile                SmartChargingProfile[CONNECTOR_QUANTITY];
 };
 
 
@@ -4973,7 +5068,7 @@ struct NotifyCustomerInformation_20
 
 struct NotifyDisplayMessages_20
 {
-	unsigned int requestId;											// Required. The id of the GetDisplayMessagesRequest that requested this message.
+	unsigned int requestId;                                         // Required. The id of the GetDisplayMessagesRequest that requested this message.
 	unsigned char tbc;												// Optional. "to be continued" indicator. Indicates whether another part of the report follows in an upcoming NotifyDisplayMessagesRequest message. Default value when omitted is false.
 	struct MessageInfoType messageInfo[10];							// Optional. The requested display message as configured in the Charging Station.
 };
@@ -5034,7 +5129,7 @@ struct PublishFirmware_20
 struct PublishFirmwareStatusNotification_20
 {
 	unsigned char status[32];										// Required. This contains the progress status of the publishfirmware installation.
-	unsigned char location[10][512];									// Optional. Required if status is Published. Can be multiple URI’s, if the Local Controller supports e.g. HTTP, HTTPS, and FTP.
+	unsigned char location[10][512];                                // Optional. Required if status is Published. Can be multiple URI’s, if the Local Controller supports e.g. HTTP, HTTPS, and FTP.
 	unsigned int requestId;											// Optional. The request id that was provided in the PublishFirmwareRequest which triggered this action.
 };
 
@@ -5265,7 +5360,7 @@ struct OCPP20Data
 	union
 	{
 		//Operations Initiated by Charge Point
-		unsigned char CpMsgValue[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+		unsigned char CpMsgValue[CONNECTOR_QUANTITY];
 		struct
 		{
 			unsigned char DataTransferReq:1;
@@ -5275,7 +5370,7 @@ struct OCPP20Data
 			unsigned char TransactionEventReq :1;
 			unsigned char TransactionEventConf :1;
 			unsigned char :2;	//bit 6,7 , reserved
-		} bits[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+		} bits[CONNECTOR_QUANTITY];
 	}CpMsg;
 
 	union
@@ -5326,7 +5421,7 @@ struct OCPP20Data
 	union
 	{
 		//Operations Initiated by Central System
-		unsigned char CsMsgValue[3 * (CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY)];
+		unsigned char CsMsgValue[3 * (CONNECTOR_QUANTITY)];
 		struct
 		{
 			unsigned char CancelReservationReq :1;	//bit 0,
@@ -5353,7 +5448,7 @@ struct OCPP20Data
 			unsigned char UnlockConnectorConf :1;	//bit 3,
 			unsigned char :4;						//bit 6,7 , reserved
 
-		} bits[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+		} bits[CONNECTOR_QUANTITY];
 	}CsMsg;
 
 	union
@@ -5440,67 +5535,67 @@ struct OCPP20Data
 	union
 	{
 		//Operations triggered by CSU
-		unsigned char CSUMsgValue[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+		unsigned char CSUMsgValue[CONNECTOR_QUANTITY];
 		struct
 		{
 			//CSUMsgValue[0]
 			unsigned char ChargingProfileReq:1;	//bit 0,
 			unsigned char ChargingProfileConf:1;	//bit 0,
 			unsigned char :6;	//bit 1,2,3,4,5,6,7 , reserved
-		} bits[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+		} bits[CONNECTOR_QUANTITY];
 	}CSUMsg;
 
 	struct Authorize_20 						Authorize;
 	struct BootNotification_20 					BootNotification;
-	struct CancelReservation_20					CancelReservation[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct CancelReservation_20					CancelReservation[CONNECTOR_QUANTITY];
 	struct CertificateSigned_20					CertificateSigned;
-	struct ChangeAvailability_20				ChangeAvailability[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct ChangeAvailability_20				ChangeAvailability[CONNECTOR_QUANTITY];
 	struct ClearCache_20						ClearCache;
-	struct ClearChargingProfile_20				ClearChargingProfile[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct ClearChargingProfile_20				ClearChargingProfile[CONNECTOR_QUANTITY];
 	struct ClearDisplayMessage_20				ClearDisplayMessage;
-	struct ClearedChargingLimit_20				ClearedChargingLimit[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct ClearedChargingLimit_20				ClearedChargingLimit[CONNECTOR_QUANTITY];
 	struct ClearVariableMonitoring_20			ClearVariableMonitoring;
 	struct CostUpdated_20						CostUpdated;
 	struct CustomerInformation_20				CustomerInformation;
-	struct DataTransfer_20						DataTransfer[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct DataTransfer_20						DataTransfer[CONNECTOR_QUANTITY];
 	struct DeleteCertificate_20					DeleteCertificate;
 	struct FirmwareStatusNotification_20		FirmwareStatusNotification;
 	struct Get15118EVCertificate_20				Get15118EVCertificate;
 	struct GetBaseReport_20						GetBaseReport;
 	struct GetCertificateStatus_20				GetCertificateStatus;
-	struct GetChargingProfiles_20				GetChargingProfiles[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-	struct GetCompositeSchedule_20				GetCompositeSchedule[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct GetChargingProfiles_20				GetChargingProfiles[CONNECTOR_QUANTITY];
+	struct GetCompositeSchedule_20				GetCompositeSchedule[CONNECTOR_QUANTITY];
 	struct GetDisplayMessages_20				GetDisplayMessages;
 	struct GetInstalledCertificateIds_20		GetInstalledCertificateIds;
 	struct GetLocalListVersion_20				GetLocalListVersion;
 	struct GetLog_20							GetLog;
 	struct GetMonitoringReport_20				GetMonitoringReport;
 	struct GetReport_20							GetReport;
-	struct GetTransactionStatus_20				GetTransactionStatus[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct GetTransactionStatus_20				GetTransactionStatus[CONNECTOR_QUANTITY];
 	struct GetVariables_20						GetVariables;
 	struct Heartbeat_20							Heartbeat;
 	struct InstallCertificate_20				InstallCertificate;
 	struct LogStatusNotification_20				LogStatusNotification;
-	struct MeterValues_20						MeterValues[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-	struct NotifyChargingLimit_20				NotifyChargingLimit[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct MeterValues_20						MeterValues[CONNECTOR_QUANTITY];
+	struct NotifyChargingLimit_20				NotifyChargingLimit[CONNECTOR_QUANTITY];
 	struct NotifyCustomerInformation_20			NotifyCustomerInformation;
 	struct NotifyDisplayMessages_20				NotifyDisplayMessages;
-	struct NotifyEVChargingNeeds_20				NotifyEVChargingNeeds[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-	struct NotifyEVChargingSchedule_20			NotifyEVChargingSchedule[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct NotifyEVChargingNeeds_20				NotifyEVChargingNeeds[CONNECTOR_QUANTITY];
+	struct NotifyEVChargingSchedule_20			NotifyEVChargingSchedule[CONNECTOR_QUANTITY];
 	struct NotifyEvent_20						NotifyEvent;
 	struct NotifyMonitoringReport_20			NotifyMonitoringReport;
 	struct NotifyReport_20						NotifyReport;
 	struct PublishFirmware_20					PublishFirmware;
 	struct PublishFirmwareStatusNotification_20	PublishFirmwareStatusNotificatio;
-	struct ReportChargingProfiles_20			ReportChargingProfiles[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-	struct RequestStartTransaction_20			RequestStartTransaction[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-	struct RequestStopTransaction_20			RequestStopTransaction[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-	struct ReservationStatusUpdate_20			ReservationStatusUpdate[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-	struct ReserveNow_20						ReserveNow[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct ReportChargingProfiles_20			ReportChargingProfiles[CONNECTOR_QUANTITY];
+	struct RequestStartTransaction_20			RequestStartTransaction[CONNECTOR_QUANTITY];
+	struct RequestStopTransaction_20			RequestStopTransaction[CONNECTOR_QUANTITY];
+	struct ReservationStatusUpdate_20			ReservationStatusUpdate[CONNECTOR_QUANTITY];
+	struct ReserveNow_20						ReserveNow[CONNECTOR_QUANTITY];
 	struct Reset_20								Reset;
 	struct SecurityEventNotification_20			SecurityEventNotification;
 	struct SendLocalList_20						SendLocalList;
-	struct SetChargingProfile_20				SetChargingProfile[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct SetChargingProfile_20				SetChargingProfile[CONNECTOR_QUANTITY];
 	struct SetDisplayMessage_20					SetDisplayMessage;
 	struct SetMonitoringBase_20					SetMonitoringBase;
 	struct SetMonitoringLevel_20				SetMonitoringLevel;
@@ -5508,13 +5603,13 @@ struct OCPP20Data
 	struct SetVariableMonitoring_20				SetVariableMonitoring;
 	struct SetVariables_20						SetVariables;
 	struct SignCertificate_20					SignCertificate;
-	struct StatusNotification_20				StatusNotification[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
-	struct TransactionEvent_20					TransactionEvent[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct StatusNotification_20				StatusNotification[CONNECTOR_QUANTITY];
+	struct TransactionEvent_20					TransactionEvent[CONNECTOR_QUANTITY];
 	struct TriggerMessage_20					TriggerMessage;
-	struct UnlockConnector_20					UnlockConnector[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct UnlockConnector_20					UnlockConnector[CONNECTOR_QUANTITY];
 	struct UnpublishFirmware_20					UnpublishFirmware;
 	struct UpdateFirmware_20					UpdateFirmware;
-	struct ChargingProfileType		    		SmartChargingProfile[CHAdeMO_QUANTITY+ CCS_QUANTITY + GB_QUANTITY + AC_QUANTITY];
+	struct ChargingProfileType                  SmartChargingProfile[CONNECTOR_QUANTITY];
 };
 
 #endif // DEFINE_H_
@@ -5523,4 +5618,3 @@ struct OCPP20Data
 
 
 
-