From 4e1bf445b2d65ab5c7f5a5e9fc6ff0611af2e895 Mon Sep 17 00:00:00 2001 From: Wuchuyuan <1917507415@qq.com> Date: Tue, 4 Aug 2026 12:30:06 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=B0=81=E8=A3=85=20usr=5Fle=5Fcode?= =?UTF-8?q?=20=E4=B8=BA=E9=9D=99=E6=80=81=E5=BA=93=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Release=20=E5=AE=A2=E6=88=B7=E5=8C=85?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E5=B7=A5=E5=85=B7=202?= =?UTF-8?q?=E3=80=81=E5=B0=86=20BLE=20=E5=8D=8F=E8=AE=AE=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E6=94=B6=E6=95=9B=E4=B8=BA=20libusr=5Fle=5Fcode.a=20+=20?= =?UTF-8?q?=E5=85=AC=E5=BC=80=E5=A4=B4=E6=96=87=E4=BB=B6=EF=BC=8C=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E4=BE=A7=E9=80=9A=E8=BF=87=20usr=5Fle=5Fapi=20/=20usr?= =?UTF-8?q?=5Fle=5Fproduct=20=E5=AF=B9=E6=8E=A5=EF=BC=9B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=20package=5Frelease.py=EF=BC=8C=E6=8C=89=20version.txt=203?= =?UTF-8?q?=E3=80=81=E7=94=9F=E6=88=90=E5=8E=BB=E9=99=A4=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E6=BA=90=E7=A0=81=E7=9A=84=E5=AE=A2=E6=88=B7=E4=BA=A4=E4=BB=98?= =?UTF-8?q?=E5=8C=85=EF=BC=8C=E5=BC=80=E5=8F=91=E5=B7=A5=E7=A8=8B=E7=BB=A7?= =?UTF-8?q?=E7=BB=AD=E4=BF=9D=E7=95=99=E5=AE=8C=E6=95=B4=E6=BA=90=E7=A0=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 + AC701N.cbp | 21 +- Makefile | 42 +- .../bt_trans_data/le_rcsp_adv_module.c | 4 - apps/earphone/include/app_main.h | 3 - apps/earphone/key_event_deal.c | 3 - apps/usr_jb_proto/Protocol/jb_protocol.h | 9 +- apps/usr_jb_proto/usr_jb_main.c | 12 + apps/usr_le_code/build_lib.bat | 50 ++ apps/usr_le_code/lib/libusr_le_code.a | Bin 0 -> 262894 bytes apps/usr_le_code/usr_le_adv.c | 81 ++- apps/usr_le_code/usr_le_api.h | 66 ++ apps/usr_le_code/usr_le_product.h | 46 ++ apps/usr_le_code/usr_le_recieve.c | 7 +- tools/package_release.py | 634 ++++++++++++++++++ version.txt | 1 + 16 files changed, 920 insertions(+), 65 deletions(-) create mode 100644 apps/usr_le_code/build_lib.bat create mode 100644 apps/usr_le_code/lib/libusr_le_code.a create mode 100644 apps/usr_le_code/usr_le_api.h create mode 100644 apps/usr_le_code/usr_le_product.h create mode 100644 tools/package_release.py create mode 100644 version.txt diff --git a/.gitignore b/.gitignore index 8b2f94e..9955a91 100644 --- a/.gitignore +++ b/.gitignore @@ -81,6 +81,12 @@ $RECYCLE.BIN/ *.orig *.rej +# ----------------------------------------------------------------------------- +# Release 交付产物(由 tools/package_release.py 生成,勿提交) +# ----------------------------------------------------------------------------- +release/ +Release_Project_*/ + # ----------------------------------------------------------------------------- # 注意:以下内容请保留上传,不要忽略 # - cpu/br28/liba/*.a SDK 预编译库 diff --git a/AC701N.cbp b/AC701N.cbp index cacb40e..32008f5 100644 --- a/AC701N.cbp +++ b/AC701N.cbp @@ -257,6 +257,7 @@ + @@ -777,29 +778,13 @@ - - - - - - - - - - - - + + diff --git a/Makefile b/Makefile index a0af6b6..88b7db4 100644 --- a/Makefile +++ b/Makefile @@ -245,6 +245,11 @@ INCLUDES := \ -Iinclude_lib/media/aispeech/enc/include \ -Icpu/br28/audio_hearing \ -Iinclude_lib/media/cvp \ + -Iapps/usr_le_code \ + -Iapps/usr_le_code/thirdpart \ + -Iapps/usr_le_code/thirdpart/mjson \ + -Iapps/usr_jb_proto/Protocol \ + -Iapps/usr_jb_proto/Utils \ -I$(SYS_INC_DIR) \ @@ -479,6 +484,7 @@ c_SRC_FILES := \ apps/earphone/bt_emitter.c \ apps/earphone/bt_tws.c \ apps/earphone/default_event_handler.c \ + apps/earphone/dual_update_demo.c \ apps/earphone/earphone.c \ apps/earphone/eartch_event_deal.c \ apps/earphone/font/fontinit.c \ @@ -608,6 +614,24 @@ c_SRC_FILES := \ cpu/br28/tws_audio.c \ cpu/br28/uart_dev.c \ cpu/br28/umidigi_chargestore.c \ + apps/usr_jb_proto/Protocol/jb_product.c \ + apps/usr_jb_proto/Protocol/jb_protocol.c \ + apps/usr_jb_proto/Utils/jb_common.c \ + apps/usr_jb_proto/Utils/jb_ringbuffer.c \ + apps/usr_jb_proto/usr_jb_main.c \ + + +# usr_le_code 静态库(协议编解码 + 广播/收发) +USR_LE_LIB := apps/usr_le_code/lib/libusr_le_code.a +USR_LE_SRC_FILES := \ + apps/usr_le_code/ble_proto.c \ + apps/usr_le_code/bleproto.c \ + apps/usr_le_code/bleproto_packer.c \ + apps/usr_le_code/thirdpart/mjson/mjson.c \ + apps/usr_le_code/usr_le_adv.c \ + apps/usr_le_code/usr_le_recieve.c + +USR_LE_OBJS := $(addprefix $(BUILD_DIR)/, $(USR_LE_SRC_FILES:%.c=%.c.o)) # 需要编译的 .S 文件 @@ -711,6 +735,7 @@ LFLAGS := \ cpu/br28/liba/libllns.a \ cpu/br28/liba/libkwscommon.a \ apps/common/third_party_profile/tuya_protocol/sdk/lib/libtuya_lib.a \ + apps/usr_le_code/lib/libusr_le_code.a \ cpu/br28/liba/lib_icsd_adt.a \ cpu/br28/liba/lib_diafx.a \ cpu/br28/liba/libFFT_pi32v2_OnChip.a \ @@ -769,16 +794,25 @@ LINK_AT ?= 1 # 表示下面的不是一个文件的名字,无论是否存在 all, clean, pre_build 这样的文件 # 还是要执行命令 # see: https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html -.PHONY: all clean pre_build +.PHONY: all clean pre_build lib_usr_le # 不要使用 make 预设置的规则 # see: https://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html .SUFFIXES: -all: pre_build $(OUT_ELF) +all: pre_build $(USR_LE_LIB) $(OUT_ELF) $(info +POST-BUILD) $(QUITE) $(RUN_POST_SCRIPT) sdk +# 单独编译 usr_le_code 静态库: make lib_usr_le +lib_usr_le: $(USR_LE_LIB) + +$(USR_LE_LIB): $(USR_LE_OBJS) + $(info +AR $@) + $(shell $(MKDIR) $(@D)) + $(QUITE) $(RM) $@ + $(QUITE) $(AR) rcs $@ $(USR_LE_OBJS) + pre_build: $(info +PRE-BUILD) $(QUITE) $(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -D__LD__ -E -P cpu/br28/sdk_used_list.c -o cpu/br28/sdk_used_list.used @@ -794,13 +828,13 @@ clean: ifeq ($(LINK_AT), 1) -$(OUT_ELF): $(OBJS) +$(OUT_ELF): $(OBJS) $(USR_LE_LIB) $(info +LINK $@) $(shell $(MKDIR) $(@D)) $(file >$(OBJ_FILE), $(OBJS)) $(QUITE) $(LD) -o $(OUT_ELF) @$(OBJ_FILE) $(LFLAGS) $(LIBPATHS) $(LIBS) else -$(OUT_ELF): $(OBJS) +$(OUT_ELF): $(OBJS) $(USR_LE_LIB) $(info +LINK $@) $(shell $(MKDIR) $(@D)) $(QUITE) $(LD) -o $(OUT_ELF) $(OBJS) $(LFLAGS) $(LIBPATHS) $(LIBS) diff --git a/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.c b/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.c index 2625d32..5354771 100644 --- a/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.c +++ b/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.c @@ -57,9 +57,6 @@ #include "chgbox_box.h" #endif -extern void usr_ble_adv_updata(); - - extern void usr_le_data_recieve(u8* data,u16 len); extern void usr_ble_adv_init(); #if 1 @@ -934,7 +931,6 @@ void ble_trans_module_enable(u8 flag) ble_module_enable(flag); } -extern void usr_ble_adv_init(); void bt_ble_init(void) { log_info("***** ble_init******\n"); diff --git a/apps/earphone/include/app_main.h b/apps/earphone/include/app_main.h index 5ede37e..c7e3c30 100644 --- a/apps/earphone/include/app_main.h +++ b/apps/earphone/include/app_main.h @@ -1,7 +1,5 @@ #ifndef APP_MAIN_H #define APP_MAIN_H -#include "bleproto.h" -#include "bleproto_api.h" typedef struct _USR_VAR { u8 usr_start_write_flash ; @@ -131,7 +129,6 @@ typedef struct _BT_USER_COMM_VAR { extern APP_VAR app_var; extern USR_VAR usr_var; extern BT_USER_PRIV_VAR bt_user_priv_var; -extern bleproto_authsetup_req_t usr_auth_data; diff --git a/apps/earphone/key_event_deal.c b/apps/earphone/key_event_deal.c index c6b867a..7b5015c 100644 --- a/apps/earphone/key_event_deal.c +++ b/apps/earphone/key_event_deal.c @@ -34,8 +34,6 @@ /* #define LOG_DUMP_ENABLE */ #define LOG_CLI_ENABLE #include "debug.h" -#include "bleproto.h" -#include "bleproto_api.h" #define POWER_OFF_CNT 10 @@ -46,7 +44,6 @@ extern bool get_tws_sibling_connect_state(void); extern int bt_get_low_latency_mode(); extern void bt_set_low_latency_mode(int enable); -extern void usr_ble_adv_init(); void audio_aec_pitch_change_ctrl(); void audio_surround_voice_ctrl(); extern void start_streamer_test(void); diff --git a/apps/usr_jb_proto/Protocol/jb_protocol.h b/apps/usr_jb_proto/Protocol/jb_protocol.h index 5f3cbe8..e009008 100644 --- a/apps/usr_jb_proto/Protocol/jb_protocol.h +++ b/apps/usr_jb_proto/Protocol/jb_protocol.h @@ -34,10 +34,13 @@ #define REPORT_DEBOUNCE 2000 /* 变化上报防抖时间(ms) */ #define REPORT_PERIOD 600000 /* 定时全量上报周期(ms) */ -/* Device identity: change these values for the target product. */ +/* Device identity: change these values for the target product. + * JB_CATEGORY_CODE: 必须 4 字符 ASCII,供 BLE 广播 prodcode 使用 + * JB_PRODUCT_CODE : 必须 6 字符 ASCII,供 BLE 广播 pcode 使用 + */ #define JB_PROTOCOL_VERSION 0x0100 /* V1.0 */ -#define JB_CATEGORY_CODE "CBXX" -#define JB_PRODUCT_CODE "CBXX" +#define JB_CATEGORY_CODE "CBC0" +#define JB_PRODUCT_CODE "PICBC0" #define JB_DEVICE_SN 0x00 #define JB_DEVICE_CAPABILITY 0ULL diff --git a/apps/usr_jb_proto/usr_jb_main.c b/apps/usr_jb_proto/usr_jb_main.c index 803435b..ebf80b1 100644 --- a/apps/usr_jb_proto/usr_jb_main.c +++ b/apps/usr_jb_proto/usr_jb_main.c @@ -10,6 +10,18 @@ #include "jb_product.h" #include "jb_ringbuffer.h" #include "jb_common.h" +#include "usr_le_product.h" + +/* 向 usr_le_code 库提供产品身份(换产品只改 jb_protocol.h 宏即可) */ +const uint8_t g_usr_le_prodcode[USR_LE_PRODCODE_LEN] = { + JB_CATEGORY_CODE[0], JB_CATEGORY_CODE[1], + JB_CATEGORY_CODE[2], JB_CATEGORY_CODE[3] +}; +const uint8_t g_usr_le_pcode[USR_LE_PCODE_LEN] = { + JB_PRODUCT_CODE[0], JB_PRODUCT_CODE[1], JB_PRODUCT_CODE[2], + JB_PRODUCT_CODE[3], JB_PRODUCT_CODE[4], JB_PRODUCT_CODE[5] +}; + void usr_timer_1_ms(); static int jb_timer_id=0; diff --git a/apps/usr_le_code/build_lib.bat b/apps/usr_le_code/build_lib.bat new file mode 100644 index 0000000..7fc5849 --- /dev/null +++ b/apps/usr_le_code/build_lib.bat @@ -0,0 +1,50 @@ +@echo off +chcp 65001 >nul +REM Rebuild apps/usr_le_code/lib/libusr_le_code.a +REM Double-click this bat; window will pause so you can read the result. + +cd /d "%~dp0..\.." +if errorlevel 1 ( + echo [FAIL] cannot cd to project root + echo SCRIPT dir: %~dp0 + goto :END +) + +echo ==== build libusr_le_code.a ==== +echo Project root: %CD% +echo. + +SET PATH=%CD%\tools\utils;C:\JL\pi32\bin;%PATH% + +where make >nul 2>&1 +if errorlevel 1 ( + echo [FAIL] make.exe not found + echo Check: %CD%\tools\utils\make.exe + goto :END +) + +where clang.exe >nul 2>&1 +if errorlevel 1 ( + echo [FAIL] clang.exe not found + echo Check: C:\JL\pi32\bin\clang.exe + goto :END +) + +make lib_usr_le -j %NUMBER_OF_PROCESSORS% +if errorlevel 1 ( + echo. + echo [FAIL] build libusr_le_code.a + goto :END +) + +echo. +if exist "apps\usr_le_code\lib\libusr_le_code.a" ( + echo [OK] apps\usr_le_code\lib\libusr_le_code.a + dir "apps\usr_le_code\lib\libusr_le_code.a" +) else ( + echo [FAIL] lib file not found after build +) + +:END +echo. +pause diff --git a/apps/usr_le_code/lib/libusr_le_code.a b/apps/usr_le_code/lib/libusr_le_code.a new file mode 100644 index 0000000000000000000000000000000000000000..550990761c5aea09c09921dd9bffaf15c826d4a6 GIT binary patch literal 262894 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

