xingan.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. #ifndef XING_AND_H
  2. #define XING_AND_H
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <stdint.h>
  6. typedef char byte;
  7. typedef unsigned int uint32;
  8. /* DOM-NOT_FOR_SDK-BEGIN */
  9. /* Following defines are internal to the KAL */
  10. #define KAL_TICKS_10_MSEC (2) /* 10 msec */
  11. #define KAL_TICKS_50_MSEC (10) /* 50 msec */
  12. #define KAL_TICKS_100_MSEC (21) /* 100 msec */
  13. #define KAL_TICKS_500_MSEC (108) /* 500 msec */
  14. #define KAL_TICKS_1024_MSEC (221) /* 1024 msec */
  15. #define KAL_TICKS_1_SEC (216) /* 1 sec */
  16. /*since rmc_context.h defined KAL_TICKS_2_SEC*/
  17. #define KAL_TICKS_2_SEC_2 (433) /* 2 sec */
  18. #define KAL_TICKS_3_SEC (650) /* 3 sec */
  19. #define KAL_TICKS_5_SEC (1083) /* 5 sec */
  20. #define KAL_TICKS_30_SEC (6500) /* 30 sec */
  21. #define KAL_TICKS_1_MIN (13000) /* 1 min */
  22. #define KAL_MSEC_64_TICKS (295) /* 64 ticks */
  23. #define KAL_MSEC_256_TICKS (1181) /* 256 ticks */
  24. /* DOM-NOT_FOR_SDK-END */
  25. typedef enum BOOL
  26. {
  27. U8_FALSE=0x00,
  28. U8_TRUE=0xff,
  29. }BOOL;
  30. #define XINGAN_PACKET_ERROR (0xFFFF)
  31. #define XINGAN_PACKET_OK (0)
  32. #define XINGAN_PACKET_HEAD 0X29
  33. #define XINGAN_PACKET_HEAD_LEN 2
  34. #define XINGAN_PACKET_CMD_LEN 1
  35. #define XINGAN_PACKET_LEN_LEN 2
  36. #define XINGAN_SEQUENCE_NUMBER_LEN 4
  37. #define XINGAN_CHECK_LEN 1
  38. #define XINGAN_PACKET_END 0x0D
  39. #define XINGAN_PACKET_END_LEN 1
  40. #define XINGAN_PACKET_MAX_LEN 512
  41. /***中心下发指令***/
  42. #define XINGAN_PACKET_CENTER_CMD_COMMON_RSP 0x85
  43. //查看指令车辆的当前位置
  44. #define XINGAN_PACKET_CENTER_CMD_GET_POS 0x30
  45. #define XINGAN_PACKET_CENTER_CMD_GET_POS_RSP 0x81
  46. //查看指定车辆的工作状态
  47. #define XINGAN_PACKET_CENTER_CMD_GET_STAT 0X31
  48. #define XINGAN_PACKET_CENTER_CMD_GET_STAT_RSP 0X83
  49. //控制指定车辆的车胎关机复位重启
  50. #define XINGAN_PACKET_CENTER_CMD_RESET 0x32
  51. //终端配置恢复出厂默认设置
  52. #define XINGAN_PACKET_CENTER_CMD_DEFAULT_SET 0xC3
  53. //设置定时回传位置信息时间间隔
  54. #define XINGAN_PACKET_CENTER_CMD_GET_POS_TIMEOUT 0x34
  55. //设置定居回传位置信息距离间隔
  56. #define XINGAN_PACKET_CENTER_CMD_GET_POS_LENOUT 0x35
  57. //取消报警
  58. #define XINGAN_PACKET_CENTER_CMD_CLOSE_WARNING 0x37
  59. //控制恢复油路
  60. #define XINGAN_PACKET_CENTER_CMD_OPEN_OIL_WAY 0x38
  61. //控制断开油路
  62. #define XINGAN_PACKET_CENTER_CMD_CLOSE_OIL_WAY 0x39
  63. //查看车台版本信息
  64. #define XINGAN_PACKET_CENTER_CMD_GET_VER 0x3D
  65. #define XINGAN_PACKET_CENTER_CMD_GET_VER_RSP 0x84
  66. //单相电话监听
  67. #define XINGAN_PACKET_CENTER_CMD_DIAL_CALL 0x3E
  68. //设置超速报警值
  69. #define XINGAN_PACKET_CENTER_CMD_HIGH_SPEED_WARNING 0x3F
  70. //设置终端里程统计值
  71. #define XINGAN_PACKET_CENTER_CMD_STATISTICS_MILE 0x66
  72. //远程修改UDP的IP和端口
  73. #define XINGAN_PACKET_CENTER_CMD_UDP_IPPORT 0x69
  74. //远程修改APN,USER,PASS
  75. #define XINGAN_PACKET_CENTER_CMD_APN 0xC1
  76. /*****终端主动上发指令*****/
  77. #define XINGAN_PACKET_CLIENT_CMD_COMMON_RSP 0x21
  78. //终端上传位置信息握手报文
  79. #define XINGAN_PACKET_CLIENT_CMD_CONNECT 0xB1
  80. //终端上传位置信息,位置数据
  81. #define XINGAN_PACKET_CLIENT_SEND_POS_DATA 0x80
  82. //终端上传报警信息
  83. #define XINGAN_PACKET_CLIENT_CMD_SEND_WARNING_DATA 0x82
  84. typedef enum XINGAN_PACKET_SEND_MODE_ENUM
  85. {
  86. XINGAN_PACKET_SEND_TCP,
  87. XINGAN_PACKET_SEND_UDP,
  88. XINGAN_PACKET_SEND_SMS,
  89. }XINGAN_PACKET_SEND_MODE_ENUM;
  90. typedef uint32_t (*Xingan_process_packet)(byte *p_buf,uint32_t size, XINGAN_PACKET_SEND_MODE_ENUM type);
  91. typedef struct XinganCmd_struct
  92. {
  93. uint32_t cmd;
  94. Xingan_process_packet process_packet;
  95. }XinganCmd_struct;
  96. typedef struct XINGAN_GPS_INFO_STRUCT
  97. {
  98. BOOL isGpsValid;
  99. //GPS是否定位,TRUE:已经定位;FALSE:没有定位
  100. byte errorReason;
  101. //没有定位的原因;0x00:GPS正常; 0x01:GPS天线短路;
  102. //0x02:GPS天线开路;
  103. //0x03:GPS模块故障
  104. //附:GPS模块故障定义为GPS模块没有输出NMEA0183报文或输出不符合NMEA0183定义的报文,如乱码。
  105. byte year;
  106. byte month;
  107. byte day;
  108. byte hour;
  109. byte minu;
  110. byte sec;
  111. uint32_t longitue;//经度
  112. uint32_t latitue;//纬度
  113. uint32_t speed;//速度
  114. uint32_t aspect;//方位
  115. }XINGAN_GPS_INFO_STRUCT;
  116. typedef struct XINGAN_INFO_STRUCT
  117. {
  118. BOOL IsXinganLogin ;//模块是否已经登陆(握手成功)
  119. byte UdpIpPort[30] ;//udp ip port;
  120. byte CsqVal;
  121. uint32 highSpeed;
  122. uint32 timeout;////定时发送,默认30秒
  123. uint32_t StatisticsMile ;//历程统计
  124. BOOL RobWarning;//紧急报警
  125. uint32 StopTimeout ;//停车超时时间
  126. uint32 lenout ;//定距回传,,默认不启用
  127. BOOL IsGprsLogin ;
  128. BOOL IsPppOpen ;
  129. BOOL CenterNeedSendCmd21;
  130. BOOL isOpenWarning ;//是否打开报警
  131. uint32 ElectronicFenceNum ;//电子围栏个数
  132. BOOL IsOpenOilWay ;//是否打开油路
  133. //0:正常;1:主电源掉电;2主电源过高;3:主电源过低
  134. byte MainPowerStat ;
  135. //发送模式
  136. XINGAN_PACKET_SEND_MODE_ENUM SendMode;
  137. byte CenterSendCmd;
  138. byte SendBuf[XINGAN_PACKET_MAX_LEN];
  139. byte RecvBuf[XINGAN_PACKET_MAX_LEN];
  140. byte TmpBuf[200];
  141. //终端序列号
  142. byte XINGAN_SEQNUM[10];//{0x82,0x83,0x84,0x85};
  143. }XINGAN_INFO_STRUCT;
  144. typedef enum XINGAN_TIMER_ENUM
  145. {
  146. XINGAN_BEGIN_TIMER = 1,
  147. XINGAN_STOP_TIMEOUT = XINGAN_BEGIN_TIMER,//超时停车
  148. XINGAN_SENDBACK_TIMER, //定时回传
  149. #ifdef __XINGAN_HEARTBEAT__
  150. XINGAN_HEARTBEAT_TIMER,//心跳包
  151. #endif
  152. #ifdef __XINGAN_GPS_TEST__
  153. XINGAN_GPS_TIMER,
  154. #endif
  155. //...
  156. XINGAN_MAX_TIMER,
  157. }XINGAN_TIMER_ENUM;
  158. extern Xingan_process_packet GetXinganProcessFun(uint32_t Cmd);
  159. extern uint32_t Process_XinganClientSendWarnData(byte* buf, uint32_t len, XINGAN_PACKET_SEND_MODE_ENUM type);
  160. extern uint32_t Process_XinganClientSendPosData(byte* buf, uint32_t len, XINGAN_PACKET_SEND_MODE_ENUM type);
  161. extern BOOL XinganSetBit(byte bit, BOOL val);
  162. extern BOOL XinganGetBit(byte bit);
  163. extern void XinganInfoInit(void);
  164. #endif