#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>      /*�зǿ�J��X�w�q*/
#include   <stdlib.h>     /*�зǨ�Ʈw�w�q*/
#include   <unistd.h>     /*Unix �зǨ�Ʃw�q*/
#include   <fcntl.h>      /*�ɱ���w�q*/
#include   <termios.h>    /*PPSIX �׺ݱ���w�q*/
#include   <errno.h>      /*���~���w�q*/
#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;

#define SELF_TEST_VOL				1600
#define SELF_TEST_CUR				10
#define ZERO_VOL					0
#define ZERO_CUR					0
#define NONE_CARE_ADDRESS			0
#define SWITCH_ON		2
#define SWITCH_OFF		0


#define SET_MODULE_CMD              0
#define SET_GROUP_CMD              1

enum _FIRMWARE_TYPE
{
	_Fw_pri_app = 		0,
	_Fw_sec_app,
	_Fw_pri_bootload,
	_Fw_sec_bootload
};

struct _RecordPsuData
{
	byte 				_phy_addr;
	char 				_serial_num[32];
	byte 				_fire_index;

};

unsigned char _gunCount = CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY;
struct ChargingInfoData *chargingInfo[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY];
bool rework = false;

struct timeval _id_assign_time;
struct timeval _chk_output_time;
bool isCheckOutputTimeStart = false;

byte _curCheckPsuIndexForFireLine = 0x00;
struct _RecordPsuData recordPsuData[PSU_QUANTITY];

struct timeval _chk_cap_time;
bool _chkTotalCapStart = false;

bool isUpgradeFlag = false;

struct timeval _workModePriority_time;
struct timeval _derating_time;
int deratingTime = 0;

int connector_1[] = {0};
int connector_2[] = {1};
int conn_1_count = 0;
int conn_2_count = 0;