WXK
2024-11-29 4353e7b92b65e9a558adfbbbb75bc9afdfda69b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
 
#ifndef __DW_APP_H__
#define __DW_APP_H__
 
#include <string.h>
#include "main.h"
 
#include "ADC.h"
#include "TrackingDiff.h"
 
//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 3
 
#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   30
#define MIN_ANCHOR_NUM 2
#define SYNC_SEQ_IDX                5
#define REMOTEPARA_LEN 18
#define OUTRANGE_RESTARTTIMES 5
 
 
#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 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    18
#define NEARBASEID_INDEX         19
//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 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
 
 
//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 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[100];
 
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 void TagDistClear(void);
void Dw1000_App_Init(void);
void DelayOneSlot(void);
#endif