#ifndef XING_AND_H #define XING_AND_H #include #include #include typedef char byte; typedef unsigned int uint32; /* DOM-NOT_FOR_SDK-BEGIN */ /* Following defines are internal to the KAL */ #define KAL_TICKS_10_MSEC (2) /* 10 msec */ #define KAL_TICKS_50_MSEC (10) /* 50 msec */ #define KAL_TICKS_100_MSEC (21) /* 100 msec */ #define KAL_TICKS_500_MSEC (108) /* 500 msec */ #define KAL_TICKS_1024_MSEC (221) /* 1024 msec */ #define KAL_TICKS_1_SEC (216) /* 1 sec */ /*since rmc_context.h defined KAL_TICKS_2_SEC*/ #define KAL_TICKS_2_SEC_2 (433) /* 2 sec */ #define KAL_TICKS_3_SEC (650) /* 3 sec */ #define KAL_TICKS_5_SEC (1083) /* 5 sec */ #define KAL_TICKS_30_SEC (6500) /* 30 sec */ #define KAL_TICKS_1_MIN (13000) /* 1 min */ #define KAL_MSEC_64_TICKS (295) /* 64 ticks */ #define KAL_MSEC_256_TICKS (1181) /* 256 ticks */ /* DOM-NOT_FOR_SDK-END */ typedef enum BOOL { U8_FALSE=0x00, U8_TRUE=0xff, }BOOL; #define XINGAN_PACKET_ERROR (0xFFFF) #define XINGAN_PACKET_OK (0) #define XINGAN_PACKET_HEAD 0X29 #define XINGAN_PACKET_HEAD_LEN 2 #define XINGAN_PACKET_CMD_LEN 1 #define XINGAN_PACKET_LEN_LEN 2 #define XINGAN_SEQUENCE_NUMBER_LEN 4 #define XINGAN_CHECK_LEN 1 #define XINGAN_PACKET_END 0x0D #define XINGAN_PACKET_END_LEN 1 #define XINGAN_PACKET_MAX_LEN 512 /***中心下发指令***/ #define XINGAN_PACKET_CENTER_CMD_COMMON_RSP 0x85 //查看指令车辆的当前位置 #define XINGAN_PACKET_CENTER_CMD_GET_POS 0x30 #define XINGAN_PACKET_CENTER_CMD_GET_POS_RSP 0x81 //查看指定车辆的工作状态 #define XINGAN_PACKET_CENTER_CMD_GET_STAT 0X31 #define XINGAN_PACKET_CENTER_CMD_GET_STAT_RSP 0X83 //控制指定车辆的车胎关机复位重启 #define XINGAN_PACKET_CENTER_CMD_RESET 0x32 //终端配置恢复出厂默认设置 #define XINGAN_PACKET_CENTER_CMD_DEFAULT_SET 0xC3 //设置定时回传位置信息时间间隔 #define XINGAN_PACKET_CENTER_CMD_GET_POS_TIMEOUT 0x34 //设置定居回传位置信息距离间隔 #define XINGAN_PACKET_CENTER_CMD_GET_POS_LENOUT 0x35 //取消报警 #define XINGAN_PACKET_CENTER_CMD_CLOSE_WARNING 0x37 //控制恢复油路 #define XINGAN_PACKET_CENTER_CMD_OPEN_OIL_WAY 0x38 //控制断开油路 #define XINGAN_PACKET_CENTER_CMD_CLOSE_OIL_WAY 0x39 //查看车台版本信息 #define XINGAN_PACKET_CENTER_CMD_GET_VER 0x3D #define XINGAN_PACKET_CENTER_CMD_GET_VER_RSP 0x84 //单相电话监听 #define XINGAN_PACKET_CENTER_CMD_DIAL_CALL 0x3E //设置超速报警值 #define XINGAN_PACKET_CENTER_CMD_HIGH_SPEED_WARNING 0x3F //设置终端里程统计值 #define XINGAN_PACKET_CENTER_CMD_STATISTICS_MILE 0x66 //远程修改UDP的IP和端口 #define XINGAN_PACKET_CENTER_CMD_UDP_IPPORT 0x69 //远程修改APN,USER,PASS #define XINGAN_PACKET_CENTER_CMD_APN 0xC1 /*****终端主动上发指令*****/ #define XINGAN_PACKET_CLIENT_CMD_COMMON_RSP 0x21 //终端上传位置信息握手报文 #define XINGAN_PACKET_CLIENT_CMD_CONNECT 0xB1 //终端上传位置信息,位置数据 #define XINGAN_PACKET_CLIENT_SEND_POS_DATA 0x80 //终端上传报警信息 #define XINGAN_PACKET_CLIENT_CMD_SEND_WARNING_DATA 0x82 typedef enum XINGAN_PACKET_SEND_MODE_ENUM { XINGAN_PACKET_SEND_TCP, XINGAN_PACKET_SEND_UDP, XINGAN_PACKET_SEND_SMS, }XINGAN_PACKET_SEND_MODE_ENUM; typedef uint32_t (*Xingan_process_packet)(byte *p_buf,uint32_t size, XINGAN_PACKET_SEND_MODE_ENUM type); typedef struct XinganCmd_struct { uint32_t cmd; Xingan_process_packet process_packet; }XinganCmd_struct; typedef struct XINGAN_GPS_INFO_STRUCT { BOOL isGpsValid; //GPS是否定位,TRUE:已经定位;FALSE:没有定位 byte errorReason; //没有定位的原因;0x00:GPS正常; 0x01:GPS天线短路; //0x02:GPS天线开路; //0x03:GPS模块故障 //附:GPS模块故障定义为GPS模块没有输出NMEA0183报文或输出不符合NMEA0183定义的报文,如乱码。 byte year; byte month; byte day; byte hour; byte minu; byte sec; uint32_t longitue;//经度 uint32_t latitue;//纬度 uint32_t speed;//速度 uint32_t aspect;//方位 }XINGAN_GPS_INFO_STRUCT; typedef struct XINGAN_INFO_STRUCT { BOOL IsXinganLogin ;//模块是否已经登陆(握手成功) byte UdpIpPort[30] ;//udp ip port; byte CsqVal; uint32 highSpeed; uint32 timeout;////定时发送,默认30秒 uint32_t StatisticsMile ;//历程统计 BOOL RobWarning;//紧急报警 uint32 StopTimeout ;//停车超时时间 uint32 lenout ;//定距回传,,默认不启用 BOOL IsGprsLogin ; BOOL IsPppOpen ; BOOL CenterNeedSendCmd21; BOOL isOpenWarning ;//是否打开报警 uint32 ElectronicFenceNum ;//电子围栏个数 BOOL IsOpenOilWay ;//是否打开油路 //0:正常;1:主电源掉电;2主电源过高;3:主电源过低 byte MainPowerStat ; //发送模式 XINGAN_PACKET_SEND_MODE_ENUM SendMode; byte CenterSendCmd; byte SendBuf[XINGAN_PACKET_MAX_LEN]; byte RecvBuf[XINGAN_PACKET_MAX_LEN]; byte TmpBuf[200]; //终端序列号 byte XINGAN_SEQNUM[10];//{0x82,0x83,0x84,0x85}; }XINGAN_INFO_STRUCT; typedef enum XINGAN_TIMER_ENUM { XINGAN_BEGIN_TIMER = 1, XINGAN_STOP_TIMEOUT = XINGAN_BEGIN_TIMER,//超时停车 XINGAN_SENDBACK_TIMER, //定时回传 #ifdef __XINGAN_HEARTBEAT__ XINGAN_HEARTBEAT_TIMER,//心跳包 #endif #ifdef __XINGAN_GPS_TEST__ XINGAN_GPS_TIMER, #endif //... XINGAN_MAX_TIMER, }XINGAN_TIMER_ENUM; extern Xingan_process_packet GetXinganProcessFun(uint32_t Cmd); extern uint32_t Process_XinganClientSendWarnData(byte* buf, uint32_t len, XINGAN_PACKET_SEND_MODE_ENUM type); extern uint32_t Process_XinganClientSendPosData(byte* buf, uint32_t len, XINGAN_PACKET_SEND_MODE_ENUM type); extern BOOL XinganSetBit(byte bit, BOOL val); extern BOOL XinganGetBit(byte bit); extern void XinganInfoInit(void); #endif