zhyinch
2020-10-31 bc6afcc8e1361a5ca81beb4f19d229e0748d4da2
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
 
#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   60
#define DEFAULT_RFPOWER   30
#define REGISTER_FREQUENCY 1
#define HEX_OUTPUT
#define TOTAL_SLOTNUM 200
#define SLOTTIME_MS 48
#define SLOT_SCALE 0.24
#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   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_MSG                           0x05
#define NEAR_POLL                       0x06
#define NEAR_RESPONSE               0x07
#define NEAR_FINAL                       0x08
 
#define REG_POLL                           0x10   //
#define REG_RESPONSE                           0x10   //
//General
#define GROUP_ID_IDX                   0
#define ANCHOR_ID_IDX                1
#define TAG_ID_IDX                    5
#define MESSAGE_TYPE_IDX             9    
//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 REMOTEPARA_INDEX      20
//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
#define NEARBASENUM_INDEX    10
#define NEARBASEID_INDEX         11
//NEAR POLL
 
 
 
//REG POLL
#define REGP_VERSION_INDEX  10
#define REGP_FREQUENCY_INDEX  12
#define REGP_POWER_INDEX  13
#define REGP_IMUTHRES_INDEX  14
#define REGP_NOMOVESLEEPTIME_INDEX  16
//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 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