/* * Config.h * * Created on: 2019年4月23日 * Author: foluswen */ #ifndef CONFIG_H_ #define CONFIG_H_ //------------------------------------------------------------------------------ #include //------------------------------------------------------------------------------ //Dispenser simulation ev signal //------------------------------------------------------------------------------ #define SIMULATION 0 //------------------------------------------------------------------------------ //independent common share memory key //------------------------------------------------------------------------------ #define ShmCsuMeterKey 2001 #define ShmCommonKey 2002 //------------------------------------------------------------------------------ #define TOTAL_QUANTITY_GUN 4 //Max Count //------------------------------------------------------------------------------ //system runtime state //------------------------------------------------------------------------------ #define MODE_BOOT (0) #define MODE_IDLE (1) #define MODE_AUTHORIZING (2) #define MODE_REASSIGN_CHECK (3) #define MODE_REASSIGN (4) #define MODE_PRECHARGE (5) #define MODE_PREPARE_FOR_EV (6) #define MODE_PREPARE_FOR_EVSE (7) #define MODE_CHARGING (8) #define MODE_TERMINATING (9) #define MODE_COMPLETE (10) #define MODE_ALARM (11) #define MODE_FAULT (12) #define MODE_RESERVATION (13) #define MODE_BOOKING (14) #define MODE_MAINTAIN (15) #define MODE_DEBUG (16) #define MODE_CCS_PRECHARGE_STEP0 (17) // ready for ccs precharge processing, For D+ relay to precharge relay #define MODE_CCS_PRECHARGE_STEP1 (18) // waitting for ev board inform to enter to charging, For precharge relay to D+ relay #define MODE_UPDATE (19) #define GFD_WAIT (0) #define GFD_PASS (1) #define GFD_FAIL (2) #define GFD_WARNING (3) #define PRECHARGE_WAIT (0) #define PRECHARGE_READY (1) #define PRECHARGE_PRERELAY_PASS (2) #define PRECHARGE_CHARELAY_PASS (3) #define BOOTTING (0) #define BOOT_COMPLETE (1) //------------------------------------------------------------------------------ //common define //------------------------------------------------------------------------------ #define ARRAY_SIZE(A) (sizeof(A) / sizeof(A[0])) #define PASS (1) #define FAIL (-1) #define START (1) #define STOP (0) #define YES (1) #define NO (0) #define NORMAL (0) #define ABNORMAL (1) #define EQUAL (0) #define NO_DEFINE (255) #define MtdBlockSize (0x300000) //(0x600000) //------------------------------------------------------------------------------ //gun temperatures //------------------------------------------------------------------------------ #define GUN_OTP_VALUE (150) #define GUN_OTP_RECOVERY (140) #define UNDEFINED_TEMP (255) #define TEMP_BOUNDARY (200) #define WARN_LV_NL (0) //normal state #define WARN_LV_WARN (1) #define WARN_LV_ER (2) //emergency state //------------------------------------------------------------------------------ enum _SYSTEM_STATUS { S_BOOTING = 0, S_IDLE, S_AUTHORIZING, S_REASSIGN_CHECK, S_REASSIGN, S_PREPARNING, S_PREPARING_FOR_EV, S_PREPARING_FOR_EVSE, S_CHARGING, S_TERMINATING, S_COMPLETE, S_ALARM, S_FAULT, S_RESERVATION, S_BOOKING, S_MAINTAIN, S_DEBUG, S_CCS_PRECHARGE_ST0, S_CCS_PRECHARGE_ST1, S_UPDATE, S_NONE, }; enum _AC_SYSTEM_STATUS { AC_SYS_NONE = 0, AC_SYS_A, AC_SYS_B, AC_SYS_C, AC_SYS_D, AC_SYS_E }; enum _GUN_TYPE { _Type_Chademo = 0, _Type_CCS_2, _Type_GB, _Type_AC, }; enum _CCS_GUN_TYPE { _TYPE_CCS_NONE = 0, _TYPE_CCS1_Natural, _TYPE_CCS1_Liquid, _TYPE_CCS2_Natural, _TYPE_CCS2_Liquid, }; enum _PAGE_TCC_INDEX { _PAGE_NONE = 0x00, _PAGE_IDLE, _PAGE_AUTHORIZE, _PAGE_PLUGIN, _PAGE_PRECHARGE, _PAGE_CHARGING, _PAGE_COMPLETE, _PAGE_PLUGOUT, _PAGE_EXIT, _PAGE_FUNCTION_SELECT, _PAGE_REFUND_SENSEING, _PAGE_REFUNDING, _PAGE_REFUND_COMPLETE, _PAGE_REFUND_NONE, _PAGE_MEMBER_SELECT, _PAGE_MEMBER_QR, _PAGE_DONATE, _PAGE_DONATE_SELECT, _PAGE_PAY_SENSING, _PAGE_PAY_ETICKET_SUCCESS, _PAGE_PAY_MPAY_SUCCESS, _PAGE_PAY_FAIL, _PAGE_MAINTAIN = 100, _PAGE_ERROR, __SHOW_CABIENT_VERSION, __SHOW_DISPENSER_VERASION, }; enum _SELF_TEST_SEQ { _STEST_VERSION = 0x00, _STEST_AC_CONTACTOR = 0x01, _STEST_PSU_DETECT = 0x02, _STEST_PSU_CAP = 0x03, _STEST_FAIL = 0x04, _STEST_COMPLETE = 0xEE, }; enum _MODULE_PSU_WORK_STEP { INITIAL_START = 0, GET_PSU_COUNT = 1, GET_SYS_CAP = 2, BOOTING_COMPLETE = 3, _WORK_CHARGING = 10, _TEST_MODE = 20, _NO_WORKING = 254, _INIT_PSU_STATUS = 255, }; enum _OFFLINE_POLICY { _OFFLINE_POLICY_LOCAL_LIST = 0x00, _OFFLINE_POLICY_PHIHONG_RFID_TAG = 0x01, _OFFLINE_POLICY_FREE_CHARGING = 0x02, _OFFLINE_POLICY_NO_CHARGING = 0x03, }; enum _REASSIGNED_RESOURCE_STEP { _REASSIGNED_NONE = 0, // _REASSIGNED_PREPARE_M_TO_A = 1, // 系統收到需要降載需求 (輸出總電流降低),PSU Task 收到將狀態切換至下個狀態 _REASSIGNED_GET_NEW_CAP = 2, // 充電中的重新取得屬於自己火線上的總能量並透過小板通知車端 - 超過10秒直接跳下一步 _REASSIGNED_ADJUST_M_TO_A = 3, // 模塊重新分配完成 _REASSIGNED_RELAY_M_TO_A = 4, // 切斷橋接的 Relay _REASSIGNED_PREPARE_A_TO_M = 11, _REASSIGNED_ADJUST_A_TO_M = 12, // 模塊升壓 _REASSIGNED_RELAY_A_TO_M = 13, // 搭接橋接的 Relay _REASSIGNED_WAITING = 14, _REASSIGNED_COMP = 15, }; enum _MAIN_CHARGING_MODE { _MAIN_CHARGING_MODE_MAX = 0, _MAIN_CHARGING_MODE_AVER = 1, }; enum _EXTRA_ERR_PROCESS { _EXTRA_ERR_PROCESS_NONE = 0, _EXTRA_ERR_PROCESS_INUVP = 1, _EXTRA_ERR_PROCESS_INOVP = 2, }; enum _CHARGER_TYPE { _CHARGER_TYPE_IEC = 0, _CHARGER_TYPE_UL = 1, }; enum _SYS_WIFI_MODE { _SYS_WIFI_MODE_DISABLE = 0, _SYS_WIFI_MODE_STATION = 1, _SYS_WIFI_MODE_AP = 2, }; enum _LED_INTENSITY_LV { _LED_INTENSITY_DARKEST = 0, _LED_INTENSITY_MEDIUM = 1, _LED_INTENSITY_BRIGHTEST = 2, }; enum _CCS_COMM_PROTOCOL { _CCS_COMM_V2GMessage_DIN70121 = 0x01, _CCS_COMM_V2GMessage_ISO15118_2014 = 0x02, _CCS_COMM_V2GMessage_ISO15118_2018 = 0x03 }; enum _ETHERNET_USAGE { _ETHERNET_USAGE_NONE = 0, _ETHERNET_USAGE_LAN, _ETHERNET_USAGE_WIFI, _ETHERNET_USAGE_3G_4g, }; enum _PRIMARY_CHECK_TAG { _PRIMARY_CHECK_TAG_AC_CONTACT = 0, _PRIMARY_CHECK_TAG_MAIN_BREAKER = 1, }; enum _CCS_VERSION_CHECK_TAG { _CCS_VERSION_CHECK_TAG_V015S0 = 0, _CCS_VERSION_CHECK_TAG_V013S0 = 1, }; enum RELAY_STATUS_ERROR_INDEX { RELAY_SMR1_P_STATUS = 0, RELAY_SMR1_N_STATUS = 1, RELAY_SMR2_P_STATUS = 2, RELAY_SMR2_N_STATUS = 3, RELAY_PARA_P_STATUS = 4, RELAY_PARA_N_STATUS = 5, }; enum RELAY_STATUS_ERROR_TYPE { RELAY_STATUS_ERROR_NONE = 0, RELAY_STATUS_ERROR_WELDING = 10, RELAY_STATUS_ERROR_DRIVING = 11, }; enum _CCS_TYPE { _CCS_TYPE_CCS1 = 0, _CCS_TYPE_CCS2 = 1, }; //------------------------------------------------------------------------------ //struct StructMeter { // float curMeterValue; // float newMeterValue; // uint8_t isCalculation; // float _chargingValue; // float _curTotalCharging; //}; //struct MeterInformation { // struct StructMeter _meter[2]; // uint8_t isWorking; //}; //struct DcCommonInformation { // // check if the guns are of the same type // uint8_t SysGunAreSameType; // // to check the ccs version // uint8_t CcsVersion; // // for relay welding/driving check // char RelayCheckStatus[6]; // char GunRelayWeldingOccur[2]; // char GunRelayDrivingOccur[2]; //}; typedef union { uint32_t GunErrMessage; struct { // Chademo uint8_t ChaGfdTrip: 1; uint8_t ChaUvpFail: 1; uint8_t ChaConnectOTP: 1; uint8_t ChaConnectOVP: 1; uint8_t ChaGfdWarning: 1; uint8_t ChaRelayWeldingFault: 1; uint8_t ChaRelayDrivingFault: 1; uint8_t ChaConnectTempSensorFail: 1; // CCS uint8_t CCSGfdTrip : 1; uint8_t CCSUvpFail : 1; uint8_t CCSConnectOTP : 1; uint8_t CCSConnectOVP : 1; uint8_t CCSGfdWarning : 1; uint8_t CCSRelayWeldingFault : 1; uint8_t CCSRelayDrivingFault : 1; uint8_t CCSConnectTempSensorFail : 1; // GBT uint8_t GBTGfdTrip : 1; uint8_t GBTUvpFail : 1; uint8_t GBTConnectOTP : 1; uint8_t GBTConnectOVP : 1; uint8_t GBTGfdWarning : 1; uint8_t GBTRelayWeldingFault : 1; uint8_t GBTRelayDrivingFault : 1; uint8_t GBTConnectTempSensorFail : 1; } GunBits; } EvBoardErrMsg; typedef union { uint8_t AlarmState; struct { uint8_t EmergencyStop: 1; //Power cabinet emergency stop uint8_t DoorOpen: 1; //Power cabinet emergency door open uint8_t DcInputOVP: 1; uint8_t DcInputUVP: 1; uint8_t SystemL1InputOVP: 1; //Power cabinet system L1 input OVP uint8_t SystemL2InputOVP: 1; //Power cabinet System L2 input OVP uint8_t SystemL3InputOVP: 1; //Power cabinet System L3 input OVP uint8_t PsuFailure: 1; //Power cabinet PSU Failure Alarm } StatusBit; } PowerAlarmState; typedef union { uint8_t TempErrMsg; struct { uint8_t ChillerOTP: 1; //chiller Temperature OVP uint8_t ChillerTempSensorFail: 1; //Chiller temperature sensor failure uint8_t Reserved: 6; } StatusBit; } ChillerTempErr; typedef struct StChillerValve { uint8_t MultiChillerGun; //0x80, 0: 沒有水冷槍, 1: 有水冷槍, 0x7F: 紀錄水冷槍數 uint8_t LeftTemp; //左槍最高溫度 uint8_t RightTemp; //右槍最高溫度 uint8_t Reserved; } ChillerValve; typedef struct StPcPsuOutput { //from power cabinet PSU output uint16_t Voltage; uint16_t Current; } PcPsuOutput; typedef struct Psu_VersionInfo{ uint8_t n_PSU; uint8_t DCVersion[32]; uint8_t FPCVersion[32]; }PsuVerInfo; enum _LCM_UPGRADE_RESULT { _LCM_UPGRADE_RESULT_WAIT = 0, _LCM_UPGRADE_RESULT_PASS, _LCM_UPGRADE_RESULT_FAIL, }; typedef struct StDcCommonInfo { uint8_t RebootCount; uint8_t CcsVersion; EvBoardErrMsg ConnectErrList[2]; //connector error list, 0: left gun, 1: right gun uint8_t CheckRelayStatus[6]; //check Relay welding or driving fault uint8_t GunRelayWeldingOccur[2]; uint8_t GunRelayDrivingOccur[2]; uint8_t ConnectorTemp[2][2]; uint8_t SystemTemp[4]; uint8_t SystemModeChange[2]; //for Module_EvRxComm PowerAlarmState PowerAlarmState; ChillerTempErr ChillerTempErr[2]; ChillerValve ChillerValve; uint8_t TestTemperature; //ReadCmdline test, manual input value uint8_t CcsTypeSaved[2]; PcPsuOutput PcPsuOutput[2]; uint8_t _upgrade_lcm_flag; uint8_t _upgrade_lcm_result; uint8_t Reserved[1]; // Power Cabinet Version uint8_t CabinetModelName[32]; uint8_t CabinetBoolLoaderVersion[32]; uint8_t CabinetKernelVersion[32]; uint8_t CabinetRFSystemVersion[32]; uint8_t CabinetPrimaryVersion[32]; uint8_t CabinetIPAddr[32]; uint8_t CabinetRelay0Version[32]; uint8_t CabinetRelay1Version[32]; uint8_t CabinetFanVersion[32]; // PSU Version uint8_t PSU_Number; PsuVerInfo PsuVer[12]; // Touch press uint8_t TouchId; // TCC Using uint8_t _ChangeLCMRequest; uint8_t _RefundRequest; uint8_t _RefundCancel; uint8_t _InvoiceRequest; // TCC Payment fail int PaymentFailId; unsigned char PaymentFailString[32]; } DcCommonInfo; #endif /* CONFIG_H_ */