From d192e3e40f25ac9c001bbe963ac91021ea9acce9 Mon Sep 17 00:00:00 2001 From: OPTOC <9159397+optoc@user.noreply.gitee.com> Date: Mon, 27 Oct 2025 18:59:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9E=9A=E4=B8=BE=E7=B1=BB?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=8F=91=E9=80=81?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=B8=A7=E7=BB=99app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/drivers/sertrf/protocol/resend_protl.h | 2 +- app/drivers/sertrf/sertrf.c | 10 +++++++++- app/drivers/sertrf/sertrf.h | 17 ++++++++++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/drivers/sertrf/protocol/resend_protl.h b/app/drivers/sertrf/protocol/resend_protl.h index 871882b..c4de39f 100644 --- a/app/drivers/sertrf/protocol/resend_protl.h +++ b/app/drivers/sertrf/protocol/resend_protl.h @@ -34,7 +34,7 @@ typedef enum RESEND_CMD_DATA_ACK = 0x06, - RESEND_CMD_MODE_STATUS = 0x07, + RESEND_CMD_ERROR_CODE = 0x07, RESEND_CMD_OTA_GET_PARAM = 0x010, RESEND_CMD_OTA_START = 0x011, diff --git a/app/drivers/sertrf/sertrf.c b/app/drivers/sertrf/sertrf.c index 98e0958..744477b 100644 --- a/app/drivers/sertrf/sertrf.c +++ b/app/drivers/sertrf/sertrf.c @@ -211,7 +211,8 @@ void task_thread(void* arg) static size_t end_time = 0; if(start_time - end_time > 2000) { - switch(get_protocol_status()) + sertrf.fc_protocol_status = get_protocol_status(); + switch(sertrf.fc_protocol_status) { case PROTOCOL_STATUS_OK: // rgb_color_change(1, sertrf.device.last_color); @@ -664,4 +665,11 @@ int stmisp_recv(void* data, uint16_t len, int timeout) int stmisp_get_length(void) { return embedded_device_get_rx_length(&sertrf.device); +} + +int app_send_error_code(uint8_t error_code) +{ + sertrf.mode_status.sertrf_error_code = error_code; + + return resend_send_data(&sertrf.resend_device, RESEND_CMD_ERROR_CODE, &sertrf.mode_status.sertrf_error_code, sizeof(sertrf_mode_status_t), 1000); } \ No newline at end of file diff --git a/app/drivers/sertrf/sertrf.h b/app/drivers/sertrf/sertrf.h index 7d75d4f..27dc05c 100644 --- a/app/drivers/sertrf/sertrf.h +++ b/app/drivers/sertrf/sertrf.h @@ -21,10 +21,22 @@ typedef enum DATA_HANDLE_ISP_DATA, DATA_HANDLE_ISP_DATA_END }data_handle_e; -typedef struct +typedef enum +{ + SERTRF_ERROR_NONE = 0, + SERTRF_ERROR_OTA_INIT = 10, // ota初始化失败 + SERTRF_ERROR_OTA_DATA, // ota数据传输异常 + SERTRF_ERROR_OTA_END, // ota 结束异常 + + SERTRF_ERROR_FC_ISP_UART_TYPE = 30, // 飞控ISP 无法识别其协议 + SERTRF_ERROR_FC_ISP_UART_DATA, // 飞控ISP 无法收到其数据 + SERTRF_ERROR_FC_ISP_SYNC, // 飞控ISP 无法与ISP建立连接,需判断BOOT键是否有效 +}sertrf_error_code_e; +typedef struct __attribute__((packed)) { data_handle_e task_state; + uint16_t sertrf_error_code; }sertrf_mode_status_t; typedef struct { @@ -55,6 +67,9 @@ typedef struct uint8_t efuse_mac[6]; uint8_t efuse_mac_encrypt[6]; + // 记录错误信息 + protocol_status_e fc_protocol_status; //飞控连接端的协议状态 + }sertrf_t; typedef struct __attribute__((packed))