#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