#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 <linux/can.h> #include <linux/can/raw.h> #include <arpa/inet.h> #include <netinet/in.h> #include <unistd.h> #include <stdarg.h> #include <stdio.h> /*標準輸入輸出定義*/ #include <stdlib.h> /*標準函數庫定義*/ #include <unistd.h> /*Unix 標準函數定義*/ #include <fcntl.h> /*檔控制定義*/ #include <termios.h> /*PPSIX 終端控制定義*/ #include <errno.h> /*錯誤號定義*/ #include <errno.h> #include <string.h> #include <time.h> #include <ctype.h> #include <ifaddrs.h> #include <math.h> #include "../../define.h" #include <stdbool.h> typedef unsigned char byte; typedef unsigned short word; typedef unsigned int unit; struct ChargingInfoData *chargingInfo[CONNECTOR_QUANTITY]; bool isStartOutputSwitch[CONNECTOR_QUANTITY]; struct timeval _cmdSubPriority_time; struct timeval _derating_time; struct timeval _max_time; struct timeval _test_time; bool isCharging = false; bool isWaitingAver = false; bool isReadToCharging = false; bool CanAverageCharging = false; int preChargingTarget; int preChargingCur; float toAverVolPoint; byte toAverVolCount; int connector_1[12]; int connector_2[12]; byte conn_1_count = 0; byte conn_2_count = 0; enum _PSU_CMD_SEQ { _PSU_CMD_STATUS = 1, _PSU_CMD_VERSION = 2, _PSU_CMD_CAP = 10, _PSU_CMD_OUTPUT = 11, _PSU_CMD_IVAILIABLE = 12, _PSU_CMD_TEMP = 13 }; enum _CURRENT_CONFIG_MODE { _CURRENT_MODE_NONE = 0, _CURRENT_MODE_BALANCE = 1, _CURRENT_MODE_INCREASE = 2, _CURRENT_MODE_DECREASE = 3, _CURRENT_MODE_DERATING = 4, };