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/main.c |   87 +++++++++++++++++++++++++++----------------
 1 files changed, 55 insertions(+), 32 deletions(-)

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