WXK
2023-07-28 57eea5dfc5a016754c2209d3cd5ca746915848e4
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
 
#ifndef __DW_APP_H__
#define __DW_APP_H__
 
#include <string.h>
#include "main.h"
 
#include "ADC.h"
#include "TrackingDiff.h"
#define PWTAG_MAXGROUPNUM 30
struct pwtag_structure
{
   unsigned char  remain_time,index;
   unsigned short id,value;
};
extern struct pwtag_structure pwtag[30];
 
typedef enum 
{
    SEARCH,
    CLOSE,
    RANGE,
}enumwltagstate;
 
 
#define FRAME_LEN_MAX      (127)
#define FRAME_LEN_MAX_EX   (1023)
#define MAX_ANCFREQ    20//»ùվƵÂÊÉÏÏÞ
#define NOTAG_FREQ     1// ÎÞ±êÇ©Çé¿öÏ£¬»ùÕ¾¶¨Î»ÆµÂÊ
#define FREQ_LOST_TIME   30 // ±êÇ©ÎÞÐźŻָ´ÆµÂÊ1HZʱ¼ä¡£Ãë
#define SENDANCPARA_LEN 102
#define BASELOST_STOPMOTOR_TIME 5
//BITSTATE
#define GOINGSLEEPBIT 1
 
//#define NEWBOARD
//#define TAG_OUTPUT
#define HEX_OUTPUT
 
#define SLOT_SCALE 4
#define MAX_NEARBASE_NUM 25
#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 POLL                                 0x01
#define RESPONSE                             0x02
#define FINAL                               0x03
#define SYNC                                   0x04
 
//#define NEAR_POLL                           0x06
//#define NEAR_RESPONSE                       0x07
//#define NEAR_FINAL                           0x08
//#define NEAR_PRAAREPLY                       0x20
 
#define MBX_POLL                               0x20
#define MBX_RESPONSE                           0x21
#define MBX_FINAL                           0x22
#define MBX_PRAAREPLY                       0x23
#define MBX_REG                               0x24
//General
#define GROUP_ID_IDX                   0
#define ANCHOR_ID_IDX                1
#define TAG_ID_IDX                    5
#define MESSAGE_TYPE_IDX             9    
#define MESSAGE_PARAREPLY_IDX         10
//Poll
#define TAGSTATE              7
#define ANC_TYPE_IDX                     14
//respose
#define DIST_IDX                             10
#define ANCTIMEMS             14
#define ANCTIMEUS             16
#define TAGFREQ_IDX                        7
#define MAINBASE_INDEX          18
#define MOTORSTATE_INDEX      19
#define REMOTEPARA_INDEX      22
//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
 
 
//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
 
//NEAR MSG
#define NEARMSG_EMPTYSLOTPOS_INDEX         1 //RESPONSE
#define NEARBASENUM_INDEX    10
#define NEARBASEID_INDEX         11
//NEAR POLL
#define RESP_MSG_POLL_RX_TS_IDX  26
#define RESP_MSG_RESP_TX_TS_IDX  30
#define RESP_MSG_ANC_DISTOFFSET  34
 
#define SEQUENCE_IDX                    3
#define BATTARY_IDX                        4
#define BUTTON_IDX                        7
 
#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 void TagDistClear(void);
void Dw1000_App_Init(void);
#endif