From 003aff1766ffd3ccfe9df6096ef137340ebfeabf Mon Sep 17 00:00:00 2001
From: zhyinch <zhyinch@gmail.com>
Date: 星期五, 18 十二月 2020 16:57:26 +0800
Subject: [PATCH] Merge branch '调试' into 定位-临近

---
 Src/application/dw_app.c |  122 ++++++++++++++++++++--------------------
 1 files changed, 62 insertions(+), 60 deletions(-)

diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c
index 6d6e1a9..8f1a2e0 100644
--- a/Src/application/dw_app.c
+++ b/Src/application/dw_app.c
@@ -69,7 +69,7 @@
 #define FINAL_MSG_FINAL_TX_TS_IDX 18
 #define FINAL_MSG_TS_LEN 4
 
-#define STARTPOLL  REGPOLL
+#define STARTPOLL  DISCPOLL
 enum enumtagstate
 {
 	REGPOLL,
@@ -584,7 +584,7 @@
 		tyncpoll_time=(tagslotpos-1)*slottime;
 	}
 	mainbase_id=minid;
-//	mainbase_id = 0x9804;
+//	mainbase_id = 0x4;
 }
 u8 nearmsg_mainbase=0,rec_tagpos_emptylist[32],mainbase_type;;
 void GetNearMsg(void)
@@ -777,11 +777,11 @@
 									memcpy(&nearbase_switchdistlist[rec_nearbasepos],&rx_buffer[NR_NEARSWITCH_DISTANCE],2);
 									nearbase_distlist[rec_nearbasepos]=temp_dist;								
 									final_msg_set_ts(&tx_near_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX+(rec_nearbasepos)*4], resp_rx_ts);
-									if(temp_dist<nearbase_switchdistlist[rec_nearbasepos]&&nearbase_switchdistlist[rec_nearbasepos]!=0&&temp_dist>0)
-									{
-										mainbase_id = rec_nearbaseid;
-										tag_state = GETNEARMSG;
-									}
+//									if(temp_dist<nearbase_switchdistlist[rec_nearbasepos]&&nearbase_switchdistlist[rec_nearbasepos]!=0&&temp_dist>0)
+//									{
+//										mainbase_id = rec_nearbaseid;
+//										tag_state = GETNEARMSG;
+//									}
 								
 						}								
 							}
@@ -799,59 +799,59 @@
 			dwt_forcetrxoff();
 dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR);
 		j=0;
-//			if(exsistbase_list[0]==0)
-//			{
-//				SetNextPollTime(tagslotpos);
-//			}
+			if(exsistbase_list[0]==0)
+			{
+				SetNextPollTime(tagslotpos);
+			}
 		//	tyncpoll_time=0;
-//			next_nearbase_num=0;
-//			for(i=0;i<nearbase_num;i++)
-//			{
-//				if(exsistbase_list[i]>0)
-//				{		
-//					next_nearbase_num++;
-//					true_exsistbase_list[j]=exsistbase_list[i];
-//					true_nearbase_idlist[j]=nearbaseid_list[i];			
-//					true_nearbase_distlist[j++]=nearbase_distlist[i];
-//					exsistbase_list[i]--;
-//				}
-//			}
+			next_nearbase_num=0;
+			for(i=0;i<nearbase_num;i++)
+			{
+				if(exsistbase_list[i]>0)
+				{		
+					next_nearbase_num++;
+					true_exsistbase_list[j]=exsistbase_list[i];
+					true_nearbase_idlist[j]=nearbaseid_list[i];			
+					true_nearbase_distlist[j++]=nearbase_distlist[i];
+					exsistbase_list[i]--;
+				}
+			}
 
