#include #include #include #include #include #include #include #include "Config.h" #include "Define/define.h" #include "ShareMemory/shmMem.h" //------------------------------------------------------------------------------ void trim(char *s) { int i = 0, j, k, l = 0; while ((s[i] == ' ') || (s[i] == '\t') || (s[i] == '\n')) { i++; } j = strlen(s) - 1; while ((s[j] == ' ') || (s[j] == '\t') || (s[j] == '\n')) { j--; } if (i == 0 && j == strlen(s) - 1) { } else if (i == 0) { s[j + 1] = '\0'; } else { for (k = i; k <= j; k++) { s[l++] = s[k]; } s[l] = '\0'; } } int mystrcmp(char *p1, char *p2) { while (*p1 == *p2) { if (*p1 == '\0' || *p2 == '\0') { break; } p1++; p2++; } if (*p1 == '\0' && *p2 == '\0') { return (PASS); } else { return (FAIL); } } void substr(char *dest, const char *src, uint32_t start, uint32_t cnt) { strncpy(dest, src + start, cnt); dest[cnt] = 0; } void split(char **arr, char *str, const char *del) { char *s = strtok(str, del); while (s != NULL) { *arr++ = s; s = strtok(NULL, del); } } uint8_t CheckDispenserGeneration() { uint8_t result = _DISPENSER_GENERATION_3; struct SysConfigData *pSysConfig = (struct SysConfigData *)GetShmSysConfigData(); if (pSysConfig->ModelName[11] == 'F' || pSysConfig->ModelName[11] == 'D') { result = _DISPENSER_GENERATION_3_5; } return result; } uint8_t CheckCustomer() { uint8_t result = _CUSTOM_ZEROVA; char _buf[3] = {0}; struct SysConfigData *pSysConfig = (struct SysConfigData *)GetShmSysConfigData(); memcpy(_buf, &pSysConfig->ModelName[12], 2); if (strcmp(_buf, "AD") == EQUAL || strcmp(_buf, "A7") == EQUAL) result = _CUSTOM_AUDI; else if (strcmp(_buf, "OL") == EQUAL || strcmp(_buf, "O7") == EQUAL) result = _CUSTOM_SHELL; return result; } unsigned long GetClockTimeoutValue(struct timespec _start_time) { struct timespec ts_end; unsigned long ret = 0; clock_gettime(CLOCK_MONOTONIC, &ts_end); ret = ((unsigned long)(ts_end.tv_sec - _start_time.tv_sec) * 1000000) + ((unsigned long)((ts_end.tv_nsec / 1000) - (_start_time.tv_nsec/ 1000))); return ret; } void GetClockTime(struct timespec *_now_time) { clock_gettime(CLOCK_MONOTONIC, _now_time); } bool IntoChargeProcess(int status) { if ((status >= S_AUTHORIZING && status <= S_CHARGING) || status == S_CCS_PRECHARGE_ST0 || status == S_CCS_PRECHARGE_ST1) { return TRUE; } return FALSE; } bool IntoOperateProcess(int status) { if ((status >= S_AUTHORIZING && status <= S_ALARM) || status == S_CCS_PRECHARGE_ST0 || status == S_CCS_PRECHARGE_ST1) { return TRUE; } return FALSE; } char* GetStatusName(int status) { switch (status) { case S_BOOTING: return "BOOTING"; break; case S_IDLE: return "IDLE"; break; case S_AUTHORIZING: return "AUTHORIZING"; break; case S_REASSIGN_CHECK: return "REASSIGN_CHECK"; break; case S_REASSIGN: return "REASSIGN"; break; case S_PREPARNING: return "PREPARING"; break; case S_PREPARING_FOR_EV: return "PREPARING_FOR_EV"; break; case S_PREPARING_FOR_EVSE: return "PREPARING_FOR_EVSE"; break; case S_CHARGING: return "CHARGING"; break; case S_TERMINATING: return "TERMINATING"; break; case S_COMPLETE: return "COMPLETE"; break; case S_ALARM: return "ALARM"; break; case S_FAULT: return "FAULT"; break; case S_RESERVATION: return "RESERVATION"; break; case S_BOOKING: return "BOOKNG"; break; case S_MAINTAIN: return "MAINTAIN"; break; case S_DEBUG: return "DEBUG"; break; case S_CCS_PRECHARGE_ST0: return "CCS_PRECHARGE_ST0"; break; case S_CCS_PRECHARGE_ST1: return "CCS_PRECHARGE_ST1"; break; case S_UPDATE: return "UPDATE"; break; case S_NONE: return "NONE"; break; } return ""; }