From e7bad2338d19ebba1a73fa3aac2d1b0c642127b0 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期一, 25 八月 2025 09:12:37 +0800
Subject: [PATCH] 修改协议内容V1.76

---
 源码/核心板/Src/application/global_param.c |    5 +
 源码/核心板/Src/main.c                     |   87 +++++++++++------
 /dev/null                             |    0 
 源码/核心板/MDK-ARM/Project.uvoptx         |  102 +++----------------
 源码/核心板/Src/application/global_param.h |   11 ++
 源码/核心板/Src/application/dw_app.c       |   45 +++++---
 6 files changed, 116 insertions(+), 134 deletions(-)

diff --git "a/doc/~$\346\250\241\345\235\227WLM1000\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.docx" "b/doc/~$\346\250\241\345\235\227WLM1000\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.docx"
deleted file mode 100644
index 4b8d0f4..0000000
--- "a/doc/~$\346\250\241\345\235\227WLM1000\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.docx"
+++ /dev/null
Binary files differ
diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/MDK-ARM/Project.uvoptx" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/MDK-ARM/Project.uvoptx"
index a0e3c03..73163e5 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/MDK-ARM/Project.uvoptx"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/MDK-ARM/Project.uvoptx"
@@ -125,7 +125,7 @@
         <SetRegEntry>
           <Number>0</Number>
           <Key>DLGUARM</Key>
-          <Name></Name>
+          <Name>d</Name>
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
@@ -158,88 +158,7 @@
           <Name>-T0</Name>
         </SetRegEntry>
       </TargetDriverDllRegistry>
-      <Breakpoint>
-        <Bp>
-          <Number>0</Number>
-          <Type>0</Type>
-          <LineNumber>327</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>134266338</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>1</BreakIfRCount>
-          <Filename>D:\zhangbo\2024\Code\F103\UWB_SmallModule_F103\濠ф劗鐖淺Src\main.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression>\\UWB_Projects\../Src/main.c\327</Expression>
-        </Bp>
-        <Bp>
-          <Number>1</Number>
-          <Type>0</Type>
-          <LineNumber>329</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>134266350</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>1</BreakIfRCount>
-          <Filename>D:\zhangbo\2024\Code\F103\UWB_SmallModule_F103\濠ф劗鐖淺Src\main.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression>\\UWB_Projects\../Src/main.c\329</Expression>
-        </Bp>
-        <Bp>
-          <Number>2</Number>
-          <Type>0</Type>
-          <LineNumber>331</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>134266362</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>1</BreakIfRCount>
-          <Filename>D:\zhangbo\2024\Code\F103\UWB_SmallModule_F103\濠ф劗鐖淺Src\main.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression>\\UWB_Projects\../Src/main.c\331</Expression>
-        </Bp>
-        <Bp>
-          <Number>3</Number>
-          <Type>0</Type>
-          <LineNumber>333</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>134266374</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>1</BreakIfRCount>
-          <Filename>D:\zhangbo\2024\Code\F103\UWB_SmallModule_F103\濠ф劗鐖淺Src\main.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression>\\UWB_Projects\../Src/main.c\333</Expression>
-        </Bp>
-        <Bp>
-          <Number>4</Number>
-          <Type>0</Type>
-          <LineNumber>335</LineNumber>
-          <EnabledFlag>1</EnabledFlag>
-          <Address>134266386</Address>
-          <ByteObject>0</ByteObject>
-          <HtxType>0</HtxType>
-          <ManyObjects>0</ManyObjects>
-          <SizeOfObject>0</SizeOfObject>
-          <BreakByAccess>0</BreakByAccess>
-          <BreakIfRCount>1</BreakIfRCount>
-          <Filename>D:\zhangbo\2024\Code\F103\UWB_SmallModule_F103\濠ф劗鐖淺Src\main.c</Filename>
-          <ExecCommand></ExecCommand>
-          <Expression>\\UWB_Projects\../Src/main.c\335</Expression>
-        </Bp>
-      </Breakpoint>
+      <Breakpoint/>
       <WatchWindow1>
         <Ww>
           <count>0</count>
