#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;

unsigned char _gunCount;
struct ChargingInfoData *chargingInfo[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY];
bool isStartOutputSwitch[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_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;