#ifndef SYNC_MSG_DEF #define SYNC_MSG_DEF #define LENGTH_MSG_1K 1024 #define LENGTH_MSG_2K 2048 // 数据包最大长度 #define LENGTH_MSG_4K 4096 #define LENGTH_MSG_8K 8192 // #define LENGTH_MSG_1M 1048476 // 1024 * 1024 #define LENGTH_MSG_4M 4194304 // 4096 * 1024 #define LENGTH_SEND_BUF 256 // #define LENGTH_SQL 2000 #define MSG_LENGTH_MAX LENGTH_MSG_2K #pragma pack(1) typedef unsigned char BYTE; // 8-bit byte typedef unsigned int UINT; // 32-bit word, change to "long" for 16-bit machines typedef unsigned long long UINT64; typedef unsigned int UINT32; typedef unsigned short UINT16; typedef unsigned char UINT8; typedef signed long long INT64; typedef signed int INT32; typedef signed short INT16; typedef signed char INT8; typedef struct { INT16 MsgLen; UINT16 MsgCode; }MsgHeader; typedef struct { MsgHeader Header; UINT8 MsgBody[MSG_LENGTH_MAX]; }SyncAndLocateMsg; typedef struct { UINT32 LocalAnchorNum; UINT8 LocalAntNum; UINT32 UpperAnchorNum; UINT8 UpperAntNum; UINT16 SyncNum; UINT16 SyncLevel; UINT8 SendTimeStamp[5]; UINT8 ReceiveTimeStamp[5]; }SyncMsgData; typedef struct { MsgHeader Header; SyncMsgData MsgData; UINT16 CRCInfo; }SyncMsgSingleRoot; typedef struct { UINT32 LocalAnchorNum; UINT8 LocalAntNum; UINT32 UpperAnchorNum; UINT8 UpperAntNum; UINT16 SyncNum; UINT16 SyncLevel; UINT8 SendTimeStamp[5]; UINT8 ReceiveTimeStamp[5]; UINT32 RootAnchorNum; UINT8 RootAntNum; }SyncMsgMultiRootData; typedef struct { MsgHeader Header; SyncMsgMultiRootData MsgData; UINT16 CRCInfo; }SyncMsgMultiRoot; typedef struct { UINT32 AnchorNum; UINT16 MsgSerialNum; UINT8 AnchorTime[7]; INT8 Temperature; UINT16 State; }LocateAnchorInfo; typedef struct { UINT8 CardType; UINT32 CardId; UINT16 MsgSerialNum; //struct{ // unsigned msg_type:4; // unsigned batter_info:4; //}MsgTypeAndBatterInfo; UINT8 MsgType_BatterInfo; UINT8 Reserved; INT8 AccelerateSpeed; UINT8 LocateTimeStamp[5]; UINT8 AntNum; UINT16 SyncNum; UINT16 SingleStrength; }CardInfo; typedef struct { UINT8 CardType; UINT32 CardId; UINT16 MsgSerialNum; //struct //{ // int MsgType:4; // int BatterInfo:4; //}MsgType_BatterInfo; UINT8 MsgType_BatterInfo; UINT8 Reserved; INT8 AccelerateSpeed; UINT8 LocateTimeStamp[5]; UINT8 AntNum; }TofCardInfo; typedef struct { UINT8 CardType; UINT32 CardId; UINT16 INAVPeriod; INT16 MagneticData_X; INT16 MagneticData_Y; INT16 MagneticData_Z; INT16 AccerateData_X; INT16 AccerateData_Y; INT16 AccerateData_Z; INT16 Gyroscope_X; INT16 Gyroscope_Y; INT16 Gyroscope_Z; INT16 Displacement_X; INT16 Displacement_Y; INT16 Displacement_Z; INT16 AngleChange_X; INT16 AngleChange_Y; INT16 AngleChange_Z; }INAVLocateData; typedef struct { MsgHeader Header; LocateAnchorInfo AnchorInfo; CardInfo CardData[50]; }CardLocateMsg; typedef struct { MsgHeader Header; LocateAnchorInfo AnchorInfo; TofCardInfo TofCardInfo[50]; UINT16 CRCInfo; }TofLocateMsg; #define INAV_TAG_NUM 40 typedef struct { MsgHeader Header; LocateAnchorInfo AnchorInfo; INAVLocateData INAVLocateInfo[INAV_TAG_NUM]; UINT16 CRCInfo; }INAVLocateMsg; enum INAV_MOVING_STATUS { INAV_STATIC = 0, INAV_MOVING }; enum INAV_DIRECTORY { INAV_NO_DIRECTORY = 10, INAV_FORWARD, INAV_BACKWARD, INAV_LEFTWARD, INAV_RIGHTWARD }; enum INAV_ACCERATE_STATUS { INAV_NO_ACCERATE = 100, INAV_ACCERATE, INAV_SLOW_DOWN }; typedef struct { INAV_MOVING_STATUS Status; INAV_DIRECTORY Directory; INAV_ACCERATE_STATUS AccerateStatus; }INAV_STATUS; #define GRAVITY_ACCERATION 9.8 #define INAV_READING_MAX 32768 const double DISPLACEMENT_THRESHOLD = 100; const double JOIN_ACCERATE_THRESHOLD = 0.3; const double MOVING_THRESHOLD = 1.2; const int DISPLACE_MENT_MOVING_THRESHOLD = 45; #endif