@@ -377,6 +296,23 @@
           <ItemText>min_dist,0x0A</ItemText>
         </Ww>
       </WatchWindow1>
+      <WatchWindow2>
+        <Ww>
+          <count>0</count>
+          <WinNumber>2</WinNumber>
+          <ItemText>at_cmd2</ItemText>
+        </Ww>
+        <Ww>
+          <count>1</count>
+          <WinNumber>2</WinNumber>
+          <ItemText>frame_id</ItemText>
+        </Ww>
+        <Ww>
+          <count>2</count>
+          <WinNumber>2</WinNumber>
+          <ItemText>at_cmd3</ItemText>
+        </Ww>
+      </WatchWindow2>
       <MemoryWindow1>
         <Mm>
           <WinNumber>1</WinNumber>
diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c"
index ba72bc4..1c1df65 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c"
@@ -465,7 +465,7 @@
 									dwt_writetxdata(28+nearbase_num*4, tx_nearfinal_msg, 0);//将发送数据写入DW1000
 									dwt_writetxfctrl(28+nearbase_num*4, 0);//设定发送数据长度
 									memcpy(&rec_tagpos_binary,&rx_buffer[NEARMSG_EMPTYSLOTPOS_INDEX],4);
-                                IWDG_Feed();
+                                    IWDG_Feed();
 								if(temp_dist!=0x1ffff)
 									{
 										g_Resttimer=0;
@@ -484,6 +484,7 @@
 										checksum = Checksum_u16(&usart_send[2],17);
 										memcpy(&usart_send[19],&checksum,2);
 										UART_PushFrame(usart_send,21);
+                                        
 										#endif
 
 									//dwt_setdelayedtrxtime(final_tx_time);//设置final包发送时间T5
@@ -530,6 +531,7 @@
 										checksum = Checksum_u16(&usart_send[2],17);
 										memcpy(&usart_send[19],&checksum,2);
 										UART_PushFrame(usart_send,21);
+
 										#endif
 
 									//dwt_setdelayedtrxtime(final_tx_time);//设置final包发送时间T5
@@ -990,8 +992,8 @@
 						filter_dist=hex_dist/10;
 						#endif
 						misdist_num[taglist_pos]=0;
-					tagdist_list[taglist_pos] = filter_dist;	
-					his_dist[taglist_pos]=hex_dist;	
+					    tagdist_list[taglist_pos] = filter_dist;	
+					    his_dist[taglist_pos]=hex_dist;	
                         if(hex_dist>0)
 						{
                             g_Tagdist[taglist_pos]=hex_dist/10;	
@@ -999,22 +1001,27 @@
                         //    g_Tagdist[taglist_pos]= 1;
                         }
 				#ifdef USART_SINGLE_OUTPUT
-					usart_send[2] = 1;//正常模式 
-					usart_send[3] = 17;//数据段长度
-					usart_send[4] = frame_seq_nb2;//数据段长度
-					memcpy(&usart_send[5],&tag_id_recv,2);
-					memcpy(&usart_send[7],&dev_id,2);			
-                    if(tagdist_list[taglist_pos]<=0)
-                        tagdist_list[taglist_pos]=0x2ffff;
-					memcpy(&usart_send[9],&tagdist_list[taglist_pos],4);
-					usart_send[13] = battary;
-					usart_send[14] = button;
-					usart_send[15] = firstpath_power;
-					usart_send[16] = rx_power;
-					checksum = Checksum_u16(&usart_send[2],17);
-					memcpy(&usart_send[19],&checksum,2);
-					if(g_com_map[MODBUS_MODE]!=1)
-					UART_PushFrame(usart_send,21);
+//					usart_send[2] = 1;//正常模式 
+//					usart_send[3] = 17;//数据段长度
+//					usart_send[4] = frame_seq_nb2;//数据段长度
+//					memcpy(&usart_send[5],&tag_id_recv,2);
+//					memcpy(&usart_send[7],&dev_id,2);			
+//                    if(tagdist_list[taglist_pos]<=0)
+//                        tagdist_list[taglist_pos]=0x2ffff;
+//					memcpy(&usart_send[9],&tagdist_list[taglist_pos],4);
+//					usart_send[13] = battary;
+//					usart_send[14] = button;
+//					usart_send[15] = firstpath_power;
+//					usart_send[16] = rx_power;
+//					checksum = Checksum_u16(&usart_send[2],17);
+//					memcpy(&usart_send[19],&checksum,2);
+//					if(g_com_map[MODBUS_MODE]!=1)
+//					UART_PushFrame(usart_send,21);
+                   memcpy(&usart_send[0],&dev_id,2);
+                   memcpy(&usart_send[2],&tag_id_recv,2);
+                   memcpy(&usart_send[4],&tagdist_list[taglist_pos],4);
+
+                   UART_PushFrame(usart_send,8);
 				#else		
 					memcpy(&usart_send_anc[4+6*anc_report_num],&tag_id_recv,2);
 					memcpy(&usart_send_anc[6+6*anc_report_num],&tagdist_list[taglist_pos],4);
diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/global_param.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/global_param.c"
index 59673ee..7f82589 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/global_param.c"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/global_param.c"
@@ -46,6 +46,11 @@
         g_com_map[SPEEDFILTER_THRES]=10000;
 		g_com_map[FILTER_COEFFICIENT]=40;
         g_com_map[WAR_JDQ_TIME] = 1;
+        
+        
+        g_com_map[NEARBASE_ID1]=0x12;
+        g_com_map[NEARBASE_ID2]=0x34;
+        
 		//memcpy(&g_com_map[BOARD_TYPE],boardtype,4);	
 		save_com_map_to_flash();
         delay_ms(100);
diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/global_param.h" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/global_param.h"
index 9fc3f23..f71e4d8 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/global_param.h"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/global_param.h"
@@ -32,6 +32,17 @@
 #define   RELAY1_STATE_INDEX	0x10
 #define   RELAY2_STATE_INDEX	0x11
 
+#define      NEARBASE_ID1                    0x11
+#define      NEARBASE_ID2                    0x12
+#define      NEARBASE_ID3                    0x13
+#define      NEARBASE_ID4                    0x14
+#define      NEARBASE_ID5                    0x15
+#define      NEARBASE_ID6                    0x16
+#define      NEARBASE_ID7                    0x17
+#define      NEARBASE_ID8                    0x18
+#define      NEARBASE_ID9                    0x19
+#define      NEARBASE_ID10                   0x1a
+
 #define 	POWER           		0x1B
 #define		IMU_THRES				   	0x1C
 #define   NOMOVESLEEP_TIME    0x1D
diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c"
index 153893e..a9144a5 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c"
@@ -142,7 +142,7 @@
         
 	OUT485_ENABLE;
 	ComMapCheck();	
-	g_com_map[VERSION] = 1<<8|69;
+	g_com_map[VERSION] = 1<<8|76;
     FLASH_Read(FLASH_HARDWARE_FLAG, (uint8_t*)&g_com_map[HARDWAREFLAG_INDEX], 16);
     dist_threshold = (g_com_map[SPEEDFILTER_THRES]*10)/(1000/g_com_map[COM_INTERVAL]);
      if(dist_threshold<300)
@@ -169,15 +169,15 @@
 	
 	if(g_com_map[DEV_ROLE])
 	{
-	printf("标签ID: %d .\r\n",dev_id);
-	printf("通讯间隔: %d ms.\r\n",g_com_map[COM_INTERVAL]);
-	printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
+//	printf("标签ID: %d .\r\n",dev_id);
+//	printf("通讯间隔: %d ms.\r\n",g_com_map[COM_INTERVAL]);
+//	printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
 	}else{
 	
 	anchor_type = dev_id%g_com_map[MAX_REPORT_ANC_NUM];
-	printf("基站ID: %x .\r\n",dev_id);
-	printf("基站类型: %c .\r\n",anchor_type+0x41);
-	printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
+//	printf("基站ID: %x .\r\n",dev_id);
+//	printf("基站类型: %c .\r\n",anchor_type+0x41);
+//	printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
 	}
 	OUT485_DISABLE;
 //	printf("DEVICE PAIRID: %d .\r\n",g_com_map[PAIR_ID]);
@@ -304,35 +304,58 @@
 		{
 				SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
 		}
-        g_com_map[RELAY1_STATE_INDEX] = READ_RELAY1;
-		g_com_map[RELAY2_STATE_INDEX] = READ_RELAY2;
+     //   g_com_map[RELAY1_STATE_INDEX] = READ_RELAY1;
+	//	g_com_map[RELAY2_STATE_INDEX] = READ_RELAY2;
 
 	}
