From 58bf13b0569714d03afe101a3abb4d2419ec9e30 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期日, 25 二月 2024 19:04:38 +0800
Subject: [PATCH] Merge branch '免布线基站-lora' of http://47.108.70.204:60062/r/XRange_Tag into 免布线基站-lora

---
 Src/application/dw_mbx_anc.c |   52 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/Src/application/dw_mbx_anc.c b/Src/application/dw_mbx_anc.c
index f370f7b..c5968f2 100644
--- a/Src/application/dw_mbx_anc.c
+++ b/Src/application/dw_mbx_anc.c
@@ -74,24 +74,29 @@
 {
 
 }
-#define HEATBEAT_UPDATE_TIME_S 3600  //心跳包一个小时上传一次
-static uint16_t current_count,target_count,heartbeat_count,wg_report_id;
+#define HEATBEAT_UPDATE_TIME_S 10  //心跳包一个小时上传一次
+static uint16_t current_count,target_count,wg_report_id;
+uint16_t heartbeat_count;
 static uint8_t heatbeat_buffer[100];
-void HeartbeatPoll(void)
-    {//心跳包上传 ID 版本号 小组 UWB功率 LORA功率 UWB发送时间 
+void HeartbeatPoll(uint16_t wangguanid)
+{//心跳包上传 ID 版本号 小组 UWB功率 LORA功率 UWB发送时间 
     heartbeat_count+=sync_interval_s;
     if(heartbeat_count>HEATBEAT_UPDATE_TIME_S)
-    {
+    {   uint16_t checksum1 = 0;
         heartbeat_count = 0;
-        heatbeat_buffer[MSG_TYPE_IDX] = LORA_MSGTYPE_ANCHEARTBEAT_POLL;
-        memcpy(&heatbeat_buffer[ANC_ID_IDX],&g_com_map[DEV_ID],2);
-        heatbeat_buffer[ANC_VERSION_IDX] = g_com_map[VERSION];
-        heatbeat_buffer[ANC_GROUPID_IDX] = g_com_map[GROUP_ID];
-        heatbeat_buffer[ANC_UWBPOWER_IDX] = g_com_map[POWER];
-        heatbeat_buffer[ANC_LORAPOWER_IDX] = g_com_map[LORA_POWER];
-        heatbeat_buffer[ANC_UWBPOLLTIME_IDX] = g_com_map[UWBPOLLTIME_MS_IDX];
-        Radio.Send(heatbeat_buffer, 14);
-        delay_us(1700);
+        heatbeat_buffer[MSG_TYPE_IDX] = LORA_MSGTYPE_ANC_HEARTBEAT;
+        heatbeat_buffer[MSG_LENGTH] = 17;
+        memcpy(&heatbeat_buffer[SOURCE_ID_IDX],&g_com_map[DEV_ID],2);
+        memcpy(&heatbeat_buffer[DEST_ID_IDX],&wangguanid,2);
+        memcpy(&heatbeat_buffer[ANC_HB_VERSION_IDX],&g_com_map[VERSION],2);
+        memcpy(&heatbeat_buffer[ANC_HB_UWBPOLLTIME_IDX],&g_com_map[UWBPOLLTIME_MS_IDX],2);
+        heatbeat_buffer[ANC_HB_UWBPOWER_IDX] = g_com_map[POWER];
+        heatbeat_buffer[ANC_HB_LORAPOWER_IDX] = g_com_map[LORA_POWER];
+        heatbeat_buffer[ANC_HB_BATTARY_IDX] = bat_percent;
+        checksum1=Checksum_u16(heatbeat_buffer,17);
+        memcpy(&heatbeat_buffer[17],&checksum1,2);
+        Radio.Send(heatbeat_buffer, 19);
+        Delay_Ms(60);
     }
 }
 static uint8_t lora_sendbuffer[200];
@@ -100,7 +105,7 @@
 void LoraSendComMap(uint8_t cmd)
 {
 	uint16_t checksum = 0;
-    data_length = 0x28;
+    data_length = 0x50;
 	lora_sendbuffer[MSG_TYPE_IDX] = LORA_MSGTYPE_READPARARESP;
 	lora_sendbuffer[MSG_LENGTH] = data_length+9;
     memcpy(&lora_sendbuffer[SOURCE_ID_IDX],&g_com_map[DEV_ID],2);
@@ -108,10 +113,10 @@
 	lora_sendbuffer[RP_CMD_IDX] = cmd;
 	lora_sendbuffer[RP_INDEX_IDX] = 2;
 	lora_sendbuffer[RP_LEN_IDX] = data_length;
-	memcpy(&lora_sendbuffer[7], &g_com_map[1], data_length);
-	checksum = Checksum_u16(lora_sendbuffer,9+data_length);
-	memcpy(&lora_sendbuffer[9+data_length],&checksum,2);
-    Radio.Send(lora_sendbuffer,data_length+11);
+	memcpy(&lora_sendbuffer[9], &g_com_map[1], data_length);
+	checksum = Checksum_u16(lora_sendbuffer,11+data_length);
+	memcpy(&lora_sendbuffer[11+data_length],&checksum,2);
+    Radio.Send(lora_sendbuffer,data_length+13);
     Delay_Ms(60);
 }
 void LoraRspWriteCommap(uint8_t index)
@@ -161,11 +166,12 @@
        }
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
        if(flag_sync_success)  //同步成功
-       {
-           HeartbeatPoll();
+       {   uint16_t wangguanid;
+           lora_recbuffer_len = GetLoraBufferAndLen(lora_recbuffer,&rec_sync_count);//获取LORA收到的数据和长度
+           memcpy(&wangguanid,&lora_recbuffer[SOURCE_ID_IDX],2);
+           HeartbeatPoll(wangguanid);
            LED_LG_ON;
            sync_lost_count = 0;
-           lora_recbuffer_len = GetLoraBufferAndLen(lora_recbuffer,&rec_sync_count);//获取LORA收到的数据和长度
            if(lora_recbuffer[MSG_TYPE_IDX]==LORA_MSGTYPE_SYNC)
            { uint16_t wg_sendtime_100us,pwanc_value;
                uint8_t pwanc_index;
@@ -199,7 +205,7 @@
                         save_com_map_to_flash();
                         flag_writepara_needreset = 1;
                         break;
-                    case SUBMSG_UPDATE_ANC:                       
+                    case SUBMSG_UPDATE_ANC:                
                         LoraUp_Poll();
                         break;
                 }

--
Gitblit v1.9.3