123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #ifndef __DEV_MSG_H_
- #define __DEV_MSG_H_
- #pragma pack(push)
- #pragma pack(1)
- #define MAX_NEAR_INFO_NUM 20
- typedef enum{
- REC_DEVINFO,
- REC_GNSSINFO,
- REC_NEARINFO,
- REC_MAX
- }RECTYPE_ENUM;
- typedef enum{//告警状态
- WARN_NORMAL=0, //正常
- WARN_SOS, //SOS求救
- WARN_SHUTOFF, //断电报警
- WARN_SHAKE, //震动报警
- WARN_IN_FENCE, //进围栏报警
- WARN_OUT_FENCE, //出围栏报警
- WARN_OVER_SPEED, //超速报警
- WARN_MOVE=9, //位移报警
- WARN_IN_GPS_ZONE, //进GPS盲区报警
- WARN_OUT_GPS_ZONE, //出GPS盲区报警
- WARN_BOOT, //开机报警
- WARN_GPS_FIRST_LOCATE, //GPS第一次定位报警
- WARN_LOW_PWR, //外电低电报警
- WARN_LOW_PWR_PROTECT, //外电低电保护报警
- WARN_CARD_CHANGED, //换卡报警
- WARN_LOW_PWR_DOWN, //低电关机报警
- WARN_LOW_PWR_FLY, //外电低电保护后飞行模式报警
- WARN_DISMANTLE, //拆卸报警
- WARN_DOOR, //门报警
- WARN_PWROFF //关机报警
- }WARN_ENUM;
- typedef enum{//硬件状态
- HARD_CHARGE=(1<<0), //充电状态 0 -- 未充 1--正在充
- HARD_GPS=(1<<1), //GPS硬件 0 -- 正常 1--故障
- HARD_MOTION=(1<<2), //运动硬件 0--正常 1--故障
- HARD_RF2_4G=(1<<3) //RF2.4G 0--正常 1--故障
- }HARD_ENUM;
- typedef struct {//设备状态信息
- unsigned char status; //上传类型 1:正常上报 2:补传上报
- unsigned char BCDTime[6]; //时间 YY-MM-DD-hh-mm-ss(GMT+8)
- unsigned char hardWareStatus; //硬件状态 HARD_ENUM
- unsigned char warnStatus; //告警状态:WARN_ENUM
- short aspeed_x; //加速度x轴 与上次收集的时间范围内最大值,需乘0.xxx系数才能得到实际值
- short aspeed_y; //加速度y轴 与上次收集的时间范围内最大值,需乘0.xxx系数才能得到实际值
- short aspeed_z; //加速度z轴 与上次收集的时间范围内最大值,需乘0.xxx系数才能得到实际值
- unsigned int steps; //步数 从开机到当前时间的总步数
- unsigned char bat; //0-100 放大10位 如42表示4.2V
- unsigned char csq; //0-31/99 0无信号 31 最强 99异常
- unsigned short mcc; //国家代号
- unsigned char mnc; //移动网号码
- unsigned short lac; //位置区码
- unsigned int cellid; //移动基站
- }DEVICEINFO_DEF;
- typedef struct{//GNSS位置信息
- unsigned char status; //上传类型 1:正常上报位置 2:补传上报位置
- unsigned char BCDTime[6]; //时间 YY-MM-DD-hh-mm-ss(GMT+8)
- unsigned char located; //0 未定位 1 已定位
- unsigned int latitude; //纬度 以度为单位的纬度值乘以10 的6 次方,精确到百万分之一度
- unsigned int longitude; //经度 以度为单位的纬度值乘以10 的6 次方,精确到百万分之一度
- unsigned short height; //高程 海拔高度 unit m
- unsigned short speed; //速度 1/10km/h
- unsigned short direction; //0-359 正北为0,顺时针
- unsigned char onUseGps; //在使用的卫星个数
- unsigned char onViewGps; //在范围的卫星个数
- }GNSSINFO_DEF;
- typedef struct{
- unsigned char mac[6];
- unsigned char rssi;
- }NEAR_DEF;
- typedef struct{
- unsigned char BCDTime[6];
- unsigned char num;
- NEAR_DEF info[MAX_NEAR_INFO_NUM];
- }NEARINFO_DEF;
- #pragma pack(pop)
- extern DEVICEINFO_DEF *gDevInfo;
- extern GNSSINFO_DEF *gGnssInfo;
- extern NEARINFO_DEF *gNearInfo;
- int GetDeviceStatusInfo(unsigned char *pBuf,int leftsize);
- int GetGnssInfo(unsigned char *pBuf,int leftsize);
- int GetNearbyDeviceInfo(unsigned char *pBuf,int leftsize);
- void clearLbsMotionOfDevinfo(void);
- void DevRecShow(void);
- void GnssRecShow(void);
- void NearRecShow(void);
- //#define MAX_DEVSTATUS_INFO_NUM_PER_PAC 5 //每个位置消息包中最多设备状态信息条数
- //#define MAX_GNSS_INFO_NUM_PER_PAC 5 //每个位置消息包中最多GNSS位置信息条数
- //#define MAX_DEVNEAR_INFO_NUM_PER_PAC 20 //每个位置消息包中最多附近设备信息条数
- //主数据/位置上传包的最大值
- //#define MAIN_DATA_PACK_SIZE (1+MAX_DEVSTATUS_INFO_NUM_PER_PAC*sizeof(DEVICEINFO_DEF)+1+MAX_GNSS_INFO_NUM_PER_PAC*sizeof(GNSSINFO_DEF)+1+MAX_DEVNEAR_INFO_NUM_PER_PAC*sizeof(NEARINFO_DEF))
- //#define UPLOAD_RECORD_SIZE (1+2+6+2+MAIN_DATA_PACK_SIZE+2+1+16) //布标位置包为最大数据包,16为预留
- //每次发的包大小是有上限的,每包数据包不能超过MAX_BUBIAO_TCP_SIZE字节
- #define MAX_BUBIAO_TCP_SIZE 4096//1024
- //除去用户数据外,协议体数据大小
- #define BUBIAO_PROTO_SIZE (1+2+2+6+2+2+1)
- //用户数据最大值
- #define MAX_USER_DATA_SIZE (MAX_BUBIAO_TCP_SIZE-BUBIAO_PROTO_SIZE-32) //减32是预留一些空余位置
- #endif
|