diff --git a/app/drivers/sertrf/protocol/p_protocol.c b/app/drivers/sertrf/protocol/p_protocol.c index 8a9996f..ec03207 100644 --- a/app/drivers/sertrf/protocol/p_protocol.c +++ b/app/drivers/sertrf/protocol/p_protocol.c @@ -146,7 +146,7 @@ protocol_status_e get_protocol_status(void) protocol.protocol_status = PROTOCOL_STATUS_OK; // 先OTA升级、未知协议、未收到飞控数据 - if(protocol.message_status == MESSAGE_OTA) + if(protocol.message_status == MESSAGE_OTA || protocol.message_status == MESSAGE_FC_ISP) { protocol.protocol_status = PROTOCOL_STATUS_IN_OTA; } diff --git a/app/drivers/sertrf/sertrf.c b/app/drivers/sertrf/sertrf.c index 5b72482..5d03d37 100644 --- a/app/drivers/sertrf/sertrf.c +++ b/app/drivers/sertrf/sertrf.c @@ -502,6 +502,7 @@ void resend_user_parse(void *resend_device) while (sertrf.mode_status.task_state != DATA_HANDLE_IDLE){ os_thread_sleep(10);} otau_end(&sertrf.otau); + protocol_set_message_status(MESSAGE_IDLE); resend_send_cmd(resend_device, RESEND_CMD_ACK, 0); os_thread_sleep(2); esp_restart(); @@ -574,6 +575,7 @@ void resend_user_parse(void *resend_device) resend_send_cmd(resend_device, RESEND_CMD_ACK, 0); break; case RESEND_CMD_FC_ISP_DATA: + protocol_set_message_status(MESSAGE_FC_ISP); // 使用环形buff if(rb_size(&sertrf.data_handle_buffer) + sertrf.resend_device.rx_frame.len <= DATA_HANDLE_BUFFER_SIZE) { @@ -606,6 +608,7 @@ void resend_user_parse(void *resend_device) // 将串口切换为无校验模式 uart_set_parity_switch(sertrf.device.embedded_device, 0x00); SYS_LOG_INF("RESEND_CMD_FC_ISP_END2"); + protocol_set_message_status(MESSAGE_IDLE); resend_send_cmd(resend_device, RESEND_CMD_ACK, 0); esp_restart(); break;