-//			if(recbase_num<3)
-//			{next_nearbase_num=next_nearbase_num;}
-//					last_nearbase_num = next_nearbase_num;
-//			for(i=0;i<last_nearbase_num-1;i++)
-//			{
-//				for(j=0;j<last_nearbase_num-1;j++)
-//				{
-//					if(true_nearbase_distlist[j]>true_nearbase_distlist[j+1])
-//					{
-//						u32 temp_dist,temp_id,temp_exsis;
-//						temp_dist=true_nearbase_distlist[j];
-//						temp_id = true_nearbase_idlist[j];
-//						temp_exsis=true_exsistbase_list[i];
-//						true_nearbase_distlist[j]=true_nearbase_distlist[j+1];
-//						true_nearbase_idlist[j]=true_nearbase_idlist[j+1];
-//						true_exsistbase_list[j]=true_exsistbase_list[j+1];
-//						
-//						true_nearbase_distlist[j+1]=temp_dist;
-//						true_nearbase_idlist[j+1]=temp_id;
-//						true_exsistbase_list[j+1]=temp_exsis;
-//					}			
-//				}
-//			}
+			if(recbase_num<3)
+			{next_nearbase_num=next_nearbase_num;}
+					last_nearbase_num = next_nearbase_num;
+			for(i=0;i<last_nearbase_num-1;i++)
+			{
+				for(j=0;j<last_nearbase_num-1;j++)
+				{
+					if(true_nearbase_distlist[j]>true_nearbase_distlist[j+1])
+					{
+						u32 temp_dist,temp_id,temp_exsis;
+						temp_dist=true_nearbase_distlist[j];
+						temp_id = true_nearbase_idlist[j];
+						temp_exsis=true_exsistbase_list[i];
+						true_nearbase_distlist[j]=true_nearbase_distlist[j+1];
+						true_nearbase_idlist[j]=true_nearbase_idlist[j+1];
+						true_exsistbase_list[j]=true_exsistbase_list[j+1];
+						
+						true_nearbase_distlist[j+1]=temp_dist;
+						true_nearbase_idlist[j+1]=temp_id;
+						true_exsistbase_list[j+1]=temp_exsis;
+					}			
+				}
+			}
 
-//			if(true_nearbase_distlist[0]<mainbase_dist-THRESHOLD_CHANGE_MAINBASE_DIST&&true_exsistbase_list[0])
-//			{
-//				changemainbase_count++;		
-//			}else{
-//				changemainbase_count = 0;
-//			}
-//			if(changemainbase_count>3)
-//			{
-//				mainbase_id = true_nearbase_idlist[0];
-//				tag_state = GETNEARMSG;
-//			}
+			if(true_nearbase_distlist[0]<mainbase_dist-THRESHOLD_CHANGE_MAINBASE_DIST&&true_exsistbase_list[0])
+			{
+				changemainbase_count++;		
+			}else{
+				changemainbase_count = 0;
+			}
+			if(changemainbase_count>2*tag_frequency)
+			{
+				mainbase_id = true_nearbase_idlist[0];
+				tag_state = GETNEARMSG;
+			}
 			if(mainbase_lost_count>10*tag_frequency)
 			{
 				tag_state = STARTPOLL;
@@ -976,6 +976,7 @@
 									mainbase_id=rec_nearbaseid;
 									nearbase_num=rx_buffer[NEARBASENUM_INDEX];
 									memcpy(nearbaseid_list,&rx_buffer[NEARBASEID_INDEX],nearbase_num*2);
+									if(tagslotpos!=255)
 									tag_state = NEARPOLL;
 								}
 							}
@@ -985,6 +986,9 @@
 {
 	
 	//LED0_ON;
+	SPIx_CS_GPIO->BRR = SPIx_CS;
+	delay_us(700);
+	SPIx_CS_GPIO->BSRR = SPIx_CS;
 	id =  dwt_readdevid() ;
 	    while (DWT_DEVICE_ID != id) 
     {
@@ -1013,10 +1017,8 @@
 			tag_state = STARTPOLL;
 		}
 			break;
-		case NEARPOLL:
-			//GPIO_WriteBit(EU_TX_GPIO, EU_RX_PIN, Bit_SET);
+		case NEARPOLL:	
 			NearPoll();
-			//GPIO_WriteBit(EU_TX_GPIO, EU_RX_PIN, Bit_RESET);
 			break;
 	}
 	dwt_entersleep();

--
Gitblit v1.9.3