Module_Cabinet.h 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * Module_Cabinet.h
  3. *
  4. * Created on: 2021/10/25
  5. * Author: folus
  6. */
  7. #ifndef MODULE_CABINET_H_
  8. #define MODULE_CABINET_H_
  9. #include <sys/time.h>
  10. #include <sys/timeb.h>
  11. #include <sys/types.h>
  12. #include <sys/stat.h>
  13. #include <sys/types.h>
  14. #include <sys/ioctl.h>
  15. #include <sys/socket.h>
  16. #include <sys/ipc.h>
  17. #include <sys/shm.h>
  18. #include <sys/shm.h>
  19. #include <sys/mman.h>
  20. #include <linux/wireless.h>
  21. #include <arpa/inet.h>
  22. #include <netinet/in.h>
  23. #include <unistd.h>
  24. #include <stdarg.h>
  25. #include <stdio.h>
  26. #include <stdlib.h>
  27. #include <unistd.h>
  28. #include <fcntl.h>
  29. #include <termios.h>
  30. #include <errno.h>
  31. #include <errno.h>
  32. #include <string.h>
  33. #include <time.h>
  34. #include <ctype.h>
  35. #include <ifaddrs.h>
  36. #include <sys/types.h>
  37. #include <sys/socket.h>
  38. #include <netinet/in.h>
  39. #include <netdb.h>
  40. #include <error.h>
  41. #include <signal.h>
  42. #include "define.h"
  43. #include "main.h"
  44. #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)
  45. #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)
  46. #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)
  47. #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)
  48. #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)
  49. #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)
  50. extern int StoreLogMsg(const char *fmt, ...);
  51. //==========================================
  52. // Cabinet TCP server
  53. //==========================================
  54. #define CABINET_LISTEN_PORT_TCP 17222
  55. #define CABINET_CONNECTION_LIMIT 2
  56. #define ShmCabinetKey CABINET_LISTEN_PORT_TCP+8000
  57. #define TIMEOUT_SOCKET_RX 250000
  58. enum CABINET_COMMAND
  59. {
  60. CABINET_CMD_GET_CHARGING_DATA =0x01,
  61. CABINET_CMD_SET_CONFIG_DATA =0x03,
  62. CABINET_CMD_SET_GUNINFO =0x04,
  63. CABINET_CMD_CONNECTION_FULL =0xfd,
  64. CABINET_CMD_CHKSUM_ERROR =0xfe,
  65. CABINET_CMD_UNKNOWN =0xff
  66. };
  67. struct CABINET_Message
  68. {
  69. int size;
  70. uint8_t buffer[16384];
  71. };
  72. struct CABINET_CONNECTION_INFO
  73. {
  74. int socketFd; // Socket file description
  75. uint8_t gun_index; // Each connection gun index
  76. time_t lastHeartBeatTime; // Each connection latest get heart beat start time
  77. uint8_t isSocketConnected:1; // Each connection socket connected flag
  78. };
  79. struct CABINET
  80. {
  81. uint8_t connectedQty;
  82. struct CABINET_CONNECTION_INFO Connection_Info[CABINET_CONNECTION_LIMIT];
  83. uint8_t hasNewConn:1;
  84. };
  85. #endif /* MODULE_CABINET_H_ */