From 0fa736d6e3dc2e086b9f75ba1985e6d6ca000d2a Mon Sep 17 00:00:00 2001
From: zhyinch <zhyinch@gmail.com>
Date: 星期三, 21 九月 2022 10:32:09 +0800
Subject: [PATCH] 测试通过

---
 Src/application/dw_app.c |   33 +++++++++++++++++++++++++++++----
 1 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c
index 71a1b17..d76461a 100644
--- a/Src/application/dw_app.c
+++ b/Src/application/dw_app.c
@@ -48,7 +48,7 @@
 #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
+#define RESP_RX_TO_FINAL_TX_DLY_UUS 2410
 
 /* Receive response timeout. See NOTE 5 below. */
 #define RESP_RX_TIMEOUT_UUS 600
@@ -295,7 +295,29 @@
 u8 nearbase_num=0,last_nearbase_num,next_nearbase_num,last_slotnum, para_update,para_len,stationary_flag=0;
 u32 rec_tagpos_binary;
 int16_t offset=2700;
+extern int16_t g_commap_antdelay;
 u8 motor_state,rec_remotepara_state,rec_remotepara[80];
+ double firstpath_power,firstpath_power2, rx_power,rec_firstpath_power;
+  double f1, f2, r1, r2;
+uint16_t F1,F2,F3,N,C;
+double B = 131072;
+double A = 121.74;
+double min_power;
+ dwt_rxdiag_t d1;
+double LOS(dwt_rxdiag_t *dia) {
+     F1 = dia->firstPathAmp1;
+     F2 = dia->firstPathAmp2;
+     F3 = dia->firstPathAmp3;
+     N = dia->rxPreamCount;
+     C = dia->maxGrowthCIR;
+    
+    firstpath_power=10* log10((F1*F1+F2*F2+F3*F3)/(N*N))-A;
+    rx_power=10*log10(C*B/(N*N))-A;
+
+ //   min_power =  - 10 * log10((F1 *F1 + F2 * F2 + F3 * F3) / (C *B));
+    return min_power;
+  }
+
 void NearPoll(void)
 {
 	
@@ -324,9 +346,10 @@
 	tx_near_msg[NEARBASENUM_INDEX] = nearbase_num;
 	memcpy(&tx_near_msg[NEARBASEID_INDEX],&nearbaseid_list,nearbase_num*2);
 	tx_near_msg[MESSAGE_TYPE_IDX] = NEAR_POLL;	
+    memcpy(&tx_near_msg[NEARBASEID_INDEX+nearbase_num*4],&g_commap_antdelay,2);
 	memcpy(&tx_near_msg[ANCHOR_ID_IDX],&mainbase_id,2);	
-	dwt_writetxdata(13+2*nearbase_num, tx_near_msg, 0);//将Poll包数据传给DW1000,将在开启发送时传出去
-	dwt_writetxfctrl(13+2*nearbase_num, 0);//设置超宽带发送数据长度
+	dwt_writetxdata(15+4*nearbase_num, tx_near_msg, 0);//将Poll包数据传给DW1000,将在开启发送时传出去
+	dwt_writetxfctrl(15+4*nearbase_num, 0);//设置超宽带发送数据长度
 	dwt_starttx(DWT_START_TX_IMMEDIATE | DWT_RESPONSE_EXPECTED);//开启发送,发送完成后等待一段时间开启接收,等待时间在dwt_setrxaftertxdelay中设置
 	
 	tx_near_msg[TAGCONFIGSUCCESS_INDEX] =0;
@@ -436,7 +459,9 @@
 									dwt_writetxfctrl(28+nearbase_num*4, 0);//设定发送数据长度
 									flag_getresponse=1;
 									memcpy(&rec_tagpos_binary,&rx_buffer[NEARMSG_EMPTYSLOTPOS_INDEX],4);
-									
+									dwt_readdiagnostics(&d1);
+                                    LOS(&d1);
+                                    tx_near_msg[TAGRXPOWER_IDX] = -(int)firstpath_power;
 								
 									//时间同步
 									ancsync_time=((sync_timer)*1000+tmp_time);	

--
Gitblit v1.9.3