|
#ifndef __DW_APP_H__
|
#define __DW_APP_H__
|
|
#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 BASELOST_STOPMOTOR_TIME 5
|
//BITSTATE
|
#define GOINGSLEEPBIT 1
|
|
//#define NEWBOARD
|
//#define TAG_OUTPUT
|
#define HEX_OUTPUT
|
|
#define MAX_NEARBASE_NUM 12
|
|
#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 256
|
#define DFT_RAND_DLY_TIM_MS 1
|
#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 µs and 1 µs = 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
|
#define SYNC 0x04
|
#define NEAR_MSG 0x05
|
#define NEAR_POLL 0x06
|
#define NEAR_RESPONSE 0x07
|
#define NEAR_FINAL 0x08
|
//General
|
#define GROUP_ID_IDX 0
|
#define ANCHOR_ID_IDX 1
|
#define TAG_ID_IDX 5
|
#define MESSAGE_TYPE_IDX 9
|
//Poll
|
#define ANC_TYPE_IDX 14
|
//respose
|
#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
|
#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 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 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)
|
extern TrackingDiffClass *pUWBDistanceTrackingDiff;
|
extern uint16_t poll_timer,tag_timer;
|
extern int8_t tag_delaytime;
|
extern uint32_t dev_id;
|
extern uint8_t anchor_type;
|
extern uint32_t time32_incr;
|
extern uint16_t tag_recv_timer;
|
extern double dist_cm;
|
extern uint32_t g_UWB_com_interval;
|
extern float dis_after_filter;
|
|
extern uint8_t usart_send[25];
|
|
void IdleTask(void);
|
uint16_t Checksum_u16(uint8_t* pdata, uint32_t len);
|
void Dw1000_Init(void);
|
void Tag_App(void);
|
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
|