#ifndef __DW_APP_H__
|
#define __DW_APP_H__
|
#include "stdint.h"
|
void SetANCTimestap(uint8_t i,uint8_t* pollrx,uint8_t* resptx,uint32_t resprx,uint8_t* distoffset,int32_t anc_clockoffset_from_MK,uint32_t polltx);
|
void CalculateDists1(int64_t poll_tx_ts);
|
void CalculateDists(int64_t poll_tx_ts);
|
int64_t ranging_timestamp_diff(int64_t ts_a, int64_t ts_b);
|
typedef enum
|
{ UN_BIND=0,
|
LINK_SUCCESS,
|
SEARCH_DEV,
|
} Operation_step;
|
|
//BITSTATE
|
#define GOINGSLEEPBIT 1
|
|
//#define NEWBOARD
|
//#define TAG_OUTPUT
|
#define MAX_RFPOWER 67
|
#define DEFAULT_RFPOWER 30
|
#define REGISTER_FREQUENCY 1
|
#define HEX_OUTPUT
|
#define TOTAL_SLOTNUM 200
|
#define SLOTTIME_MS 48
|
#define SLOT_SCALE 0.8
|
#define MAX_NEARBASE_NUM 12
|
#define KEEP_TIMES 5
|
|
#define REPOET_ANC_NUM 1
|
#define REPOET_ANC_NUM_MIN 1
|
#define TAG_ID_START 0// 0x00980000
|
#define GROUP_TAG_NUM 2
|
//#define TAG_NUM_IN_SYS 25
|
#define DFT_RAND_DLY_TIM_MS 1
|
#define THRESHOLD_CHANGE_MAINBASE_DIST 50
|
#define MIN_ANCHOR_NUM 2
|
#define SYNC_SEQ_IDX 5
|
#define REMOTEPARA_LEN 18
|
#define OUTRANGE_RESTARTTIMES 5
|
|
#define RESP_MSG_TAG_FREQUENCY 36
|
#define RESP_MSG_TAG_MOTOR 37
|
#define POLL 0x01
|
#define RESPONSE 0x02
|
#define FINAL 0x03
|
#define SYNC 0x04
|
#define NEAR_MSG 0x05
|
#define NEAR_POLL 0x06
|
#define NEAR_RESPONSE 0x07
|
#define NEAR_FINAL 0x08
|
#define SPOLL 0x09
|
#define DISCOVERPOLL 0x0A
|
#define DISCOVERRESPONSE 0x0B
|
#define DISCOVERFINAL 0x0C
|
#define DISCOVERPOLL2 0x1A
|
#define MSG_TYPE_IDX 0 //LORA MSG TYPE ¶¨Òå
|
#define MSG_LENGTH 1 //±¨Îij¤¶È
|
#define SOURCE_ID_IDX 2 //Íø¹ØID Õ¼ÓÃ2¸ö×Ö½Ú
|
#define DEST_ID_IDX 4 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
#define NEXTPOLL_TIME_IDX 6 //
|
#define POLL_FREQ_IDX 8 //·ÖÅäµÄ·¢ËÍÆµÂÊ£¬ÐèÒª+400µÄÆ«ÒÆÁ¿¡£
|
#define PWTAG_RW_FLAG_IDX 9 //¶Áд±êÖ¾ 0ÎÞ¶Áд 1дÈë 2¶ÁÈ¡
|
#define PWTAG_WRITE_IDX_IDX 10 //дÈëµØÖ·
|
#define PWTAG_SECDELAY_IDX 10 //дÈë±êÇ©ÃëÑÓ³Ù Óë¶ÁдµØÖ·¹²ÓÃÒ»¸öλÖ㬵±ÓжÁдµØÖ·Ê±£¬¾ÍûÓÐÕâ¸ö²ÎÊý¡£
|
#define PWTAG_WRITE_VALUE_IDX 11 //дÈëÖµ
|
//uwb_update
|
#define MSG_TYPE_IDX 0 //LORA MSG TYPE ¶¨Òå
|
#define MSG_LENGTH 1 //±¨Îij¤¶È
|
#define SOURCE_ID_IDX 2 //Íø¹ØID Õ¼ÓÃ2¸ö×Ö½Ú
|
#define DEST_ID_IDX 4 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
#define SYSTIME_IDX 6 //ϵͳʱ¼ä
|
#define RANGE_STATE_IDX 8 //¸ÃÍø¹Ø·¶Î§ÊÇ·ñ²â¾à±ê־λ£¬Îª1ÔòÇøÓòÄÚ»ùÕ¾²â¾à£¬Èç¹ûÊÇ0ÔòÇøÓòÄÚ»ùÕ¾²»²â¾à
|
#define SUBMSGTYPE_IDX 9 //×ÓÏûÏ¢ÀàÐÍIDX
|
#define WRITEPARA_INDEX_IDX 10 //дÈë²ÎÊýµÄµØÖ·IDX
|
#define WRITEPATE_VALUE_IDX 11 //дÈë²ÎÊýµÄÖµ£¬2¸ö×Ö½Ú /*ÔÚ·¢ËÍÉý¼¶»ùÕ¾ÇëÇóʱ£¬±»Ì滻ΪҪ·¢Ë͵ÄÉý¼¶ÎļþµÄ´óС
|
#define WG_SYNC_RESERVE_IDX 13//±£Áô 4¸ö×Ö½Ú
|
|
#define SEND_GROUP_MAX_NUM 25
|
#define POS_MSG 0x15
|
#define POS_POLL 0x16
|
#define POS_RESPONSE 0x17
|
#define POS_FINAL 0x18
|
|
#define REG_POLL 0x10 //
|
#define REG_RESPONSE 0x11 //
|
#define REG_POLL2 0x20 //
|
//General
|
#define GROUP_ID_IDX 0
|
#define ANCHOR_ID_IDX 1
|
#define TAG_ID_IDX 5
|
#define MESSAGE_TYPE_IDX 9
|
|
#define NEARBASENUM_INDEX 10
|
#define NEARBASEID_INDEX 11
|
//Poll
|
#define TAGSTATE 7
|
#define ANC_TYPE_IDX 14
|
//respose
|
#define DIST_IDX 10
|
#define ANCTIMEMS 14
|
#define ANCTIMEUS 16
|
#define TAGSLOTPOS 7
|
#define MOTORSTATE_INDEX 19
|
#define NR_NEARSWITCH_DISTANCE 20
|
#define REMOTEPARA_INDEX 22
|
#define MAXRANGE_DISTANCE 22
|
#define ANC_SIGNALPOWER 24
|
#define TAG_NUM_IN_SYS 25
|
#define RESP_MSG_POLL_RX_TS_IDX 26
|
#define RESP_MSG_RESP_TX_TS_IDX 30
|
#define RESP_MSG_ANC_DISTOFFSET 34
|
|
//Final
|
#define TAGCONFIGSUCCESS_INDEX 7
|
#define FINAL_MSG_POLL_TX_TS_IDX 10
|
#define FINAL_MSG_RESP_RX_TS_IDX 14
|
#define FINAL_MSG_FINAL_TX_TS_IDX 18
|
#define FINAL_MSG_RESP_RX_NEARBASE_IDX 22
|
#define FINAL_MSG_TS_LEN 4
|
//SYNC
|
#define SYNC_SEQ_IDX 5
|
//NEAR MSG
|
#define NEARMSG_EMPTYSLOTPOS_INDEX 1 //RESPONSE
|
//NEAR POLL
|
#define NEARP_TAGFREQ_INDEX 10
|
#define NEARP_TAGSLOTPOS_INDEX 12
|
|
//uwb_update
|
#define MSG_TYPE_IDX 0 //LORA MSG TYPE ¶¨Òå
|
#define MSG_LENGTH 1 //±¨Îij¤¶È
|
#define SOURCE_ID_IDX 2 //Íø¹ØID Õ¼ÓÃ2¸ö×Ö½Ú
|
#define DEST_ID_IDX 4 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
#define SYSTIME_IDX 6 //ϵͳʱ¼ä
|
#define RANGE_STATE_IDX 8 //¸ÃÍø¹Ø·¶Î§ÊÇ·ñ²â¾à±ê־λ£¬Îª1ÔòÇøÓòÄÚ»ùÕ¾²â¾à£¬Èç¹ûÊÇ0ÔòÇøÓòÄÚ»ùÕ¾²»²â¾à
|
#define SUBMSGTYPE_IDX 9 //×ÓÏûÏ¢ÀàÐÍIDX
|
#define WRITEPARA_INDEX_IDX 10 //дÈë²ÎÊýµÄµØÖ·IDX
|
#define WRITEPATE_VALUE_IDX 11 //дÈë²ÎÊýµÄÖµ£¬2¸ö×Ö½Ú /*ÔÚ·¢ËÍÉý¼¶»ùÕ¾ÇëÇóʱ£¬±»Ì滻ΪҪ·¢Ë͵ÄÉý¼¶ÎļþµÄ´óС
|
#define WG_SYNC_RESERVE_IDX 13//±£Áô 4¸ö×Ö½Ú
|
|
|
#define LORA_MSGTYPE_SYNC 1//Íø¹ØÏ·¢¸ø»ùÕ¾µÄͬ²½ÐÅÏ¢
|
#define LORA_MSGTYPE_CFGRSP 2//»ùÕ¾»Ø¸´¸øÍø¹ØÅäÖöÁÈ¡ÐÅÏ¢
|
#define LORA_MSGTYPE_UPDATE_CONFIRM 3//»ùÕ¾»Ø¸´¸øÍø¹ØÉý¼¶È·ÈÏÐÅÏ¢
|
#define LORA_MSGTYPE_RANGEPOLL 4//»ùÕ¾·¢Æð²â¾àͬ²½ÐźÅ
|
#define LORA_MSGTYPE_UPDATEFILE_REQUEST 5//»ùÕ¾·¢Ë͸øÍø¹ØÉý¼¶ÎļþÇëÇó
|
#define LORA_MSGTYPE_UPDATEFILE_RESP 6//Íø¹Ø»Ø¸´»ùÕ¾Éý¼¶ÎļþÄÚÈÝ
|
#define LORA_MSGTYPE_UPDATE_CONFIRM2 13//»ùÕ¾»Ø¸´¸øÍø¹ØÉý¼¶È·ÈÏÐÅÏ¢-SF8ģʽ
|
|
#define LORA_MSGTYPE_WGRESPTAG 8//Íø¹Ø»Ø¸´±êÇ©²â¾à¶¨Î»±¨ÎÄ
|
#define LORA_MSGTYPE_TAG_HEARTBEAT 0x33//±êÇ©ÐÄÌø°üÉÏ´«
|
#define LORA_MSGTYPE_ANC_HEARTBEAT 0x32//»ùÕ¾ÐÄÌø°üÉÏ´«
|
#define LORA_MSGTYPE_WG_RESPONSE_TAG 11//Íø¹Ø»Ø¸´±êÇ©²â¾à±¨ÎÄ
|
|
#define LORA_MSGTYPE_TAGMSGTOWG 0x22//±êÇ©¾àÀëÐÅÏ¢·¢¸øÍø¹Ø
|
#define LORA_MSGTYPE_TAGMSGTOWG_GPS 0x23//±êÇ©¾àÀëÐÅÏ¢·¢¸øÍø¹Ø´øGPS
|
#define LORA_MSGTYPE_TAGMSGTOWG_2 0x24//±êÇ©¾àÀëÐÅÏ¢·¢¸øÍø¹Ø
|
#define LORA_MSGTYPE_TAGMSGTOWG_GPS_2 0x25//±êÇ©¾àÀëÐÅÏ¢·¢¸øÍø¹Ø´øGPS
|
#define LORA_MSGTYPE_TAGHEARTBEAT 0x33//±êÇ©ÐÄÌø°üÉÏ´«
|
#define LORA_MSGTYPE_READPARARESP 0x39//±êÇ©»ùÕ¾»Ø¸´Íø¹Ø¶ÁÈ¡ÅäÖÃÖ¸Áî
|
|
//#define LORA_MSGTYPE_WGRESPTAG 8//Íø¹Ø»Ø¸´±êÇ©²â¾à¶¨Î»±¨ÎÄ ¸ñʽ
|
#define MSG_TYPE_IDX 0 //LORA MSG TYPE ¶¨Òå
|
#define MSG_LENGTH 1 //±¨Îij¤¶È ÎÞÓïÒô¹Ì¶¨14 ÓÐÓïÒô¾ÍÊÇ12+ÓïÒô³¤¶È
|
#define SOURCE_ID_IDX 2 //Íø¹ØID Õ¼ÓÃ2¸ö×Ö½Ú
|
#define DEST_ID_IDX 4 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
#define NEXTPOLL_TIME_IDX 6 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
#define POLL_FREQ_IDX 8 //·ÖÅäµÄ·¢ËÍÆµÂÊ£¬ÐèÒª+400µÄÆ«ÒÆÁ¿¡£
|
#define RW_FLAG_IDX 9 //¶Áд±êÖ¾ 0ÎÞ¶Áд 1дÈë 2¶ÁÈ¡
|
#define WRITE_IDX_IDX 10 //дÈëµØÖ·
|
#define SECDELAY_IDX 10 //дÈë±êÇ©ÃëÑÓ³Ù Óë¶ÁдµØÖ·¹²ÓÃÒ»¸öλÖ㬵±ÓжÁдµØÖ·Ê±£¬¾ÍûÓÐÕâ¸ö²ÎÊý¡£
|
#define WRITE_VALUE_IDX 11 //дÈëÖµ
|
|
#define MSG_TYPE_IDX 0 //LORA MSG TYPE ¶¨Òå
|
#define MSG_LENGTH 1 //±¨Îij¤¶È
|
#define SOURCE_ID_IDX 2 //Íø¹ØID Õ¼ÓÃ2¸ö×Ö½Ú
|
#define DEST_ID_IDX 4 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
#define NEXTPOLL_TIME_IDX 6 //
|
#define POLL_FREQ_IDX 8 //·ÖÅäµÄ·¢ËÍÆµÂÊ£¬ÐèÒª+400µÄÆ«ÒÆÁ¿¡£
|
#define PWTAG_RW_FLAG_IDX 9 //¶Áд±êÖ¾ 0ÎÞ¶Áд 1дÈë 2¶ÁÈ¡
|
#define PWTAG_WRITE_IDX_IDX 10 //дÈëµØÖ·
|
#define PWTAG_SECDELAY_IDX 10 //дÈë±êÇ©ÃëÑÓ³Ù Óë¶ÁдµØÖ·¹²ÓÃÒ»¸öλÖ㬵±ÓжÁдµØÖ·Ê±£¬¾ÍûÓÐÕâ¸ö²ÎÊý¡£
|
#define PWTAG_WRITE_VALUE_IDX 11 //дÈëÖµ
|
|
#define WGRSP_RWTAG_NONE 0//Íø¹Ø»Ø¸´±êÇ©£¬ÎÞ¶Áд
|
#define WGRSP_RWTAG_READ 2//Íø¹Ø»Ø¸´±êÇ©£¬ÎÞ¶Áд
|
#define WGRSP_RWTAG_WRITE 1//Íø¹Ø»Ø¸´±êÇ©£¬ÎÞ¶Áд
|
#define WGRSP_RWTAG_UPDATE 0x06//Íø¹Ø»Ø¸´±êÇ©£¬ÎÞ¶Áд
|
|
|
//#define LORA_MSGTYPE_READPARARESP 0x39 //±êÇ©»ùÕ¾»Ø¸´Íø¹Ø¶ÁÈ¡ÅäÖÃÖ¸Áî
|
#define MSG_TYPE_IDX 0 //LORA MSG TYPE ¶¨Òå
|
#define MSG_LENGTH 1 //±¨Îij¤¶È
|
#define SOURCE_ID_IDX 2 //Íø¹ØID Õ¼ÓÃ2¸ö×Ö½Ú
|
#define DEST_ID_IDX 4 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
#define RP_CMD_IDX 6 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
#define RP_INDEX_IDX 7 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
#define RP_LEN_IDX 8 //±êÇ©»òÕß»ùÕ¾µÄÉ豸ID 2¸ö×Ö½Ú
|
|
//REG POLL
|
#define REGP_TAGSTATE_INDEX 10
|
#define REGP_VERSION_INDEX 11
|
#define REGP_FREQUENCY_INDEX 13
|
#define REGP_POWER_INDEX 14
|
#define REGP_IMUTHRES_INDEX 15
|
#define REGP_NOMOVESLEEPTIME_INDEX 17
|
#define REGP_HEIGHTOFFSET_INDEX 19
|
#define REGP_BATTARY_INDEX 19
|
//REG RESPONSE
|
#define REGR_TAGFREQ_INDEX 10
|
#define REGR_TAGSLOTPOS_INDEX 12
|
#define REGR_BASENUM_INDEX 18
|
#define REGR_BASEID_INDEX 19
|
|
|
#define SEQUENCE_IDX 3
|
#define BATTARY_IDX 4
|
#define BUTTON_IDX 7
|
#define SEQUENCEH_IDX 8
|
|
|
|
#define MBX_RESPONSE 0x21
|
#define MBX_POLL 0x20
|
#define MBX_RESPONSE 0x21
|
#define MBX_FINAL 0x22
|
#define MBX_PRAAREPLY 0x23
|
#define MBX_REG 0x24
|
|
#define MESSAGE_TYPE_IDX 9
|
#define TAG_ID_IDX 5
|
#define GROUP_ID_IDX 0
|
#define ANCHOR_ID_IDX 1
|
//#define MAX_NEARBASE_NUM 25
|
#define TAG_KEEPTIMES 30 //±êÇ©´æ»îʱ¼ä
|
//#define KEEP_TIMES 5
|
//#define TAG_NUM_IN_SYS 25
|
|
#define SEQUENCE_IDX 3
|
#define BATTARY_IDX 4
|
//NEAR POLL
|
#define RESP_MSG_POLL_RX_TS_IDX 26
|
#define RESP_MSG_RESP_TX_TS_IDX 30
|
#define RESP_MSG_ANC_DISTOFFSET 34
|
|
////NEAR MSG
|
//#define NEARBASENUM_INDEX 10
|
//#define NEARBASEID_INDEX 11
|
#define APP2_ADRESS 0x0402f000
|
#define APP1_ADRESS 0x04000000
|
|
#define APP_SIZE 0x04080000-APP2_ADRESS
|
|
#define APP_1OR2_ADRESS 0x04080000-0x1000
|
#define MUQIAN_BAG 6
|
#define DATA_IDX 8
|
#define ONE_BAG_DAXIAO 100
|
|
|
#define TAG_KEEPTIMES 30 //±êÇ©´æ»îʱ¼ä
|
#define MAX_TAG_LIST_NUM 200 //ͬʱͨѶ±êÇ©×î´óÊýÁ¿
|
|
#define FREQ_OFFSET_MULTIPLIER (998.4e6/2.0/1024.0/131072.0)
|
#define FREQ_OFFSET_MULTIPLIER_110KB (998.4e6/2.0/8192.0/131072.0)
|
|
#define HERTZ_TO_PPM_MULTIPLIER_CHAN_1 (-1.0e6/3494.4e6)
|
#define HERTZ_TO_PPM_MULTIPLIER_CHAN_2 (-1.0e6/3993.6e6)
|
#define HERTZ_TO_PPM_MULTIPLIER_CHAN_3 (-1.0e6/4492.8e6)
|
#define HERTZ_TO_PPM_MULTIPLIER_CHAN_5 (-1.0e6/6489.6e6)
|
#endif
|