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