-uint8_t at_cmd[3]={0x2B,0x2B,0x2B};
-uint8_t at_cmd1[2]={0x41,0x54};
-char at_cmd2[20]={"AT+CAN=500,70,NDTF\r\n"};  //AT+CAN?\r\n
+//uint8_t at_cmd[3]={0x2B,0x2B,0x2B};
+//uint8_t at_cmd1[2]={0x41,0x54};
+ 
+char at_cmd2[22]={"AT+CAN=500,0000,NDTF\r\n"};  //AT+CAN?\r\n
 char at_cmd3[9]={"AT+CAN?\r\n"}; 
 char at_cmd4[9]={"AT+EXAT\r\n"}; 
 void send_to_ECAN()
 {
-//  UART_PushFrame(at_cmd,3);
-//    
-//  UART_PushFrame(at_cmd1,2);
-////  delay_ms(1); 
-//  UART_PushFrame((uint8_t*)at_cmd2,20);
-////  delay_ms(1);   
-//  UART_PushFrame((uint8_t*)at_cmd3,9);
-////  delay_ms(1);   
-//  UART_PushFrame((uint8_t*)at_cmd4,9);
- printf("+++");
- delay_ms(20);  
- printf("AT"); 
- delay_ms(20);    
- printf("AT+CAN=500,0,NDTF\r\n"); 
- delay_ms(1);
- printf("AT+CAN?\r\n");
- delay_ms(1);
- printf("AT+EXAT\r\n");    
+//    g_com_map[NEARBASE_ID1]=0x12;
+//    g_com_map[NEARBASE_ID2]=0x34;
+    uint8_t id_high = g_com_map[NEARBASE_ID1];  // 0x12
+    uint8_t id_low = g_com_map[NEARBASE_ID2];   // 0x34
+    
+
+    uint16_t frame_id = (id_high << 8) | id_low;
+    
+    uint32_t decimal_id = frame_id;  // 0x1234 = 4660  
+    
+    if(decimal_id > 0x1FFFFFFF) 
+    {
+    printf("错误:帧ID超出扩展帧范围!");
+    return;
+    }
+    
+    const char *frame_type = (frame_id <= 0x7FF) ? "NDTF" : "EDTF";
+    
+
+    snprintf(at_cmd2, sizeof(at_cmd2), 
+             "AT+CAN=250,%x,%s\r\n", 
+             frame_id, 
+             frame_type);
+
+    printf("+++");
+    delay_ms(500);
+    
+    printf("AT");
+    delay_ms(500);
+    
+
+    printf("%s", at_cmd2);
+    
+    delay_ms(200);
+    
+    printf("%s", at_cmd3);
+    
+    delay_ms(200);
+    
+    printf("%s", at_cmd4);  
 }
     
 int main(void)
@@ -342,7 +365,7 @@
 	//StartUpTest();
 	Program_Init();
 	Dw1000_Init();
-  delay_ms(10);	
+    delay_ms(10);	
 	Dw1000_App_Init();
     /* Loop forever initiating ranging exchanges. */
 	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
@@ -353,7 +376,7 @@
     send_to_ECAN();
 	while(1)
 	{
-      
+
 	g_start_sync_flag=0;
 	if(g_start_send_flag)
 	{

--
Gitblit v1.9.3