123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- /*
- * Module_PowerSharing.h
- *
- * Created on: 2020/12/07
- * Author: foluswen
- */
- #ifndef MODULE_POWERSHARING_H_
- #define MODULE_POWERSHARING_H_
- #include <sys/time.h>
- #include <sys/timeb.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/ipc.h>
- #include <sys/shm.h>
- #include <sys/shm.h>
- #include <sys/mman.h>
- #include <linux/wireless.h>
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <termios.h>
- #include <errno.h>
- #include <errno.h>
- #include <string.h>
- #include <time.h>
- #include <ctype.h>
- #include <ifaddrs.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <error.h>
- #include <signal.h>
- #include "define.h"
- //#define DEBUG
- #define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args)
- #define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args)
- #define DEBUG_ERROR(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args)
- #define DEBUG_INFO_CLIENT(format, args...) StoreLogMsgClient("[%s:%d][%s][Info] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args)
- #define DEBUG_WARN_CLIENT(format, args...) StoreLogMsgClient("[%s:%d][%s][Warn] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args)
- #define DEBUG_ERROR_CLIENT(format, args...) StoreLogMsgClient("[%s:%d][%s][Error] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)), __LINE__, __FUNCTION__, ##args)
- #define is_error(ptr) ((unsigned long)ptr > (unsigned long)-4000L)
- #define ARRAY_SIZE(A) (sizeof(A) / sizeof(A[0]))
- #define PASS 1
- #define FAIL -1
- #define ON 1
- #define OFF 0
- #define YES 1
- #define NO 0
- #define LISTEN_PORT_TCP 118
- #define CONNECTION_LIMIT 5
- #define TIMEOUT_SPEC_HEARTBEAT 180
- #define INTERVAL_SPEC_CHECK_CAPACITY 10
- #define INTERVAL_SPEC_POLLING_CMD 1
- #define SHARE_MIN_AC 6
- #define SHARE_MIN_DC 6
- #define ShmPowerShargingKey LISTEN_PORT_TCP+8000
- enum SHARING_COMMAND
- {
- SHARING_CMD_GET_STATUS=0x01,
- SHARING_CMD_SET_CAPACITY=0x02,
- SHARING_CMD_CONNECTION_FULL=0xfd,
- SHARING_CMD_CHKSUM_ERROR=0xfe,
- SHARING_CMD_UNKNOWN=0xff
- };
- enum POWERSHARING_TIMER_IDX
- {
- POWERSHARING_TMR_IDX_HEARTBEAT,
- POWERSHARING_TMR_IDX_GET_STATUS,
- POWERSHARING_TMR_IDX_SET_CAPACITY,
- POWERSHARING_TMR_IDX_CNT
- };
- enum GUN_TYPE
- {
- GUN_TYPE_UNKNOWN=0,
- GUN_TYPE_CHAdeMO,
- GUN_TYPE_CCS,
- GUN_TYPE_GBT,
- GUN_TYPE_DO,
- GUN_TYPE_AC
- };
- enum CONNECTOR_TYPE
- {
- CONNECTOR_TYPE_AC=0,
- CONNECTOR_TYPE_AC_THREE,
- CONNECTOR_TYPE_DC
- };
- struct Message
- {
- int size;
- uint8_t buffer[2048];
- };
- typedef struct CONNECTOR_INFO
- {
- uint8_t connectorType;
- uint16_t availableSharingCurrent; // Each connector available sharing current, resolution: 1A
- uint16_t presentOutputCurrent; // Each connector preset output current, resolution: 1A
- uint16_t SOC; // Each connector preset SOC, resolution: 0.1%
- uint16_t remindTime; // Each connector remind charging time, resolution: 1min
- struct timespec tmrCheckCapacity; // Each connector check capacity timer
- uint8_t isGunConnected:1; // Each connection gun connected flag
- }Connector_Info;
- struct CONNECTION_INFO
- {
- int socketFd; // Socket file description
- int connectorCount; // Each connection connector count
- Connector_Info connectorInfo[4]; // Connector info
- struct timespec timer[POWERSHARING_TMR_IDX_CNT];
- uint8_t isSocketConnected:1; // Each connection socket connected flag
- };
- struct POWER_SHARING
- {
- uint8_t connectedConnectionQty;
- uint8_t connectedConnectorQty;
- int32_t onHandCurrent;
- struct CONNECTION_INFO Connection_Info[CONNECTION_LIMIT];
- uint8_t isDetectNewConnected:1;
- };
- #endif /* MODULE_POWERSHARING_H_ */
|