| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- #ifndef XING_AND_H
- #define XING_AND_H
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdint.h>
- 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
|