/* * Module_Cabinet.h * * Created on: 2021/10/25 * Author: folus */ #ifndef MODULE_CABINET_H_ #define MODULE_CABINET_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "define.h" #include "main.h" #define DEBUG_SERVER_INFO(format, args...) StoreLogMsgServer("[%s:%d][%s][Info] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args) #define DEBUG_SERVER_WARN(format, args...) StoreLogMsgServer("[%s:%d][%s][Warn] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args) #define DEBUG_SERVER_ERROR(format, args...) StoreLogMsgServer("[%s:%d][%s][Error] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args) #define DEBUG_CLIENT_INFO(format, args...) StoreLogMsgCient("[%s:%d][%s][Info] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args) #define DEBUG_CLIENT_WARN(format, args...) StoreLogMsgCient("[%s:%d][%s][Warn] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args) #define DEBUG_CLIENT_ERROR(format, args...) StoreLogMsgCient("[%s:%d][%s][Error] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args) extern int StoreLogMsg(const char *fmt, ...); //========================================== // Cabinet TCP server //========================================== #define CABINET_LISTEN_PORT_TCP 17222 #define CABINET_CONNECTION_LIMIT 2 #define ShmCabinetKey CABINET_LISTEN_PORT_TCP+8000 #define TIMEOUT_SOCKET_RX 250000 enum CABINET_COMMAND { CABINET_CMD_GET_CHARGING_DATA =0x01, CABINET_CMD_SET_CONFIG_DATA =0x03, CABINET_CMD_SET_GUNINFO =0x04, CABINET_CMD_CONNECTION_FULL =0xfd, CABINET_CMD_CHKSUM_ERROR =0xfe, CABINET_CMD_UNKNOWN =0xff }; struct CABINET_Message { int size; uint8_t buffer[16384]; }; struct CABINET_CONNECTION_INFO { int socketFd; // Socket file description uint8_t gun_index; // Each connection gun index time_t lastHeartBeatTime; // Each connection latest get heart beat start time uint8_t isSocketConnected:1; // Each connection socket connected flag }; struct CABINET { uint8_t connectedQty; struct CABINET_CONNECTION_INFO Connection_Info[CABINET_CONNECTION_LIMIT]; uint8_t hasNewConn:1; }; #endif /* MODULE_CABINET_H_ */