yincheng.zhong
2024-01-29 4691492f913d0730703f8fcdacd0a02d455d65a1
Src/application/dw_app.h
@@ -4,31 +4,62 @@
#include <string.h>
#include "main.h"
#include "deca_device_api.h"
//#include "deca_device_api_3000.h"
#include "deca_regs.h"
#include "dw_driver.h"
#include "ADC.h"
#include "TrackingDiff.h"
//#define WORK_MODE_TAG
#define WORK_MODE_ANCHOR
#define BASELOST_STOPMOTOR_TIME 5
//BITSTATE
#define GOINGSLEEPBIT 1
//#define NEWBOARD
//#define TAG_OUTPUT
#define HEX_OUTPUT
#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 TAG_NUM_IN_SYS            256
#define DFT_RAND_DLY_TIM_MS         1
#define THRESHOLD_CHANGE_MAINBASE_DIST   50
#define MIN_ANCHOR_NUM 2
#define SYNC_SEQ_IDX             5
#define QUIT_SLOT_TIME    5
#define KEEP_TIMES 30
#define SLOT_SCALE 0.7
#define RNG_DELAY_MS 100
/* Default antenna delay values for 64 MHz PRF. See NOTE 1 below. */
#define TX_ANT_DLY 0
#define RX_ANT_DLY 32899
/* UWB microsecond (uus) to device time unit (dtu, around 15.65 ps) conversion factor.
 * 1 uus = 512 / 499.2 祍 and 1 祍 = 499.2 * 128 dtu. */
#define UUS_TO_DWT_TIME 65536
/* Delay between frames, in UWB microseconds. See NOTE 4 below. */
/* This is the delay from the end of the frame transmission to the enable of the receiver, as programmed for the DW1000's wait for response feature. */
#define POLL_TX_TO_RESP_RX_DLY_UUS 150
/* This is the delay from Frame RX timestamp to TX reply timestamp used for calculating/setting the DW1000's delayed TX function. This includes the
 * frame length of approximately 2.66 ms with above configuration. */
#define RESP_RX_TO_FINAL_TX_DLY_UUS 410
/* Receive response timeout. See NOTE 5 below. */
#define RESP_RX_TIMEOUT_UUS 2000
#define DELAY_BETWEEN_TWO_FRAME_UUS 550
#define POLL_RX_TO_RESP_TX_DLY_UUS 470
/* This is the delay from the end of the frame transmission to the enable of the receiver, as programmed for the DW1000's wait for response feature. */
#define RESP_TX_TO_FINAL_RX_DLY_UUS 10
/* Receive final timeout. See NOTE 5 below. */
#define FINAL_RX_TIMEOUT_UUS 4300
#define SPEED_OF_LIGHT 299702547
//MESSAGE_TYPE
#define POLL                          0x01
#define RESPONSE                      0x02
#define FINAL                        0x03
@@ -48,6 +79,12 @@
#define DIST_IDX                      10
#define ANCTIMEMS             14
#define ANCTIMEUS             16
#define MAINBASE_INDEX        18
#define MOTORSTATE_INDEX      19
#define REMOTEPARA_INDEX      20
#define RESP_MSG_POLL_RX_TS_IDX  26
#define RESP_MSG_RESP_TX_TS_IDX  30
#define RESP_MSG_ANC_DISTOFFSET  34
#define TAGSLOTPOS                  7
//Final
#define FINAL_MSG_POLL_TX_TS_IDX 10
@@ -56,16 +93,19 @@
#define FINAL_MSG_RESP_RX_NEARBASE_IDX  22
#define FINAL_MSG_TS_LEN 4
//SYNC
#define ANCHOR_ID_IDX             1
#define SYNC_SEQ_IDX             5
//NEAR MSG
#define NEARMSG_EMPTYSLOTPOS_INDEX       1 //RESPONSE
#define NEARBASENUM_INDEX    10
#define NEARBASEID_INDEX       11
//NEAR POLL
#define BATTARY_IDX                  1
#define BUTTON_IDX                  2
#define SEQUENCE_IDX               3
#define BATTARY_IDX                  4
#define BUTTON_IDX                  7
#define SLOTTIME_MS 48
#define REMOTEPARA_LEN 18
#define THRESHOLD_CHANGE_MAINBASE_DIST   5
#define DW_CTRL_GPIO               GPIOA
#define DW_ENABLE   HAL_GPIO_WritePin(DW_CTRL_GPIO, DW_CTRL_Pin, GPIO_PIN_RESET)
#define DW_DISABLE  HAL_GPIO_WritePin(DW_CTRL_GPIO, DW_CTRL_Pin, GPIO_PIN_SET)
@@ -89,7 +129,7 @@
void Anchor_App(void);
void tag_sleep_configuraion(void);
extern int32_t g_Tagdist[TAG_NUM_IN_SYS];
extern dwt_config_t config;
extern void TagDistClear(void);
void Dw1000_App_Init(void);
#endif