?b&M&ZRoOwoX~DKu{y+T6rWrz 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 z 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�TFgW2^SEF>&=#Y=d(76OySMlUI)K$ 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 literal 0 HcmV?d00001 diff --git a/apps/usr_le_code/usr_le_adv.c b/apps/usr_le_code/usr_le_adv.c index 0fadd9e..befd16e 100644 --- a/apps/usr_le_code/usr_le_adv.c +++ b/apps/usr_le_code/usr_le_adv.c @@ -14,8 +14,7 @@ #include "vm.h" #include "bleproto.h" #include "bleproto_api.h" - -#include "bleproto.h" +#include "usr_le_product.h" #define LOG_TAG_CONST APP #define LOG_TAG "[APP]" #define LOG_ERROR_ENABLE @@ -28,6 +27,9 @@ extern u8 muti_adv_data[31];//={0}; extern u8 muti_adv_data_len; +/* 定义在 usr_le_recieve.c,库内共用,不对外导出 */ +extern bleproto_authsetup_req_t usr_auth_data; + extern u8 usr_get_full(); extern u16 usr_get_conn_service(); extern int muti_make_set_adv_data(u8* data,u8 data_len); @@ -95,9 +97,14 @@ void usr_ble_adv_init() { int8_t txpower = 0; uint8_t manucode[BLEPROTO_ADV_TLV_LENGTH_MANUCODE] = { 0 }; - uint8_t prodcode[BLEPROTO_ADV_TLV_LENGTH_PRODCODE] = {'C', 'B', 'C', '0'};///CBP0 - uint8_t gmac[6]={0}; - uint8_t pcode[6]={'P','I','C','B','C','0'}; + uint8_t prodcode[BLEPROTO_ADV_TLV_LENGTH_PRODCODE]; + uint8_t gmac[6] = {0}; + uint8_t pcode[BLE_PROTO_ADV_LENGTH_PCODE]; + + /* 产品身份由应用层 g_usr_le_* 提供(见 usr_jb_main.c) */ + memcpy(prodcode, g_usr_le_prodcode, BLEPROTO_ADV_TLV_LENGTH_PRODCODE); + memcpy(pcode, g_usr_le_pcode, BLE_PROTO_ADV_LENGTH_PCODE); + usr_set_adv_interval(80); if(usr_var.usr_ota_succ_flag)return; //muti_adv_data @@ -214,29 +221,51 @@ void usr_soft_off() void usr_ble_adv_updata_OTA() { //printf("usr_ble_adv_updata\n"); - if(1) + ble_trans_module_enable(0); + usr_var.usr_adv_flag=0; + + extern u8 usr_mac_addr[6]; + extern int le_controller_set_mac(void *addr); + usr_mac_addr[0]=usr_mac_addr[0]+1; + le_controller_set_mac(usr_mac_addr); //修改BLE地址 + muti_make_set_adv_data_updata(); + printf("###muti_adv_data = "); + printf_buf(muti_adv_data,muti_adv_data_len); + ble_trans_module_enable(1); +} + +void usr_ota_process() +{ + static u8 cnt = 0; + if (cnt == 0) { - ble_trans_module_enable(0); - usr_var.usr_adv_flag=0; + ble_multi_trans_disconnect(); + } - #if 1 - extern u8 usr_mac_addr[6]; - //u8 ble_mac[6]; - extern int le_controller_set_mac(void *addr); - //extern void lib_make_ble_address(u8 * ble_address, u8 * edr_address); - //bt_update_mac_addr(mac); - //lmp_hci_write_local_address(mac); - //bt_update_testbox_addr(mac); - //lib_make_ble_address(ble_mac, mac); - usr_mac_addr[0]=usr_mac_addr[0]+1; - le_controller_set_mac(usr_mac_addr); //修改BLE地址 + if (usr_get_conn_service() == 0) + { + cnt++; + if (cnt == 2) + { + usr_ble_adv_updata_OTA(); + } + if (cnt >= 60) + { + cnt = 0; + cpu_reset(); + } + } + else + { + cnt = 1; + } +} - #endif - - - muti_make_set_adv_data_updata(); - printf("###muti_adv_data = "); - printf_buf(muti_adv_data,muti_adv_data_len); - ble_trans_module_enable(1); +void usr_app_ota_init() +{ + usr_var.usr_goto_updata = 1; + if (usr_var.ota_timer == 0) + { + usr_var.ota_timer = sys_timer_add(NULL, usr_ota_process, 1000); } } diff --git a/apps/usr_le_code/usr_le_api.h b/apps/usr_le_code/usr_le_api.h new file mode 100644 index 0000000..5e5b20f --- /dev/null +++ b/apps/usr_le_code/usr_le_api.h @@ -0,0 +1,66 @@ +/****************************************************************************** + * @file usr_le_api.h + * @brief usr_le_code 静态库对外 API(广播 / 收发 / 配网) + * @author cyWu <1917507415@qq.com> + * @date 2026.08.03 + * @version V1.0.0 + * @history + * - V1.0.0, 2026.08.03, cyWu, 首次发布 + ******************************************************************************/ + +#ifndef __USR_LE_API_H__ +#define __USR_LE_API_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief 初始化 BLE 广播数据(绑定广播或重连广播) + * @note 根据配对状态与 usr_goto_pair 选择 bind/reconn 广播,并启动 500ms 周期更新 + */ +void usr_ble_adv_init(void); + +/** + * @brief BLE 协议栈接收数据入口 + * @param data 接收缓冲区 + * @param len 本次接收长度 + * @note 组包后解析 bleproto,并分发 DEVICEINFO/AUTH/RUNCMD/OTA 等服务 + */ +void usr_le_data_recieve(uint8_t *data, uint16_t len); + +/** + * @brief 进入配对/配网模式 + * @note 断开当前连接、清除配对信息(不复位),重新发绑定广播 + */ +void usr_goto_pair_mode(void); + +/** + * @brief 清除配对信息但不复位 + */ +void usr_clear_pair_info_noreset(void); + +/** + * @brief 清除配对信息并延时复位 + */ +void usr_clear_pair_info(void); + +/** + * @brief 获取当前是否已配对 + * @return 1=已配对,0=未配对 + */ +uint8_t usr_get_pair_flag(void); + +/** + * @brief 启动应用侧 OTA 流程 + * @note 置位 usr_goto_updata,并创建 1s 周期定时器驱动断连与 OTA 广播切换 + */ +void usr_app_ota_init(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __USR_LE_API_H__ */ diff --git a/apps/usr_le_code/usr_le_product.h b/apps/usr_le_code/usr_le_product.h new file mode 100644 index 0000000..90bcda4 --- /dev/null +++ b/apps/usr_le_code/usr_le_product.h @@ -0,0 +1,46 @@ +/****************************************************************************** + * @file usr_le_product.h + * @brief usr_le_code 产品身份配置接口(由应用层提供符号,库内不写死) + * @author cyWu <1917507415@qq.com> + * @date 2026.08.03 + * @version V1.0.0 + * @history + * - V1.0.0, 2026.08.03, cyWu, 首次发布 + ******************************************************************************/ + +#ifndef __USR_LE_PRODUCT_H__ +#define __USR_LE_PRODUCT_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** 与 bleproto_packer.h 中 BLEPROTO_ADV_TLV_LENGTH_PRODCODE 一致 */ +#ifndef USR_LE_PRODCODE_LEN +#define USR_LE_PRODCODE_LEN 4 +#endif + +/** 与 bleproto_packer.h 中 BLE_PROTO_ADV_LENGTH_PCODE 一致 */ +#ifndef USR_LE_PCODE_LEN +#define USR_LE_PCODE_LEN 6 +#endif + +/** + * @brief 产品类别码,对应 BLE 广播 prodcode(固定 4 字节 ASCII) + * @note 应用层用 JB_CATEGORY_CODE 填充,见 usr_jb_main.c + */ +extern const uint8_t g_usr_le_prodcode[USR_LE_PRODCODE_LEN]; + +/** + * @brief 平台产品码,对应 BLE 广播 pcode(固定 6 字节 ASCII) + * @note 应用层用 JB_PRODUCT_CODE 填充,见 usr_jb_main.c + */ +extern const uint8_t g_usr_le_pcode[USR_LE_PCODE_LEN]; + +#ifdef __cplusplus +} +#endif + +#endif /* __USR_LE_PRODUCT_H__ */ diff --git a/apps/usr_le_code/usr_le_recieve.c b/apps/usr_le_code/usr_le_recieve.c index e489924..5a28e16 100644 --- a/apps/usr_le_code/usr_le_recieve.c +++ b/apps/usr_le_code/usr_le_recieve.c @@ -16,7 +16,6 @@ #include "bleproto.h" #include "bleproto_api.h" #include "ble_proto.h" -#include "jb_protocol.h" #define LOG_TAG_CONST APP #define LOG_TAG "[APP]" #define LOG_ERROR_ENABLE @@ -37,7 +36,6 @@ static u8 ota_source_data[FIRM_PACK_LEN * 2] = {0}; extern u16 usr_get_conn_service(); extern void ble_multi_trans_disconnect(void); -extern void usr_ble_adv_updata_OTA(); extern void usr_ble_send_data(u8 *data, u16 len); /// BLE发送接口,MTU 244 extern void usr_write_pair_info(); extern void usr_clear_pair_info(); @@ -45,6 +43,8 @@ extern void app_audio_volume_set(u8 value); extern int dual_ota_app_data_deal(u32 msg, u8 *buf, u32 len); extern int uart_tr_send_data(u8 *data, u32 len); extern void usr_intterupt_close(); +extern void usr_jb_le_recieve_data(u8 *data, u16 len); +extern int8_t jbReportAckCheck(u16 cmd, u8 gateway_int_cnt, int32_t gateway_int0); void usr_ota_deal_task(); void usr_data_ana(bleproto_appdata_desc_t *desc); @@ -429,10 +429,9 @@ void usr_ota_deal_task() /* 最近一次收到 RUNCMD_V2 请求的 msgid,应答时回填 */ static u8 s_last_runcmd_msgid = 0; -extern void usr_jb_le_recieve_data(u8 *data, u16 len); void usr_run_cmd_code_v2(ble_proto_packet_t *runcmd_par, u8 usr_msg_id) { - u8 jb_frame[MAX_PACKAGE_LEN]; + u8 jb_frame[128]; /* 与 jb_protocol.h MAX_PACKAGE_LEN 一致 */ u16 copy_len; if (!runcmd_par || !runcmd_par->bytes_data || runcmd_par->device_bytes_len == 0) diff --git a/tools/package_release.py b/tools/package_release.py new file mode 100644 index 0000000..deb0ce3 --- /dev/null +++ b/tools/package_release.py @@ -0,0 +1,634 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +############################################################################### +# @file package_release.py +# @brief 根据当前开发工程自动生成客户交付 Release 工程 +# @author cyWu <1917507415@qq.com> +# @date 2026.08.04 +# @version V1.0.0 +# @history +# - V1.0.0, 2026.08.04, cyWu, 首次发布 +# - V1.0.1, 2026.08.04, cyWu, 产物统一输出到 release/ 目录 +# +# 使用方式(在项目根或任意目录): +# python tools/package_release.py +# +# 约束: +# - 仅使用 Python 标准库 +# - 所有删除 / 过滤 / 复制只作用于 Release 副本 +# - 绝不修改开发工程业务源码、Makefile、build_lib.bat、CodeBlocks 工程 +############################################################################### + +from __future__ import annotations + +import fnmatch +import os +import re +import shutil +import sys +import zipfile +from datetime import datetime +from pathlib import Path +from typing import Dict, Iterable, List, Set + + +# ============================================================================= +# 可配置区域(集中管理,扩展模块只改这里) +# ============================================================================= + +# 版本文件(相对项目根) +VERSION_FILE = "version.txt" + +# Release 输出根目录(相对项目根,产物全部放这里) +RELEASE_OUTPUT_DIR = "release" + +# Release 命名规则 +RELEASE_DIR_PREFIX = "Release_Project_V" +RELEASE_ZIP_SUFFIX = ".zip" +README_NAME = "Release_Project_README.md" + +# 工程展示名称(写入 README) +PROJECT_DISPLAY_NAME = "AC701N Earphone SDK" +CHIP_DISPLAY_NAME = "AC7016C(BR28)" + +# 复制时跳过的目录名(任意层级) +SKIP_DIR_NAMES: Set[str] = { + ".git", + ".vscode", + ".idea", + "objs", + "obj", + "__pycache__", + RELEASE_OUTPUT_DIR, # 不把已有交付产物拷进新包 +} + +# 复制时跳过的根目录文件(仅项目根下,不进客户包) +SKIP_ROOT_FILES: Set[str] = { + ".gitignore", + "version.txt", +} + +# 复制时跳过的文件通配(任意层级,按文件名匹配) +SKIP_FILE_PATTERNS: List[str] = [ + "*.o", + "*.d", + "*.dep", + "*.obj", + "*.bak", + "*.log", + "*.tmp", + "*.temp", + "*.swp", + "*.swo", + "*.orig", + "*.rej", + "*.pyc", + "*.layout", + "*.depend", + "Thumbs.db", + ".DS_Store", +] + +# 复制时跳过的路径前缀(相对项目根,防自复制嵌套) +SKIP_PATH_PREFIXES: List[str] = [ + RELEASE_OUTPUT_DIR, + "Release_Project_V", # 兼容旧版曾放在项目根的产物 +] + +# --------------------------------------------------------------------------- +# 需要封装交付的模块配置 +# --------------------------------------------------------------------------- +# public_headers : 保留的公开头文件(仅文件名,相对模块根或子目录中同名匹配) +# remove_patterns : 删除的源码通配(递归) +# remove_internal_headers : True 时删除非 public_headers 的所有 .h/.hpp +# prune_empty_dirs : 清理后删除空目录 +# remove_extra : 额外删除的相对路径(相对模块根) +# keep_extra : 额外强制保留的相对路径(文件或目录,相对模块根) +# --------------------------------------------------------------------------- +MODULE_CONFIG: Dict[str, dict] = { + "apps/usr_le_code": { + "public_headers": [ + "usr_le_api.h", + "usr_le_product.h", + ], + "remove_patterns": [ + "*.c", + "*.cpp", + "*.cc", + ], + "remove_internal_headers": True, + "prune_empty_dirs": True, + "remove_extra": [ + "build_lib.bat", + ], + "keep_extra": [ + "lib/", + ], + }, +} + + +# ============================================================================= +# 路径管理 +# ============================================================================= + +def get_project_root() -> Path: + """ + @brief 由脚本位置推导项目根目录(tools/ 的上一级) + @return 项目根 Path + """ + return Path(__file__).resolve().parent.parent + + +def read_version(project_root: Path) -> str: + """ + @brief 读取 version.txt + @param project_root 项目根 + @return 版本号字符串,例如 "1.0.0" + """ + version_path = project_root / VERSION_FILE + if not version_path.is_file(): + raise FileNotFoundError(f"version file not found: {version_path}") + + version = version_path.read_text(encoding="utf-8").strip() + if not version: + raise ValueError(f"version file is empty: {version_path}") + + # 简单校验:不允许路径分隔符,避免生成非法目录名 + if any(ch in version for ch in ("/", "\\", "..")): + raise ValueError(f"invalid version string: {version!r}") + + return version + + +def get_release_paths(project_root: Path, version: str) -> dict: + """ + @brief 统一生成 Release 相关路径(均位于 release/ 下) + @param project_root 项目根 + @param version 版本号 + @return 含 output_dir / dir / zip / readme 的字典 + """ + dir_name = f"{RELEASE_DIR_PREFIX}{version}" + output_dir = project_root / RELEASE_OUTPUT_DIR + release_dir = output_dir / dir_name + release_zip = output_dir / f"{dir_name}{RELEASE_ZIP_SUFFIX}" + readme_path = release_dir / README_NAME + return { + "dir_name": dir_name, + "output_dir": output_dir, + "release_dir": release_dir, + "release_zip": release_zip, + "readme_path": readme_path, + } + + +# ============================================================================= +# 复制过滤 +# ============================================================================= + +def _match_any(name: str, patterns: Iterable[str]) -> bool: + """ + @brief 判断文件名是否匹配任一通配符 + """ + return any(fnmatch.fnmatch(name, pat) for pat in patterns) + + +def should_skip_path(rel_path: Path) -> bool: + """ + @brief 判断相对项目根的路径在复制时是否应跳过 + @param rel_path 相对路径 + @return True=跳过 + """ + parts = rel_path.parts + if not parts: + return False + + # 跳过项目根下指定文件(如 .gitignore / version.txt) + if len(parts) == 1 and parts[0] in SKIP_ROOT_FILES: + return True + + # 跳过指定目录名(任意层级) + for part in parts: + if part in SKIP_DIR_NAMES: + return True + + # 跳过 Release 产物路径(防嵌套) + rel_posix = rel_path.as_posix() + for prefix in SKIP_PATH_PREFIXES: + if rel_posix == prefix.rstrip("/") or rel_posix.startswith(prefix): + return True + + # 跳过匹配的文件名 + if _match_any(rel_path.name, SKIP_FILE_PATTERNS): + return True + + # 跳过已有 zip 包(根目录下) + if len(parts) == 1 and rel_path.name.endswith(RELEASE_ZIP_SUFFIX): + if rel_path.name.startswith(RELEASE_DIR_PREFIX): + return True + + return False + + +def copy_project(project_root: Path, release_dir: Path) -> int: + """ + @brief 过滤复制整工程到 Release 目录 + @param project_root 开发工程根 + @param release_dir 目标 Release 目录 + @return 复制的文件数量 + """ + copied = 0 + + for root, dirs, files in os.walk(project_root): + root_path = Path(root) + rel_root = root_path.relative_to(project_root) + + # 就地过滤子目录,避免继续向下遍历 + keep_dirs: List[str] = [] + for d in dirs: + candidate = rel_root / d if str(rel_root) != "." else Path(d) + if should_skip_path(candidate): + continue + keep_dirs.append(d) + dirs[:] = keep_dirs + + # 目标目录 + dst_root = release_dir if str(rel_root) == "." else release_dir / rel_root + dst_root.mkdir(parents=True, exist_ok=True) + + for name in files: + rel_file = rel_root / name if str(rel_root) != "." else Path(name) + if should_skip_path(rel_file): + continue + + src = root_path / name + dst = dst_root / name + shutil.copy2(src, dst) + copied += 1 + + return copied + + +# ============================================================================= +# 模块清理(仅作用于 Release 副本) +# ============================================================================= + +def _is_under_keep_extra(rel_posix: str, keep_extra: List[str]) -> bool: + """ + @brief 判断模块内相对路径是否属于 keep_extra 保护范围 + """ + for keep in keep_extra: + keep_norm = keep.replace("\\", "/").rstrip("/") + if not keep_norm: + continue + # 目录保护:keep 以 / 结尾或配置为目录前缀 + if rel_posix == keep_norm or rel_posix.startswith(keep_norm + "/"): + return True + # 兼容配置写成 "lib/" 的情况已在上方处理 + if keep.endswith("/") and (rel_posix == keep_norm or rel_posix.startswith(keep_norm + "/")): + return True + return False + + +def _prune_empty_dirs(module_dir: Path) -> int: + """ + @brief 自底向上删除空目录 + @return 删除的空目录数量 + """ + removed = 0 + # 深度优先:按路径长度降序 + all_dirs = sorted( + (p for p in module_dir.rglob("*") if p.is_dir()), + key=lambda p: len(p.parts), + reverse=True, + ) + for d in all_dirs: + try: + if not any(d.iterdir()): + d.rmdir() + removed += 1 + except OSError: + pass + return removed + + +def clean_module(release_dir: Path, module_rel: str, cfg: dict) -> dict: + """ + @brief 按配置清理单个封装模块(仅 Release 内) + @param release_dir Release 根目录 + @param module_rel 模块相对路径,如 apps/usr_le_code + @param cfg MODULE_CONFIG 中的单项配置 + @return 统计信息字典 + """ + module_dir = release_dir / module_rel + stats = { + "module": module_rel, + "removed_sources": 0, + "removed_headers": 0, + "removed_extra": 0, + "pruned_dirs": 0, + "missing": False, + } + + if not module_dir.is_dir(): + stats["missing"] = True + print(f"[WARN] module not found in Release: {module_rel}") + return stats + + public_headers: Set[str] = set(cfg.get("public_headers", [])) + remove_patterns: List[str] = list(cfg.get("remove_patterns", [])) + remove_internal_headers: bool = bool(cfg.get("remove_internal_headers", True)) + prune_empty_dirs: bool = bool(cfg.get("prune_empty_dirs", True)) + remove_extra: List[str] = list(cfg.get("remove_extra", [])) + keep_extra: List[str] = list(cfg.get("keep_extra", [])) + + # 1) 删除匹配 remove_patterns 的源文件 + for path in list(module_dir.rglob("*")): + if not path.is_file(): + continue + rel = path.relative_to(module_dir).as_posix() + if _is_under_keep_extra(rel, keep_extra): + continue + if _match_any(path.name, remove_patterns): + path.unlink() + stats["removed_sources"] += 1 + + # 2) 删除非公开头文件 + if remove_internal_headers: + header_patterns = ["*.h", "*.hpp"] + for path in list(module_dir.rglob("*")): + if not path.is_file(): + continue + if not _match_any(path.name, header_patterns): + continue + rel = path.relative_to(module_dir).as_posix() + if _is_under_keep_extra(rel, keep_extra): + continue + # 公开头文件按“文件名”匹配,便于配置只写文件名 + if path.name in public_headers: + continue + path.unlink() + stats["removed_headers"] += 1 + + # 3) 删除额外指定文件/目录 + for extra in remove_extra: + target = module_dir / extra + if not target.exists(): + continue + if target.is_dir(): + shutil.rmtree(target) + else: + target.unlink() + stats["removed_extra"] += 1 + + # 4) 清理空目录 + if prune_empty_dirs: + stats["pruned_dirs"] = _prune_empty_dirs(module_dir) + + return stats + + +def clean_all_modules(release_dir: Path) -> List[dict]: + """ + @brief 遍历 MODULE_CONFIG 清理所有模块 + """ + results = [] + for module_rel, cfg in MODULE_CONFIG.items(): + print(f"[INFO] cleaning module: {module_rel}") + results.append(clean_module(release_dir, module_rel, cfg)) + return results + + +def sanitize_release_makefile(release_dir: Path) -> None: + """ + @brief 调整 Release 副本中的 Makefile:仅链接预编译 libusr_le_code.a + 开发工程 Makefile 不动;客户包不得再尝试用已删除源码重建库 + @param release_dir Release 根目录 + """ + makefile = release_dir / "Makefile" + if not makefile.is_file(): + print("[WARN] Makefile not found in Release, skip sanitize") + return + + text = makefile.read_text(encoding="utf-8") + + # 1) 去掉源码列表与 OBJS,仅保留预编译库路径 + text2, n1 = re.subn( + r"# usr_le_code 静态库[^\n]*\n" + r"USR_LE_LIB := apps/usr_le_code/lib/libusr_le_code\.a\n" + r"USR_LE_SRC_FILES := \\\n" + r"(?:[ \t]+apps/usr_le_code/[^\n]+\n)+" + r"\n" + r"USR_LE_OBJS :=[^\n]+\n", + "# usr_le_code 预编译静态库(Release 不附带协议源码,禁止本地重建)\n" + "USR_LE_LIB := apps/usr_le_code/lib/libusr_le_code.a\n" + "\n", + text, + count=1, + ) + if n1 == 0: + raise RuntimeError("sanitize Makefile failed: USR_LE_SRC_FILES block not found") + + # 2) .PHONY 去掉 lib_usr_le + text2, n2 = re.subn( + r"\.PHONY:\s*all clean pre_build lib_usr_le\b", + ".PHONY: all clean pre_build", + text2, + count=1, + ) + if n2 == 0: + # 兼容顺序变化,尽量剥离 lib_usr_le + text2 = re.sub(r"\s+lib_usr_le\b", "", text2, count=1) + + # 3) 删除 lib_usr_le 目标与 $(USR_LE_LIB): $(USR_LE_OBJS) 重建规则 + # 保留 all / OUT_ELF 对 $(USR_LE_LIB) 的依赖:库文件已存在即可链接 + text2, n3 = re.subn( + r"\n# 单独编译 usr_le_code 静态库:[^\n]*\n" + r"lib_usr_le:[^\n]*\n" + r"\n" + r"\$\(USR_LE_LIB\): \$\(USR_LE_OBJS\)\n" + r"(?:[ \t]+[^\n]+\n)+", + "\n", + text2, + count=1, + ) + if n3 == 0: + raise RuntimeError("sanitize Makefile failed: lib_usr_le rebuild rule not found") + + makefile.write_text(text2, encoding="utf-8") + print("[INFO] sanitized Release Makefile (prebuilt libusr_le_code.a only)") + + +# ============================================================================= +# README / ZIP +# ============================================================================= + +def write_readme(readme_path: Path, version: str, module_stats: List[dict]) -> None: + """ + @brief 生成 Release_Project_README.md + @param readme_path README 路径 + @param version 版本号 + @param module_stats 模块清理统计(用于目录说明) + """ + now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + lines: List[str] = [ + f"# {PROJECT_DISPLAY_NAME}", + "", + "## 基本信息", + "", + f"- 工程名称:{PROJECT_DISPLAY_NAME}", + f"- 版本号:V{version}", + f"- 生成时间:{now}", + f"- 适用芯片:{CHIP_DISPLAY_NAME}", + "", + "## 目录说明", + "", + "```", + f"Release_Project_V{version}/", + "├── apps/", + "│ ├── common/ # SDK 公共模块", + "│ ├── earphone/ # 耳机应用", + "│ ├── usr_jb_proto/ # 应用协议层", + "│ └── usr_le_code/ # BLE 协议库(库文件 + 公开头文件)", + "├── cpu/ # 芯片相关代码与工具", + "├── include_lib/ # SDK 头文件", + "├── tools/ # 工程工具", + "├── Makefile", + "├── AC701N.cbp", + f"└── {README_NAME}", + "```", + "", + "### 封装模块公开接口", + "", + ] + + for module_rel, cfg in MODULE_CONFIG.items(): + public_headers = cfg.get("public_headers", []) + lines.append(f"**{module_rel}**") + lines.append("") + lines.append(f"- 静态库:`{module_rel}/lib/`") + lines.append("- 公开头文件:") + for h in public_headers: + lines.append(f" - `{module_rel}/{h}`") + lines.append("") + + lines.append("---") + lines.append("") + lines.append("*本文件由 tools/package_release.py 自动生成。*") + lines.append("") + + readme_path.write_text("\n".join(lines), encoding="utf-8") + + +def make_zip(release_dir: Path, release_zip: Path) -> None: + """ + @brief 将 Release 目录压缩为 zip(与目录同级) + @param release_dir Release 目录 + @param release_zip 目标 zip 路径 + """ + if release_zip.exists(): + release_zip.unlink() + + with zipfile.ZipFile(release_zip, "w", compression=zipfile.ZIP_DEFLATED) as zf: + for path in release_dir.rglob("*"): + if path.is_file(): + arcname = path.relative_to(release_dir.parent) + zf.write(path, arcname.as_posix()) + + +# ============================================================================= +# 主流程 +# ============================================================================= + +def remove_old_release(release_dir: Path, release_zip: Path) -> None: + """ + @brief 删除已有同名 Release 目录与 zip + """ + if release_dir.exists(): + print(f"[INFO] remove old release dir: {release_dir.name}") + shutil.rmtree(release_dir) + + if release_zip.exists(): + print(f"[INFO] remove old release zip: {release_zip.name}") + release_zip.unlink() + + +def main() -> int: + """ + @brief Release 打包主入口 + @return 进程退出码,0=成功 + """ + try: + project_root = get_project_root() + version = read_version(project_root) + paths = get_release_paths(project_root, version) + + release_dir: Path = paths["release_dir"] + release_zip: Path = paths["release_zip"] + readme_path: Path = paths["readme_path"] + dir_name: str = paths["dir_name"] + + print("=" * 60) + print(" AC701N Release Package Tool") + print("=" * 60) + output_dir: Path = paths["output_dir"] + + print(f"[INFO] project root : {project_root}") + print(f"[INFO] version : {version}") + print(f"[INFO] output dir : {RELEASE_OUTPUT_DIR}/") + print(f"[INFO] release dir : {RELEASE_OUTPUT_DIR}/{dir_name}") + print() + + # 确保 release/ 输出目录存在 + output_dir.mkdir(parents=True, exist_ok=True) + + # ① 删除旧产物 + remove_old_release(release_dir, release_zip) + + # ② 过滤复制 + print("[INFO] copying project ...") + copied = copy_project(project_root, release_dir) + print(f"[INFO] copied files : {copied}") + + # ③ 模块清理(仅 Release 副本) + print("[INFO] cleaning encapsulated modules ...") + module_stats = clean_all_modules(release_dir) + for st in module_stats: + if st["missing"]: + continue + print( + f" - {st['module']}: " + f"src={st['removed_sources']}, " + f"hdr={st['removed_headers']}, " + f"extra={st['removed_extra']}, " + f"empty_dirs={st['pruned_dirs']}" + ) + + # ④ Release Makefile:禁止用已删除源码重建库(开发工程 Makefile 不动) + print("[INFO] sanitizing Release Makefile ...") + sanitize_release_makefile(release_dir) + + # ⑤ README + print("[INFO] writing README ...") + write_readme(readme_path, version, module_stats) + + # ⑥ ZIP + print("[INFO] creating zip ...") + make_zip(release_dir, release_zip) + + print() + print("=" * 60) + print("[OK] Release package generated successfully") + print(f" dir : {release_dir}") + print(f" zip : {release_zip}") + print("=" * 60) + return 0 + + except Exception as exc: + print(f"[FAIL] {exc}", file=sys.stderr) + return 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..3eefcb9 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +1.0.0