From 6cee0c36c3598199b83d1c5204401e461c2e6355 Mon Sep 17 00:00:00 2001 From: Wuchuyuan <1917507415@qq.com> Date: Sat, 12 Sep 2026 10:21:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=8A=20business=20=E5=B1=82=E6=94=B9?= =?UTF-8?q?=E5=90=8D=E4=B8=BA=20logic=20=E5=B1=82=EF=BC=8C=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=E6=94=B9=E4=B8=BA=20mcu=5Flogic=EF=BC=8C=E9=81=BF?= =?UTF-8?q?=E5=85=8D=20business=20=E8=AF=AD=E4=B9=89=E4=B8=8D=E6=B8=85?= =?UTF-8?q?=E3=80=82=20=E7=9B=AE=E5=BD=95=20business/=20=E2=86=92=20logic/?= =?UTF-8?q?=EF=BC=8Cmcu=5Fbusiness=20=E2=86=92=20mcu=5Flogic=EF=BC=9BMakef?= =?UTF-8?q?ile=E3=80=81=E5=B7=A5=E7=A8=8B=E6=96=87=E4=BB=B6=E5=92=8C?= =?UTF-8?q?=E6=89=93=E5=8C=85=E8=84=9A=E6=9C=AC=E9=87=8C=E7=9A=84=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E4=B8=80=E5=B9=B6=E6=94=B9=E6=8E=89=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JBao_JL7016_MOD_FW/AC701N.cbp | 28 ++++---- JBao_JL7016_MOD_FW/Makefile | 18 ++--- .../apps/usr_le_code/usr_le_product.h | 6 +- .../{business => logic}/mcu_identity.c | 0 .../{business => logic}/mcu_identity.h | 0 .../{business => logic}/mcu_link_status.c | 0 .../{business => logic}/mcu_link_status.h | 0 .../mcu_business.c => logic/mcu_logic.c} | 59 +++++++-------- .../mcu_business.h => logic/mcu_logic.h} | 69 +++++++++--------- .../{business => logic}/mcu_mgmt.c | 0 .../{business => logic}/mcu_mgmt.h | 0 .../{business => logic}/mcu_ota.c | 0 .../{business => logic}/mcu_ota.h | 0 .../{business => logic}/mcu_pairing.c | 2 +- .../{business => logic}/mcu_pairing.h | 0 .../{business => logic}/mcu_time.c | 0 .../{business => logic}/mcu_time.h | 0 .../{business => logic}/mcu_version.c | 0 .../{business => logic}/mcu_version.h | 0 .../apps/usr_mcu_bridge/mcu_bridge.c | 21 +++--- .../apps/usr_mcu_bridge/mcu_bridge.h | 29 ++++---- .../usr_mcu_bridge/protocol/mcu_protocol.c | 72 +++++++++---------- .../usr_mcu_bridge/protocol/mcu_protocol.h | 13 ++-- tools/pack_firmware.ps1 | 2 +- 24 files changed, 161 insertions(+), 158 deletions(-) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_identity.c (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_identity.h (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_link_status.c (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_link_status.h (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business/mcu_business.c => logic/mcu_logic.c} (75%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business/mcu_business.h => logic/mcu_logic.h} (67%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_mgmt.c (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_mgmt.h (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_ota.c (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_ota.h (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_pairing.c (97%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_pairing.h (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_time.c (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_time.h (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_version.c (100%) rename JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/{business => logic}/mcu_version.h (100%) diff --git a/JBao_JL7016_MOD_FW/AC701N.cbp b/JBao_JL7016_MOD_FW/AC701N.cbp index a09401d..3dd8d59 100644 --- a/JBao_JL7016_MOD_FW/AC701N.cbp +++ b/JBao_JL7016_MOD_FW/AC701N.cbp @@ -176,7 +176,7 @@ - + @@ -787,41 +787,41 @@ - + - - + + - - + + - - + + - + - + - + - - + + - + diff --git a/JBao_JL7016_MOD_FW/Makefile b/JBao_JL7016_MOD_FW/Makefile index 7236058..b810211 100644 --- a/JBao_JL7016_MOD_FW/Makefile +++ b/JBao_JL7016_MOD_FW/Makefile @@ -262,7 +262,7 @@ INCLUDES := \ -Iapps/usr_le_code/thirdpart/mjson \ -Iapps/usr_mcu_bridge \ -Iapps/usr_mcu_bridge/protocol \ - -Iapps/usr_mcu_bridge/business \ + -Iapps/usr_mcu_bridge/logic \ -Iapps/usr_ota \ -Iapps/usr_periph \ -I$(SYS_INC_DIR) \ @@ -400,16 +400,16 @@ c_SRC_FILES := \ apps/usr_le_code/thirdpart/mjson/mjson.c \ apps/usr_le_code/usr_le_adv.c \ apps/usr_le_code/usr_le_recieve.c \ - apps/usr_mcu_bridge/business/mcu_business.c \ - apps/usr_mcu_bridge/business/mcu_identity.c \ - apps/usr_mcu_bridge/business/mcu_link_status.c \ - apps/usr_mcu_bridge/business/mcu_mgmt.c \ - apps/usr_mcu_bridge/business/mcu_ota.c \ + apps/usr_mcu_bridge/logic/mcu_logic.c \ + apps/usr_mcu_bridge/logic/mcu_identity.c \ + apps/usr_mcu_bridge/logic/mcu_link_status.c \ + apps/usr_mcu_bridge/logic/mcu_mgmt.c \ + apps/usr_mcu_bridge/logic/mcu_ota.c \ apps/usr_ota/usr_ota.c \ - apps/usr_mcu_bridge/business/mcu_pairing.c \ - apps/usr_mcu_bridge/business/mcu_time.c \ + apps/usr_mcu_bridge/logic/mcu_pairing.c \ + apps/usr_mcu_bridge/logic/mcu_time.c \ apps/usr_periph/usr_rtc.c \ - apps/usr_mcu_bridge/business/mcu_version.c \ + apps/usr_mcu_bridge/logic/mcu_version.c \ apps/usr_mcu_bridge/mcu_bridge.c \ apps/usr_mcu_bridge/protocol/mcu_frame.c \ apps/usr_mcu_bridge/protocol/mcu_protocol.c \ diff --git a/JBao_JL7016_MOD_FW/apps/usr_le_code/usr_le_product.h b/JBao_JL7016_MOD_FW/apps/usr_le_code/usr_le_product.h index 11382d3..d1b543b 100644 --- a/JBao_JL7016_MOD_FW/apps/usr_le_code/usr_le_product.h +++ b/JBao_JL7016_MOD_FW/apps/usr_le_code/usr_le_product.h @@ -8,7 +8,7 @@ * - V1.0.0, 2026.08.03, cyWu, 首次发布 * - V1.1.0, 2026.08.06, cyWu, 改为非 const,由 mcu_bridge 从 MCU 0x02 写入 * - V1.2.0, 2026.08.12, cyWu, 改由 mcu_link 从 MCU 0x02 写入 - * - V1.3.0, 2026.08.12, cyWu, 改由 business/mcu_identity 从 MCU 0x02 写入 + * - V1.3.0, 2026.08.12, cyWu, 改由 logic/mcu_identity 从 MCU 0x02 写入 ******************************************************************************/ #ifndef __USR_LE_PRODUCT_H__ @@ -32,13 +32,13 @@ extern "C" { /** * @brief 产品类别码,对应 BLE 广播 prodcode(固定 4 字节 ASCII) - * @note 由 business/mcu_identity 从 MCU 身份应答取前 4 字节写入 + * @note 由 logic/mcu_identity 从 MCU 身份应答取前 4 字节写入 */ extern uint8_t g_usr_le_prodcode[USR_LE_PRODCODE_LEN]; /** * @brief 平台产品码,对应 BLE 广播 pcode(固定 6 字节 ASCII) - * @note 由 business/mcu_identity 从 MCU 身份应答取前 6 字节写入 + * @note 由 logic/mcu_identity 从 MCU 身份应答取前 6 字节写入 */ extern uint8_t g_usr_le_pcode[USR_LE_PCODE_LEN]; diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_identity.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_identity.c similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_identity.c rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_identity.c diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_identity.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_identity.h similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_identity.h rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_identity.h diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_link_status.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_link_status.c similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_link_status.c rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_link_status.c diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_link_status.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_link_status.h similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_link_status.h rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_link_status.h diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_business.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_logic.c similarity index 75% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_business.c rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_logic.c index 1f7f4a7..b783a57 100644 --- a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_business.c +++ b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_logic.c @@ -1,19 +1,20 @@ /****************************************************************************** - * @file mcu_business.c - * @brief 业务门面实现 + * @file mcu_logic.c + * @brief 逻辑层入口实现:只转发到各功能模块 * @author cyWu <1917507415@qq.com> * @date 2026.09.11 - * @version V1.3.0 + * @version V1.4.0 * @history - * - V1.0.0, 2026.08.12, cyWu, 取代原 mcu_link,编排三个业务子模块 + * - V1.0.0, 2026.08.12, cyWu, 取代原 mcu_link,编排三个功能模块 * - V1.1.0, 2026.08.13, cyWu, 编排 P1 管理/对时/版本 * - V1.2.0, 2026.08.15, cyWu, 编排 P2 OTA;版本周期在 OTA 时让路 * - V1.3.0, 2026.09.11, cyWu, APP 0x40 查询版本转 mcu_version + * - V1.4.0, 2026.09.11, cyWu, 由 mcu_business 更名为 mcu_logic ******************************************************************************/ #include "system/includes.h" #include "app_main.h" -#include "mcu_business.h" +#include "mcu_logic.h" #include "mcu_cmd.h" #include "mcu_identity.h" #include "mcu_link_status.h" @@ -24,17 +25,17 @@ #include "mcu_ota.h" #define LOG_TAG_CONST APP -#define LOG_TAG "[MCU_BIZ]" +#define LOG_TAG "[MCU_LOGIC]" #define LOG_ERROR_ENABLE #define LOG_INFO_ENABLE #include "debug.h" /** - * @brief 初始化业务层 + * @brief 初始化逻辑层 * @note 上电不强制配网;广播由 mcu_identity_on_ack 在身份就绪后按 * 配对状态触发(usr_ble_adv_init 内部决策) */ -void mcu_business_init(void) +void mcu_logic_init(void) { mcu_identity_init(); mcu_pairing_init(); @@ -51,7 +52,7 @@ void mcu_business_init(void) /** * @brief 周期处理 */ -void mcu_business_periodic(void) +void mcu_logic_periodic(void) { mcu_identity_periodic(); mcu_link_status_periodic(); @@ -69,7 +70,7 @@ void mcu_business_periodic(void) * @brief 是否身份就绪 * @return 1/0 */ -uint8_t mcu_business_is_identity_ready(void) +uint8_t mcu_logic_is_identity_ready(void) { return mcu_identity_is_ready(); } @@ -78,7 +79,7 @@ uint8_t mcu_business_is_identity_ready(void) * @brief 获取工作状态 * @return work_status */ -uint8_t mcu_business_get_work_status(void) +uint8_t mcu_logic_get_work_status(void) { return mcu_link_status_get(); } @@ -88,7 +89,7 @@ uint8_t mcu_business_get_work_status(void) * @param frame 完整帧 * @param len 长度 */ -void mcu_business_on_identity_ack(const uint8_t *frame, uint16_t len) +void mcu_logic_on_identity_ack(const uint8_t *frame, uint16_t len) { mcu_identity_on_ack(frame, len); } @@ -98,7 +99,7 @@ void mcu_business_on_identity_ack(const uint8_t *frame, uint16_t len) * @param mode 模式 * @param timeout_s 超时秒 */ -void mcu_business_on_pair_cfg(uint8_t mode, uint16_t timeout_s) +void mcu_logic_on_pair_cfg(uint8_t mode, uint16_t timeout_s) { mcu_pairing_start(mode, timeout_s); } @@ -106,7 +107,7 @@ void mcu_business_on_pair_cfg(uint8_t mode, uint16_t timeout_s) /** * @brief 配网成功 */ -void mcu_business_on_paired(void) +void mcu_logic_on_paired(void) { usr_var.usr_goto_pair = 0; mcu_pairing_stop(); @@ -121,7 +122,7 @@ void mcu_business_on_paired(void) * @note 若正处于配网流程(phase==PAIRING),保持不变; * 否则(例如单纯清空配对表)回到未配网空闲 */ -void mcu_business_on_pair_cleared(void) +void mcu_logic_on_pair_cleared(void) { /* 正在走 0x10 配网:清配对表是配网流程的一部分,过程态保持 PAIRING。 * 其它情况(单纯清空配对)才回到未配网空闲。 */ @@ -134,7 +135,7 @@ void mcu_business_on_pair_cleared(void) /** * @brief 恢复出厂 */ -void mcu_business_on_factory_reset(void) +void mcu_logic_on_factory_reset(void) { mcu_mgmt_on_factory_reset(); } @@ -142,7 +143,7 @@ void mcu_business_on_factory_reset(void) /** * @brief 模组重启 */ -void mcu_business_on_mod_reboot(void) +void mcu_logic_on_mod_reboot(void) { mcu_mgmt_on_mod_reboot(); } @@ -152,7 +153,7 @@ void mcu_business_on_mod_reboot(void) * @param frame 完整帧 * @param len 长度 */ -void mcu_business_on_mcu_reboot_ack(const uint8_t *frame, uint16_t len) +void mcu_logic_on_mcu_reboot_ack(const uint8_t *frame, uint16_t len) { mcu_mgmt_on_mcu_reboot_ack(frame, len); } @@ -162,7 +163,7 @@ void mcu_business_on_mcu_reboot_ack(const uint8_t *frame, uint16_t len) * @param payload 输出 * @param plen 长度 */ -void mcu_business_build_time_ack(uint8_t *payload, uint16_t *plen) +void mcu_logic_build_time_ack(uint8_t *payload, uint16_t *plen) { mcu_time_build_ack(payload, plen); } @@ -172,7 +173,7 @@ void mcu_business_build_time_ack(uint8_t *payload, uint16_t *plen) * @param unix_s UTC Unix 时间戳(秒) * @param gmtoff_s 时区偏移 */ -void mcu_business_on_network_time(uint64_t unix_s, int32_t gmtoff_s) +void mcu_logic_on_network_time(uint64_t unix_s, int32_t gmtoff_s) { mcu_time_set_from_gateway(unix_s, gmtoff_s); } @@ -182,7 +183,7 @@ void mcu_business_on_network_time(uint64_t unix_s, int32_t gmtoff_s) * @param frame 完整帧 * @param len 长度 */ -void mcu_business_on_mcu_info_ack(const uint8_t *frame, uint16_t len) +void mcu_logic_on_mcu_info_ack(const uint8_t *frame, uint16_t len) { mcu_version_on_mcu_info_ack(frame, len); } @@ -191,7 +192,7 @@ void mcu_business_on_mcu_info_ack(const uint8_t *frame, uint16_t len) * @brief APP 0x40 * @param sn 序列号 */ -void mcu_business_on_app_get_mcu_info(uint8_t sn) +void mcu_logic_on_app_get_mcu_info(uint8_t sn) { mcu_version_on_app_query(sn); } @@ -201,7 +202,7 @@ void mcu_business_on_app_get_mcu_info(uint8_t sn) * @param success 成功 * @param mcu_report_consumed MCU 0x07 已消费 */ -void mcu_business_on_gateway_ack(uint8_t success, uint8_t mcu_report_consumed) +void mcu_logic_on_gateway_ack(uint8_t success, uint8_t mcu_report_consumed) { mcu_version_on_gateway_ack(success, mcu_report_consumed); } @@ -209,7 +210,7 @@ void mcu_business_on_gateway_ack(uint8_t success, uint8_t mcu_report_consumed) /** * @brief APP OTA 帧 */ -void mcu_business_on_app_ota_frame(const uint8_t *frame, uint16_t len) +void mcu_logic_on_app_ota_frame(const uint8_t *frame, uint16_t len) { mcu_ota_on_app_frame(frame, len); } @@ -217,7 +218,7 @@ void mcu_business_on_app_ota_frame(const uint8_t *frame, uint16_t len) /** * @brief MCU OTA 帧 */ -void mcu_business_on_mcu_ota_frame(const uint8_t *frame, uint16_t len) +void mcu_logic_on_mcu_ota_frame(const uint8_t *frame, uint16_t len) { mcu_ota_on_uart_frame(frame, len); } @@ -225,7 +226,7 @@ void mcu_business_on_mcu_ota_frame(const uint8_t *frame, uint16_t len) /** * @brief 0x15 */ -void mcu_business_on_ota_ws_ack(void) +void mcu_logic_on_ota_ws_ack(void) { mcu_ota_on_work_status_ack(); } @@ -233,7 +234,7 @@ void mcu_business_on_ota_ws_ack(void) /** * @brief BLE 断连 */ -void mcu_business_on_ble_disconnected(void) +void mcu_logic_on_ble_disconnected(void) { mcu_ota_on_disconnect(); } @@ -242,7 +243,7 @@ void mcu_business_on_ble_disconnected(void) * @brief OTA 是否进行中 * @return 1/0 */ -uint8_t mcu_business_ota_is_active(void) +uint8_t mcu_logic_ota_is_active(void) { return mcu_ota_is_active(); } @@ -251,7 +252,7 @@ uint8_t mcu_business_ota_is_active(void) * @brief 是否模组 OTA * @return 1/0 */ -uint8_t mcu_business_ota_is_ble_active(void) +uint8_t mcu_logic_ota_is_ble_active(void) { return mcu_ota_is_ble_active(); } diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_business.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_logic.h similarity index 67% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_business.h rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_logic.h index 0434cb0..7a343db 100644 --- a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_business.h +++ b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_logic.h @@ -1,25 +1,26 @@ /****************************************************************************** - * @file mcu_business.h - * @brief 业务门面:协调身份 / 配网 / 连接 / 管理 / 对时 / 版本 + * @file mcu_logic.h + * @brief 逻辑层入口:把协议层来的事分给身份 / 配网 / 版本 / OTA 等模块 * @author cyWu <1917507415@qq.com> * @date 2026.09.11 - * @version V1.3.0 + * @version V1.4.0 * @history * - V1.0.0, 2026.08.12, cyWu, 取代原 mcu_link,供协议层(mcu_protocol) * 单点调用;协议层不直接依赖 identity/pairing/link_status 三个子模块 * - V1.1.0, 2026.08.13, cyWu, 接入 P1 管理/对时/版本子模块 - * - V1.2.0, 2026.08.15, cyWu, 接入 P2 OTA;协议层只经本门面访问 OTA - * - V1.3.0, 2026.09.11, cyWu, APP 主动 0x40 查询版本走门面,不转 UART + * - V1.2.0, 2026.08.15, cyWu, 接入 P2 OTA;协议层只经本入口访问 OTA + * - V1.3.0, 2026.09.11, cyWu, APP 主动 0x40 查询版本走本入口,不转 UART + * - V1.4.0, 2026.09.11, cyWu, 由 mcu_business 更名为 mcu_logic ******************************************************************************/ -#ifndef __MCU_BUSINESS_H__ -#define __MCU_BUSINESS_H__ +#ifndef __MCU_LOGIC_H__ +#define __MCU_LOGIC_H__ #include /*============================================================================*/ /* 说明 */ -/* 本模块只做业务编排,不含具体状态;具体逻辑见: */ +/* 本文件只做转发,不存状态。具体功能见: */ /* mcu_identity.c —— 身份获取 */ /* mcu_pairing.c —— 配网请求 / 超时 */ /* mcu_link_status.c —— 连接状态位图(Bit0/1/2) */ @@ -31,74 +32,74 @@ /*============================================================================*/ /** - * @brief 初始化业务层 + * @brief 初始化逻辑层各功能模块 */ -void mcu_business_init(void); +void mcu_logic_init(void); /** - * @brief 周期处理:依次驱动各子业务 + * @brief 周期处理:依次驱动各功能模块 */ -void mcu_business_periodic(void); +void mcu_logic_periodic(void); /** * @brief 是否已从 MCU 获取到设备身份 * @return 1=已就绪,0=未就绪 */ -uint8_t mcu_business_is_identity_ready(void); +uint8_t mcu_logic_is_identity_ready(void); /** * @brief 获取当前工作状态字节(命令 0x14 载荷) * @return 工作状态 bitmap */ -uint8_t mcu_business_get_work_status(void); +uint8_t mcu_logic_get_work_status(void); /** * @brief 处理 0x02 身份应答 * @param frame 完整帧 * @param len 长度 */ -void mcu_business_on_identity_ack(const uint8_t *frame, uint16_t len); +void mcu_logic_on_identity_ack(const uint8_t *frame, uint16_t len); /** * @brief 处理已通过协议校验的 0x10 配网请求 * @param mode 1 或 2 * @param timeout_s 超时秒数,0 表示不超时 */ -void mcu_business_on_pair_cfg(uint8_t mode, uint16_t timeout_s); +void mcu_logic_on_pair_cfg(uint8_t mode, uint16_t timeout_s); /** * @brief 配网成功(AUTHSETUP 写对) */ -void mcu_business_on_paired(void); +void mcu_logic_on_paired(void); /** * @brief 配对信息被清除 */ -void mcu_business_on_pair_cleared(void); +void mcu_logic_on_pair_cleared(void); /** * @brief MCU 请求恢复出厂(协议层已 ACK) */ -void mcu_business_on_factory_reset(void); +void mcu_logic_on_factory_reset(void); /** * @brief MCU 请求模组重启(协议层已 ACK) */ -void mcu_business_on_mod_reboot(void); +void mcu_logic_on_mod_reboot(void); /** * @brief 处理 UART 0x1B * @param frame 完整帧 * @param len 长度 */ -void mcu_business_on_mcu_reboot_ack(const uint8_t *frame, uint16_t len); +void mcu_logic_on_mcu_reboot_ack(const uint8_t *frame, uint16_t len); /** * @brief 组 0x1D 载荷 * @param payload 输出缓冲 * @param plen 输出长度 */ -void mcu_business_build_time_ack(uint8_t *payload, uint16_t *plen); +void mcu_logic_build_time_ack(uint8_t *payload, uint16_t *plen); /** * @brief 写入网关网络时间 @@ -106,30 +107,30 @@ void mcu_business_build_time_ack(uint8_t *payload, uint16_t *plen); * @param gmtoff_s 时区偏移秒 * @note 网关从子设备连上开始计时,每 12 小时同步一次 */ -void mcu_business_on_network_time(uint64_t unix_s, int32_t gmtoff_s); +void mcu_logic_on_network_time(uint64_t unix_s, int32_t gmtoff_s); /** * @brief 处理 UART 0x41(仅本地解析) * @param frame 完整帧 * @param len 长度 */ -void mcu_business_on_mcu_info_ack(const uint8_t *frame, uint16_t len); +void mcu_logic_on_mcu_info_ack(const uint8_t *frame, uint16_t len); /** * @brief APP 主动 0x40 查询版本(不转 UART) * @param sn APP 请求序列号 */ -void mcu_business_on_app_get_mcu_info(uint8_t sn); +void mcu_logic_on_app_get_mcu_info(uint8_t sn); /** * @brief 网关 REPORTCMD_V2 应答 * @param success 1=成功 * @param mcu_report_consumed 1=已按 MCU 0x07 回了 0x08 */ -void mcu_business_on_gateway_ack(uint8_t success, uint8_t mcu_report_consumed); +void mcu_logic_on_gateway_ack(uint8_t success, uint8_t mcu_report_consumed); /*============================================================================*/ -/* OTA(协议层只调门面,不直接 include mcu_ota.h) */ +/* OTA(协议层只调本入口,不直接 include mcu_ota.h) */ /*============================================================================*/ /** @@ -137,35 +138,35 @@ void mcu_business_on_gateway_ack(uint8_t success, uint8_t mcu_report_consumed); * @param frame 完整 55AA * @param len 长度 */ -void mcu_business_on_app_ota_frame(const uint8_t *frame, uint16_t len); +void mcu_logic_on_app_ota_frame(const uint8_t *frame, uint16_t len); /** * @brief MCU 上报 OTA 帧(0x31/0x33/0x34/0x37/0x38) * @param frame 完整 55AA * @param len 长度 */ -void mcu_business_on_mcu_ota_frame(const uint8_t *frame, uint16_t len); +void mcu_logic_on_mcu_ota_frame(const uint8_t *frame, uint16_t len); /** * @brief UART 0x15 到达(BLE OTA 置 Bit6 后) */ -void mcu_business_on_ota_ws_ack(void); +void mcu_logic_on_ota_ws_ack(void); /** * @brief BLE 断连:中止 OTA 会话(不切 bank、不复位) */ -void mcu_business_on_ble_disconnected(void); +void mcu_logic_on_ble_disconnected(void); /** * @brief 是否有 OTA 会话(心跳/0x14/版本上报据此让路) * @return 1=是 */ -uint8_t mcu_business_ota_is_active(void); +uint8_t mcu_logic_ota_is_active(void); /** * @brief 是否模组(BLE)OTA(据此丢弃 MCU 0x07) * @return 1=是 */ -uint8_t mcu_business_ota_is_ble_active(void); +uint8_t mcu_logic_ota_is_ble_active(void); -#endif /* __MCU_BUSINESS_H__ */ +#endif /* __MCU_LOGIC_H__ */ diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_mgmt.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_mgmt.c similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_mgmt.c rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_mgmt.c diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_mgmt.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_mgmt.h similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_mgmt.h rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_mgmt.h diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_ota.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_ota.c similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_ota.c rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_ota.c diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_ota.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_ota.h similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_ota.h rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_ota.h diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_pairing.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_pairing.c similarity index 97% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_pairing.c rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_pairing.c index d4ff011..408e72a 100644 --- a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_pairing.c +++ b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_pairing.c @@ -91,7 +91,7 @@ void mcu_pairing_periodic(void) if (s_pairing.timeout_s == 0) { return; } - /* 已经配上:切态由 mcu_business_on_paired 做,这里别抢 */ + /* 已经配上:切态由 mcu_logic_on_paired 做,这里别抢 */ if (usr_get_pair_flag()) { return; } diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_pairing.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_pairing.h similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_pairing.h rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_pairing.h diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_time.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_time.c similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_time.c rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_time.c diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_time.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_time.h similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_time.h rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_time.h diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_version.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_version.c similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_version.c rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_version.c diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_version.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_version.h similarity index 100% rename from JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/business/mcu_version.h rename to JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/logic/mcu_version.h diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/mcu_bridge.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/mcu_bridge.c index 065eb5f..5d6e375 100644 --- a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/mcu_bridge.c +++ b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/mcu_bridge.c @@ -2,8 +2,8 @@ * @file mcu_bridge.c * @brief BLE+MCU 接入模块对外总入口实现(组合门面,仅转调) * @author cyWu <1917507415@qq.com> - * @date 2026.08.13 - * @version V2.1.0 + * @date 2026.09.11 + * @version V2.3.0 * @history * - V1.0.0, 2026.08.06, cyWu, 首次发布 * - V1.1.0, 2026.08.06, cyWu, 改为事件队列 + 独立任务驱动 @@ -13,11 +13,12 @@ * - V2.0.0, 2026.08.12, cyWu, 拆分为 protocol/ + business/ 分层, * 本文件收敛为纯组合门面,不再持有任何状态 * - V2.1.0, 2026.08.13, cyWu, P1 增加网络时间入口 + * - V2.3.0, 2026.09.11, cyWu, 转调 mcu_logic(原 mcu_business) ******************************************************************************/ #include "mcu_bridge.h" #include "mcu_protocol.h" -#include "mcu_business.h" +#include "mcu_logic.h" /** * @brief 初始化 MCU 接入模块 @@ -45,15 +46,15 @@ void mcu_bridge_on_app_frame(const uint8_t *data, uint16_t len) } /** - * @brief 身份是否就绪,转调业务门面 + * @brief 身份是否就绪,转调逻辑层 */ uint8_t mcu_bridge_is_identity_ready(void) { - return mcu_business_is_identity_ready(); + return mcu_logic_is_identity_ready(); } /** - * @brief 配网成功:经协议层事件队列串行化,再转业务门面处理 + * @brief 配网成功:经协议层事件队列串行化,再转逻辑层处理 */ void mcu_bridge_on_paired(void) { @@ -69,11 +70,11 @@ void mcu_bridge_on_pair_cleared(void) } /** - * @brief 获取工作状态,转调业务门面 + * @brief 获取工作状态,转调逻辑层 */ uint8_t mcu_bridge_get_work_status(void) { - return mcu_business_get_work_status(); + return mcu_logic_get_work_status(); } /** @@ -99,7 +100,7 @@ void mcu_bridge_on_network_time(uint64_t unix_s, int32_t gmtoff_s) */ void mcu_bridge_on_ble_disconnected(void) { - if (!mcu_business_ota_is_active()) { + if (!mcu_logic_ota_is_active()) { return; } mcu_protocol_notify_disconnected(); @@ -111,5 +112,5 @@ void mcu_bridge_on_ble_disconnected(void) */ uint8_t mcu_bridge_ota_is_active(void) { - return mcu_business_ota_is_active(); + return mcu_logic_ota_is_active(); } diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/mcu_bridge.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/mcu_bridge.h index ea55b30..d225e1a 100644 --- a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/mcu_bridge.h +++ b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/mcu_bridge.h @@ -2,8 +2,8 @@ * @file mcu_bridge.h * @brief BLE+MCU 接入模块对外总入口(组合门面) * @author cyWu <1917507415@qq.com> - * @date 2026.08.13 - * @version V2.1.0 + * @date 2026.09.11 + * @version V2.3.0 * @history * - V1.0.0, 2026.08.06, cyWu, 首次发布 * - V1.1.0, 2026.08.06, cyWu, 内部改为事件队列 + 独立任务驱动 @@ -13,6 +13,7 @@ * 外部调用方(app_main.c / usr_le_adv.c / usr_le_recieve.c 等)无需改动 * - V2.1.0, 2026.08.13, cyWu, P1 增加网络时间入口;业务子模块扩到管理/对时/版本 * - V2.2.0, 2026.08.15, cyWu, P2 OTA 入口走本门面,usr_le_code 不再 include mcu_ota.h + * - V2.3.0, 2026.09.11, cyWu, business 更名为 logic(逻辑层),入口改为 mcu_logic ******************************************************************************/ #ifndef __MCU_BRIDGE_H__ @@ -26,28 +27,28 @@ /* */ /* apps/usr_mcu_bridge/ */ /* ├── mcu_bridge.c/h —— 本文件:组合根,稳定对外 API */ -/* ├── protocol/ —— 协议层:只做协议机制,不含业务判断 */ +/* ├── protocol/ —— 协议层:组帧、收发、ACK、心跳,不管具体功能 */ /* │ ├── mcu_cmd.h 命令字 / 结果码 / work_status 位定义 */ /* │ ├── mcu_frame.c/h 55AA 组帧/解帧 */ /* │ ├── mcu_uart.c/h UART 收发驱动 */ /* │ ├── mcu_util.c/h 校验和/大端序/毫秒工具 */ /* │ └── mcu_protocol.c/h 事件队列/任务/分发/ACK/透传重传/心跳 */ -/* └── business/ —— 业务层:按业务拆分,互不直接依赖对方实现 */ -/* ├── mcu_identity.c/h 身份业务(0x01/0x02) */ -/* ├── mcu_pairing.c/h 配网业务(0x10、超时) */ -/* ├── mcu_link_status.c/h 连接状态业务(Bit0/1/2/6 位图) */ +/* └── logic/ —— 逻辑层:配网、版本、OTA 等具体功能 */ +/* ├── mcu_identity.c/h 身份(0x01/0x02) */ +/* ├── mcu_pairing.c/h 配网(0x10、超时) */ +/* ├── mcu_link_status.c/h 连接状态位图(Bit0/1/2/6) */ /* ├── mcu_mgmt.c/h 模组管理(0x16/0x18/0x1A) */ /* ├── mcu_time.c/h 对时(0x1C/0x1D,写入 usr_rtc) */ /* ├── mcu_version.c/h MCU 信息 + SOC 0x41 上报 */ -/* ├── mcu_ota.c/h P2 OTA:Type 分流 / MCU 透传 / Bit6 */ -/* └── mcu_business.c/h 业务门面:协调子模块,供协议层调用 */ +/* ├── mcu_ota.c/h OTA:Type 分流 / MCU 透传 / Bit6 */ +/* └── mcu_logic.c/h 逻辑层入口:协议层只调这里,再分到各模块 */ /* */ /* 依赖方向(单向,禁止反向 include): */ /* usr_le_code / app_main → mcu_bridge.h */ -/* mcu_bridge → mcu_protocol + mcu_business(门面) */ -/* mcu_protocol → mcu_business.h(不 include 业务子模块) */ -/* mcu_business 门面 → identity/pairing/link/mgmt/time/version/ota */ -/* 业务子模块互不 include;只经 mcu_protocol_send_* 回调协议层发送 */ +/* mcu_bridge → mcu_protocol + mcu_logic */ +/* mcu_protocol → mcu_logic.h(不直接 include 各功能模块) */ +/* mcu_logic → identity/pairing/link/mgmt/time/version/ota */ +/* 功能模块互不 include;只经 mcu_protocol_send_* 回调协议层发送 */ /* mcu_ota → usr_ota(协议无关 dual_bank 引擎,不感知 55AA) */ /*============================================================================*/ @@ -69,7 +70,7 @@ typedef enum { /*============================================================================*/ /** - * @brief 初始化 MCU 接入模块(组合 protocol + business) + * @brief 初始化 MCU 接入模块(组合协议层 + 逻辑层) * @return McuBridge_Ret_t */ McuBridge_Ret_t mcu_bridge_init(void); diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/protocol/mcu_protocol.c b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/protocol/mcu_protocol.c index 5bdb308..b53a5dd 100644 --- a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/protocol/mcu_protocol.c +++ b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/protocol/mcu_protocol.c @@ -17,7 +17,7 @@ #include "system/includes.h" #include "asm/power/power_api.h" #include "mcu_protocol.h" -#include "mcu_business.h" +#include "mcu_logic.h" #include "mcu_frame.h" #include "mcu_uart.h" #include "mcu_util.h" @@ -230,13 +230,13 @@ static void mcu_protocol_dispatch_event(const McuEvt_t *evt) mcu_protocol_handle_gateway_ack(evt->gw_cmd, evt->gw_int_cnt, evt->gw_int0); break; case MCU_EVT_BLE_PAIRED: - mcu_business_on_paired(); + mcu_logic_on_paired(); break; case MCU_EVT_BLE_PAIR_CLEARED: - mcu_business_on_pair_cleared(); + mcu_logic_on_pair_cleared(); break; case MCU_EVT_NET_TIME: - mcu_business_on_network_time(evt->unix_s, evt->gmtoff_s); + mcu_logic_on_network_time(evt->unix_s, evt->gmtoff_s); break; case MCU_EVT_APP_OTA_DATA: mcu_protocol_handle_app_frame(s_proto.ota_rx.buf, s_proto.ota_rx.len); @@ -244,7 +244,7 @@ static void mcu_protocol_dispatch_event(const McuEvt_t *evt) break; case MCU_EVT_BLE_DISCONNECTED: s_proto.disc_posted = 0; - mcu_business_on_ble_disconnected(); + mcu_logic_on_ble_disconnected(); break; default: log_error("unknown evt type=%d", evt->type); @@ -332,7 +332,7 @@ static int32_t mcu_protocol_send_frame(uint8_t cmd, uint8_t sn, } /** - * @brief 自动 SN 发送(供 business 层调用) + * @brief 自动 SN 发送(供逻辑层调用) * @param cmd 命令 * @param payload 载荷 * @param plen 长度 @@ -468,7 +468,7 @@ void mcu_protocol_invalidate_work_status_push(void) /*============================================================================*/ /** - * @brief 处理 0x10:协议校验 + ACK,业务交给 business 层 + * @brief 处理 0x10:协议校验 + ACK,再交给逻辑层 * @param frame 完整帧 * @param len 长度 */ @@ -493,18 +493,18 @@ static void mcu_protocol_handle_pair_cfg(const uint8_t *frame, uint16_t len) return; } /* 还没拿到 MCU 身份,广播都发不了,回忙让 MCU 稍后再试 */ - if (!mcu_business_is_identity_ready()) + if (!mcu_logic_is_identity_ready()) { mcu_protocol_send_ack(MCU_CMD_PAIR_CFG_ACK, sn, MCU_RESULT_BUSY); return; } mcu_protocol_send_ack(MCU_CMD_PAIR_CFG_ACK, sn, MCU_RESULT_OK); - mcu_business_on_pair_cfg(mode, timeout_s); + mcu_logic_on_pair_cfg(mode, timeout_s); } /** - * @brief 处理 0x1C:组 0x1D(时间由 business 填充) + * @brief 处理 0x1C:组 0x1D(时间由逻辑层填充) * @param frame 完整帧 * @param len 长度 */ @@ -520,7 +520,7 @@ static void mcu_protocol_handle_get_time(const uint8_t *frame, uint16_t len) return; } sn = frame[MCU_FRAME_OFF_SN]; - mcu_business_build_time_ack(payload, &plen); + mcu_logic_build_time_ack(payload, &plen); if (plen == 0) { plen = 1; @@ -603,19 +603,19 @@ static void mcu_protocol_handle_frame(const uint8_t *frame, uint16_t len) s_proto.hb_waiting = 0; s_proto.hb_fail_cnt = 0; } - /* 0x41/0x1B 等其余 ACK 继续走 switch,交给 business */ + /* 0x41/0x1B 等其余 ACK 继续走 switch,交给逻辑层 */ } switch (cmd) { case MCU_CMD_GET_IDENTITY_ACK: - mcu_business_on_identity_ack(frame, len); + mcu_logic_on_identity_ack(frame, len); break; case MCU_CMD_PAIR_CFG: mcu_protocol_handle_pair_cfg(frame, len); break; case MCU_CMD_REPORT: - if (mcu_business_ota_is_ble_active()) { + if (mcu_logic_ota_is_ble_active()) { log_info("drop MCU 0x07 during BLE OTA"); return; } @@ -628,45 +628,45 @@ static void mcu_protocol_handle_frame(const uint8_t *frame, uint16_t len) break; case MCU_CMD_RESET: mcu_protocol_send_ack(MCU_CMD_RESET_ACK, sn, MCU_RESULT_OK); - mcu_business_on_factory_reset(); + mcu_logic_on_factory_reset(); break; case MCU_CMD_REBOOT: mcu_protocol_send_ack(MCU_CMD_REBOOT_ACK, sn, MCU_RESULT_OK); - mcu_business_on_mod_reboot(); + mcu_logic_on_mod_reboot(); break; case MCU_CMD_GET_TIME: mcu_protocol_handle_get_time(frame, len); break; case MCU_CMD_GET_MCU_INFO_ACK: - mcu_business_on_mcu_info_ack(frame, len); /* 只本地解析,不原样转发网关 */ + mcu_logic_on_mcu_info_ack(frame, len); /* 只本地解析,不原样转发网关 */ break; case MCU_CMD_MCU_REBOOT_ACK: - mcu_business_on_mcu_reboot_ack(frame, len); + mcu_logic_on_mcu_reboot_ack(frame, len); break; case MCU_CMD_HEARTBEAT_ACK: break; case MCU_CMD_WORK_STATUS_ACK: - mcu_business_on_ota_ws_ack(); + mcu_logic_on_ota_ws_ack(); break; case MCU_CMD_OTA_NOTIFY_ACK: case MCU_CMD_OTA_DATA_ACK: case MCU_CMD_OTA_COMPLETE: case MCU_CMD_OTA_STOP_BLE_ACK: case MCU_CMD_OTA_STOP_MCU: - mcu_business_on_mcu_ota_frame(frame, len); + mcu_logic_on_mcu_ota_frame(frame, len); break; case MCU_CMD_FACTORY: case MCU_CMD_PHOTO: case MCU_CMD_RECORD: case MCU_CMD_AUDIO: - if (mcu_business_ota_is_active()) { + if (mcu_logic_ota_is_active()) { log_info("drop MCU cmd=0x%02X during OTA", cmd); break; } mcu_protocol_send_ack((uint8_t)(cmd + 1), sn, MCU_RESULT_NOT_SUPPORT); break; default: - if (mcu_business_ota_is_active()) { + if (mcu_logic_ota_is_active()) { log_info("drop MCU cmd=0x%02X during OTA", cmd); } break; @@ -693,7 +693,7 @@ static void mcu_protocol_handle_app_frame(const uint8_t *data, uint16_t len) case MCU_CMD_OTA_DATA: case MCU_CMD_OTA_COMPLETE_ACK: case MCU_CMD_OTA_STOP_BLE: - mcu_business_on_app_ota_frame(data, len); + mcu_logic_on_app_ota_frame(data, len); return; /* 反向 OTA 命令:模组→APP,或会话已结束后的 0x39,禁止透传到 UART */ @@ -708,11 +708,11 @@ static void mcu_protocol_handle_app_frame(const uint8_t *data, uint16_t len) case MCU_CMD_GET_MCU_INFO: /* APP 问版本:模组用缓存回 SOC 0x41,不要把 0x40 转给 MCU */ - mcu_business_on_app_get_mcu_info(sn); + mcu_logic_on_app_get_mcu_info(sn); return; case MCU_CMD_CONTROL: - if (mcu_business_ota_is_active()) { + if (mcu_logic_ota_is_active()) { mcu_protocol_reply_app_result(MCU_CMD_CONTROL_ACK, sn, MCU_RESULT_BUSY); return; } @@ -720,7 +720,7 @@ static void mcu_protocol_handle_app_frame(const uint8_t *data, uint16_t len) break; case MCU_CMD_READ: - if (mcu_business_ota_is_active()) { + if (mcu_logic_ota_is_active()) { mcu_protocol_reply_app_result(MCU_CMD_READ_ACK, sn, MCU_RESULT_BUSY); return; } @@ -728,7 +728,7 @@ static void mcu_protocol_handle_app_frame(const uint8_t *data, uint16_t len) break; default: - if (mcu_business_ota_is_active()) { + if (mcu_logic_ota_is_active()) { log_info("drop APP cmd=0x%02X during OTA", cmd); return; } @@ -790,7 +790,7 @@ static void mcu_protocol_handle_gateway_ack(uint16_t cmd, } /* 再交给版本上报:若已被 0x07 占用,版本侧会继续等,不会误当成自己的 ACK */ - mcu_business_on_gateway_ack(success, mcu_consumed); + mcu_logic_on_gateway_ack(success, mcu_consumed); } /*============================================================================*/ @@ -808,7 +808,7 @@ static void mcu_protocol_try_heartbeat(void) int32_t total; /* 身份都还没通,先别发心跳 */ - if (!mcu_business_is_identity_ready() || mcu_business_ota_is_active()) + if (!mcu_logic_is_identity_ready() || mcu_logic_ota_is_active()) { return; } @@ -867,7 +867,7 @@ static void mcu_protocol_try_heartbeat(void) } /** - * @brief 工作状态变化时推送 0x14(状态值来自 business 层) + * @brief 工作状态变化时推送 0x14(状态值来自逻辑层) */ static void mcu_protocol_try_work_status(void) { @@ -878,12 +878,12 @@ static void mcu_protocol_try_work_status(void) uint32_t now; uint8_t ws; - if (!mcu_business_is_identity_ready() || mcu_business_ota_is_active()) + if (!mcu_logic_is_identity_ready() || mcu_logic_ota_is_active()) { return; } - ws = mcu_business_get_work_status(); + ws = mcu_logic_get_work_status(); /* 状态没变就不再推 0x14;0xFF 表示强制重推 */ if (ws == s_proto.last_pushed_status) { @@ -994,16 +994,16 @@ static void mcu_protocol_check_ble_pending(void) } /** - * @brief 周期处理:串口防睡 / 业务周期 / pending 重试 / 心跳 / 状态推送 + * @brief 周期处理:串口防睡 / 逻辑层周期 / pending 重试 / 心跳 / 状态推送 */ static void mcu_protocol_periodic(void) { mcu_uart_rx_keep_awake_tick(); /* 串口防睡 */ - mcu_business_periodic(); /* 业务周期 */ + mcu_logic_periodic(); /* 逻辑层周期 */ mcu_protocol_check_app_pending(); /* APP 透传超时重发;重试用尽后主动回 FAIL,不让 APP 干等 */ mcu_protocol_check_ble_pending(); /* BLE 主动帧 pending 超时清理 */ mcu_protocol_try_heartbeat(); /* 心跳 */ - mcu_protocol_try_work_status(); /* 工作状态变化时推送 0x14(状态值来自 business 层) */ + mcu_protocol_try_work_status(); /* 工作状态变化时推送 0x14(状态值来自逻辑层) */ } /*============================================================================*/ @@ -1023,7 +1023,7 @@ uint8_t mcu_protocol_init(void) memset(&s_proto, 0, sizeof(s_proto)); mcu_frame_parser_reset(); - mcu_business_init(); + mcu_logic_init(); if (mcu_uart_init() != MCU_UART_OK) { diff --git a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/protocol/mcu_protocol.h b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/protocol/mcu_protocol.h index d49a389..e52ae49 100644 --- a/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/protocol/mcu_protocol.h +++ b/JBao_JL7016_MOD_FW/apps/usr_mcu_bridge/protocol/mcu_protocol.h @@ -6,7 +6,7 @@ * @version V1.1.0 * @history * - V1.0.0, 2026.08.12, cyWu, 从 mcu_bridge.c 拆出,仅保留协议机制, - * 不含任何业务判断(身份/配网/连接状态见 ../business) + * 不含功能处理(身份/配网/连接状态见 ../logic) * - V1.1.0, 2026.08.13, cyWu, P1:管理命令分发、pending 发送、网关时间入队 * - V1.2.0, 2026.08.15, cyWu, P2:OTA 大包旁路、按 SN 发送、原始帧转发 ******************************************************************************/ @@ -20,12 +20,11 @@ /*============================================================================*/ /* 说明 */ /* 本模块只做协议机制:组帧收发、事件队列驱动的单一任务、命令分发、 */ -/* ACK 与超时重传、心跳保活。所有业务判断(该不该配网/该发什么广播/ */ -/* work_status 具体取值)一律转交 business 层,本模块不感知业务细节。 */ +/* ACK 与超时重传、心跳保活。配网/版本/OTA 等具体功能一律转交逻辑层。 */ /*============================================================================*/ /** - * @brief 初始化协议引擎(UART + 事件队列 + 独立任务 + business 层) + * @brief 初始化协议引擎(UART + 事件队列 + 独立任务 + 逻辑层) * @return 1=成功,0=失败 */ uint8_t mcu_protocol_init(void); @@ -45,7 +44,7 @@ void mcu_protocol_on_uart_rx(const uint8_t *data, uint16_t len); void mcu_protocol_on_app_frame(const uint8_t *data, uint16_t len); /** - * @brief 配网成功通知(入队,交由协议任务在自身上下文调用 business 层) + * @brief 配网成功通知(入队,交由协议任务在自身上下文调用逻辑层) */ void mcu_protocol_notify_paired(void); @@ -77,7 +76,7 @@ void mcu_protocol_notify_network_time(uint64_t unix_s, int32_t gmtoff_s); void mcu_protocol_notify_disconnected(void); /*============================================================================*/ -/* 供 business 层调用的协议发送接口 */ +/* 供逻辑层调用的协议发送接口 */ /*============================================================================*/ /** @@ -132,7 +131,7 @@ uint8_t mcu_protocol_is_ble_pending(void); uint8_t mcu_protocol_is_mcu_report_waiting(void); /** - * @brief 强制下一轮重新推送 0x14(业务状态变化后调用) + * @brief 强制下一轮重新推送 0x14(逻辑层状态变化后调用) */ void mcu_protocol_invalidate_work_status_push(void); diff --git a/tools/pack_firmware.ps1 b/tools/pack_firmware.ps1 index 24c70d3..b347900 100644 --- a/tools/pack_firmware.ps1 +++ b/tools/pack_firmware.ps1 @@ -23,7 +23,7 @@ if ([string]::IsNullOrWhiteSpace($SdkRoot)) { $SdkRoot = Join-Path $RepoRoot "JBao_JL7016_MOD_FW" } -$VersionHeader = Join-Path $SdkRoot "apps\usr_mcu_bridge\business\mcu_version.h" +$VersionHeader = Join-Path $SdkRoot "apps\usr_mcu_bridge\logic\mcu_version.h" $DownloadDir = Join-Path $SdkRoot "cpu\br28\tools\download\earphone" $ReleaseRoot = Join-Path $RepoRoot "release"