/* * Config.h * * Created on: 2019年4月23日 * Author: foluswen */ #ifndef CONFIG_H_ #define CONFIG_H_ //------------------------------------------------------------------------------ #include #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 #define GUNOTPDERATING (1) //------------------------------------------------------------------------------ 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 { // Face 1 _PAGE_NONE = 0x00, _PAGE_IDLE, _PAGE_SELECT_GUN, _PAGE_BILL, _PAGE_ADD_FRIEND, _PAGE_DONATE_LEFT, _PAGE_SELECT_PAY, _PAGE_AUTHORIZE, _PAGE_SENSING, _PAGE_PLUGIN, _PAGE_PRECHARGE, _PAGE_CHARGING, _PAGE_STOP_CONFIRM_LEFT, _PAGE_PAYING, _PAGE_COMPLETE, _PAGE_EXIT, _PAGE_PLUGOUT, _PAGE_AUTHORIZE_FAIL, _PAGE_DONATE_RIGHT, _PAGE_STOP_CONFIRM_RIGHT, _PAGE_PAYFAIL, _PAGE_LINEPAYING, _PAGE_MAINTAIN = 30, }; 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, }; enum _WEATHER_TYPE { _WEATHER_TYPE_SUN = 1, _WEATHER_TYPE_CLOUDY, _WEATHER_TYPE_RAIN, _WEATHER_TYPE_THUNDER, _WEATHER_TYPE_SNOW, _WEATHER_TYPE_FOG, }; enum _CREDITCARD_STATUS { _CREDITCARD_IDLE, _CREDITCARD_PREAUTH, _CREDITCARD_PREAUTHCOMPLETE, _CREDITCARD_CANCEL, _CREDITCARD_SETTLEMENT, _CREDITCARD_SALE, }; enum _CREDIT_DEDUCT_STATUS { _DEDUCT_COMPLETE_FAIL = 0, _DEDUCT_COMPLETE_PASS = 1, _DEDUCT_CANCEL, _DEDUCT_PREAUTH, _DEDUCT_SALE_FAIL, _DEDUCT_SALE_PASS, _DEDUCT_REMOTESTART, }; enum _LINE_STATUS { _LINE_INIT = 0, _LINE_SCAN_QR, _LINE_ADD_FRIEND, _LINE_CREDITCARD_INVOICE, _LINE_CREDITCARD_DONATE, _LINE_PAY_INVOICE = 7, _LINE_PAY_DONATE, _LINE_PAY_OPERATE, _LINE_PARKING_INVOICE, _LINE_PARKING_DONATE, _LINE_PARKING_ONLINE_PASS = 12, _LINE_PARKING_ONLINE_FAIL, }; enum _DERATING_TEMP { STAGE1_GUN_DERATING_TEMP = 140, STAGE2_GUN_DERATING_TEMP = 145, }; //------------------------------------------------------------------------------ //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 ChillerTubeOTP : 1; uint8_t Reserved: 5; } 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 StPowerConsumptionInfo { float Gun1_Consumption; float Gun2_Consumption; float Gun3_Consumption; float Gun4_Consumption; } PowerConsumptionValue; typedef struct StPowConsumValue { uint32_t Gun1_Consumption; uint32_t Gun2_Consumption; uint32_t Gun3_Consumption; uint32_t Gun4_Consumption; } PowConsumValue; typedef struct StGunInfo { int ConnectorID; char ReceiptInfo[255]; int finalcost_flag; time_t EVLoseTimer; uint8_t EVLoseFlag; char ReservationID[32]; uint8_t ReservationStatus; char UserPriceString[255]; float PowerConsumption; time_t RecordEnergyTime; char ChargeStartTime[32]; char ChargeStopTime[32]; char ChargeDuration[32]; uint8_t withChiller; //是否有水冷機 uint8_t WaitForPlugit; // 等待插槍FLAG uint8_t isParking; // 進入佔位狀態 uint8_t ParkingStatus; // 佔位狀態 uint8_t GetParkingBill; // 得到Parking Bill uint8_t ReqParkingBill; // 要求主櫃對後臺要Parking Bill } GunInfo; 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, }; enum _TCC_PARKING_STATUS { _TCC_PARKING_NONE = 0, _TCC_PARKING_OCCUPENCY, _TCC_PARKING_OCCUPENCY_Ready, _TCC_PARKING_REQ_PARKING_FEE, _TCC_WAIT_PAY, _TCC_ONLINEPAY_PASS, _TCC_ONLINEPAY_FAIL, }; typedef struct stTransInfo { unsigned char TransDate[6]; //交易日期 unsigned char TransTime[6]; //交易時間 unsigned char ROC[12]; //EDC簽單調閱編號 (左靠右補空白) unsigned char ApprovalNo[9]; //授權碼[信用卡退貨交易] (左靠右補空白) unsigned char StoreId[18]; //櫃號,機號,發票號碼(左靠右補空白) unsigned char RRN[12]; //信用卡交易序號 unsigned char CardNo[20]; //卡號(左靠右補空白),卡號部份隱藏 unsigned char TransAmount[12]; //交易金額 unsigned char VemData[64]; //無人自助設備交易資訊 交易別31/32 (預授權完成/預授權取消) 必要欄位 資訊來源為交易別13 (預授權)的回傳 }TransInfo; typedef struct stRecordTransactionInfo { int ConnectorID; int TransactionId; float Amount; char DeductResult; // 0: Fail, 1: Pass , -1: Cancel , 99:Rededuct fail unsigned char IsDonateInvoice; // 0: Do not donate, 1: Donate unsigned char LineSn[20]; unsigned char isIntoCharge; unsigned char IsUpload; // 0: not upload, 1: uploaded TransInfo pCreditCard; float Energy; float prices; int RedeductTime; int LineStatus; // Line State unsigned char OccupancySN[36]; int ParkingDuration; char ParkingStartTime[32]; time_t ParkingStopTime; int ParkingCntDownFlag; }RecordTransactionInfo; typedef struct stPriceBillInfo { float TotalCost; float Balance; float Discount; int TransactionId; float EnergyCost; float ParkingFee; float RemainAmount; uint8_t gunIndex; }PriceBillInfo; 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]; int WeatherID; // 0:sun, 1:cloudy, 2:rain, 3:snow, 4:storm, 5:fog float Temperature; int Location; char PresentTime[128]; //TransInfo pCreditCard[2]; int runningcost[2]; unsigned int finalcost_flag[2]; float ChargingRate; int PreAuth_Config; int PreAuth_Result; unsigned int AuthPass_flag[2]; unsigned int PayPass_flag[2]; unsigned int StopCharge[2]; unsigned int TradeCancel; int ConnectorID[2]; RecordTransactionInfo TransactionInfo[2]; RecordTransactionInfo RedeductBill; RecordTransactionInfo ParkingInfo[2]; PriceBillInfo PriceBill; int UnionSettlement; int Exe_ReDeduct; unsigned int OperateIDLE[2]; int RoutineReduct; int RoutineSettlement; int RoutineReupload; int TZOffset; int DebugFlag; int is_RemoteStart[2]; int is_AutoStart[2]; time_t RecordEnergyTime[2]; int is_exit[2]; time_t EVDisconnectTime[2]; int EVDisconnectFlag[2]; int is_plugout[2]; GunInfo pGunInfo[2]; time_t FanOnTime; uint8_t AuthroizeType; // 0: Central 1: eMAID 2: ISO14443 3: ISO15693 4: KeyCode 5: Local 6: MacAddress 7: NoAuthorization char QRCodeString[255]; char DefaultPriceString[255]; PowerConsumptionValue pConsumption; uint8_t CreditCardUpload; uint8_t tccdev; uint8_t TaiwanEast; uint8_t lcmtest; char DebugVersion[32]; uint8_t BackLight; float ParkingRate; int ParkingLeaveTime; int SaleLeaveTime; int netdump; //印出網路封包 } DcCommonInfo; #endif /* CONFIG_H_ */