123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /********************************************************************************
- * File Name: ProtocolPack.h
- * Function Describe: Header file for ProtocolPack.c
- * Explain:
- * Writer: ShiLiangWen
- * Date: 2019-2-9
- *******************************************************************************/
- #ifndef __PROTOCOL_PACK_H
- #define __PROTOCOL_PACK_H
- //-------------------------------------------------------------------------------
- #include "MBCross.h"
-
- #define PROPACKET_BUF_LEN 1024
-
- #define MSGID_LOGIN 0x0929
- #define MSGID_POSITION 0x0200
- #define MSGID_M_POSITION 0x0704
-
- //结构体SUTDL 用于解决网络传输unsigned long类型时,因MCU系统和PC系统存储差异而做的调整
- typedef struct SUTDL
- {
- union {
- struct { unsigned char b1,b2,b3,b4; }ucData;
- unsigned long ulData;
- }Data;
- }SUTDL;
- //结构体SUTDL 用于解决网络传输unsigned short类型时,因MCU系统和PC系统存储差异而做的调整
- typedef struct SUTDS
- {
- union {
- struct { unsigned char b1,b2; }ucData;
- unsigned short usData;
- }Data;
- }SUTDS;
- typedef struct SUT_POS_ALARM{
- unsigned int NU1:4;//未用
- unsigned int GNSS:1;//bit 4 定位模块
- unsigned int NU2:10;//未用
- unsigned int Meter:1;//bit 15 水表
- unsigned int NU3:16;//未用
- }__attribute__((packed)) SUT_POS_ALARM;
- typedef struct SUT_POS_STATUS{
- unsigned int ACC:1;//0 0:ACC 关;1: ACC 开
- unsigned int GNSS:1;//1 0:未定位;1:定位
- unsigned int South:1;//2 0:北纬;1:南纬
- unsigned int West:1;//3 0:东经;1:西经
- unsigned int NU1:14;//4~17 未用
- unsigned int GPS:1;//18 0:未使用 GPS 卫星进行定位;1:使用 GPS 卫星进行定位
- unsigned int BD:1;//19 0:未使用北斗卫星进行定位;1:使用北斗卫星进行定位
- unsigned int GLONASS:1;//20 0:未使用 GLONASS 卫星进行定位;1:使用 GLONASS 卫星进行定位
- unsigned int Galileo:1;//21 0:未使用 Galileo 卫星进行定位;1:使用 Galileo 卫星进行定位
- unsigned int NU2:10;//22-31 保留
- }__attribute__((packed)) SUT_POS_STATUS;
- typedef struct SUT_POSITION
- {
- unsigned char flag;//存储标志,有存储为0,无存储为FF
- SUT_POS_ALARM Alarm;//0 报警标志 DWORD 报警标志位定义见 表 24
- SUT_POS_STATUS Status;//4 状态 DWORD 状态位定义见 表 25
- unsigned int Latitude;//8 纬度 DWORD 以度为单位的纬度值乘以10的6次方, 精确到百万分之一度
- unsigned int Longitude;//12 经度 DWORD 以度为单位的经度值乘以10的6次方, 精确到百万分之一度
- unsigned short Altitude; //16 高程 WORD 海拔高度,单位为米(m)
- unsigned short Speed;//18 速度 WORD 1/10km/h
- unsigned short Aspect;//20 方向 WORD 0-359,正北为 0,顺时针
- unsigned char Time[6];//21 时间 BCD[6] YY-MM-DD-hh-mm-ss(GMT+8 时及的时间均采用此时区)
- //附加信息
- unsigned char ExtraMsgId;//附加信息ID --渔船项目固定为:0x3A
- unsigned char ExtraMsgLen;//附加信息长度 --长度固定为从下一项开始到结构体最后的长度
- unsigned char NetMode;//网络模式
- unsigned char CSQ;//4G 信号强度
- unsigned char Infrared; //红外总使能状态,对应第21字节
- unsigned char Camera; //视频总使能状态,对应第22字节
- unsigned short TcLen;
- unsigned char TcData[TC_DATA_MAX_LEN];//透传的数据,对应从23字节开始
-
- }__attribute__((packed)) SUT_POSITION;
- extern unsigned char g_ucPropacketBuf[PROPACKET_BUF_LEN];
- int PacketLogin(unsigned short MsgNum);
- int PacketPosition(unsigned short MsgNum,SUT_POSITION sutPosition);
- int PacketMorePosition(unsigned short MsgNum);
- void PacketConvertTest(void);
- void PacketDeConvertTest(void);
- int CheckPacket(unsigned char *pData,unsigned short DataLen);
- int PacketConvert(unsigned char *Buf,int BufLen,int DataLen);
- //-------------------------------------------------------------------------------
- #endif
-
|