#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /*標準輸入輸出定義*/ #include /*標準函數庫定義*/ #include /*Unix 標準函數定義*/ #include /*檔控制定義*/ #include /*PPSIX 終端控制定義*/ #include /*錯誤號定義*/ #include #include #include #include #include #include "../../define.h" #include typedef unsigned char byte; typedef unsigned short word; typedef unsigned int unit; #define PSU_CUR_GAP 20 // 0.1A #define LOG_TIME 2000 // 1ms #define SMOOTH_TIME 100 // 1ms #define WAIT_LIMIT_TIME 10000 // 1ms unsigned char _gunCountRecord; struct ChargingInfoData *chargingInfo[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY]; bool isStartOutputSwitch[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY]; struct timespec _cmdSubPsuPriority_time; struct timespec _derating_time; struct timespec _max_time; struct timespec _log_time; struct timespec _smooth_time; struct timespec _releaseWait_time[DC_CONNECTOR_COUNT]; bool _releaseWait_chk[DC_CONNECTOR_COUNT]; byte _delayToGetCap; byte _maxChargingStatus; bool isReadyToCharging = false; int preChargingTarget; int preChargingCur; float toAverVolPoint; byte toAverVolCount; int _forceWaitToCompforMaxMode; byte _delay2GetPsuTemp; enum _CHARGING_GUN_STATUS { _CHARGING_GUN_STATUS_NONE = 0, _CHARGING_GUN_STATUS_COMM, _CHARGING_GUN_STATUS_CHARGING, _CHARGING_GUN_STATUS_STOP }; enum _PSU_CMD_SEQ { _PSU_CMD_STATUS = 1, _PSU_CMD_VERSION = 2, _PSU_CMD_CAP = 10, _PSU_CMD_IAVAILABLE = 11, _PSU_CMD_TEMP = 12, _PSU_CMD_GETCOUNT = 13, _PSU_CMD_OUTPUT_V = 14, }; enum _CHARGING_LOG_INDEX { _CHARGING_LOG_NEED_VOL = 0, _CHARGING_LOG_NEED_CUR = 1, _CHARGING_LOG_OUTPUT_VOL = 2, _CHARGING_LOG_OUTPUT_CUR = 3 };