BK7238如何退出产测
Posted: 2026年 Oct 19日 11:59
问题:如果环境中一直有产测信号,设备是否无论挂多久或者复位都会处于产测状态,在不关闭产测信号和不修改固件的基础上,有什么退出的办法吗?是不是必须要持续联网时间超过15分钟才可以
问题:如果环境中一直有产测信号,设备是否无论挂多久或者复位都会处于产测状态,在不关闭产测信号和不修改固件的基础上,有什么退出的办法吗?是不是必须要持续联网时间超过15分钟才可以
结论:是的——只要产测信号一直在、设备还没配过网、且 KV mf_test_close 没被置位,BK7238 每次复位都会重新进产测,挂多久都不会自己退出。那个 15 分钟只在设备“正常启动并激活成功”后才开始计时,卡在产测里永远等不到。
为什么会这样
mf_init 后,立刻调一次 prodtest_ssid_scan(500)(apps/t1_common_user_config_ty/src/tuya_app_main.c:199,206),只在开机时扫 channel 6 上 T1 通用固件的产测 SSID tuya_gfw_mf_test(application_components/ty_gfw_mf_test/src/prod_test/ty_gfw_prod_test.c:1081,可被 KV AutoTestCfg.pt_ssid 覆盖)。nc_tp < 3 且 md == 0)时直接返回 true,device_init() 不再执行 → devos 不启动 → 永远收不到 EVENT_RUN → 15 分钟定时器根本不启动(components/svc_mf_test/src/product_autotest/prod_test.c:280)。EVENT_RUN(云端激活完成,components/svc_devos/src/tuya_svc_devos.c:201)后的一次性定时器(mf_test.c:280),不是“累计挂机时间”,也不是“持续联网时长”。mf_test_close=true:mf_init 与 SSID 扫描都先查它(mf_test.c:314、prod_test.c:291)。退出办法(不关信号、不改固件)
| 方法 | 适用场景 | 说明 |
|---|---|---|
| 上位机写 KV 标志 | 任意 | 走 KV 通道 0x1C 写 mf_test_close=true,再复位,之后信号一直在也不会进产测 |
| 正常模式跑满 15 分钟 | 已配网/已激活 | 框架自动写入该标志,这就是“15 分钟”的来源 |
| 开机瞬间屏蔽信号 | 临时规避 | 扫描只在开机做一次,约 500 ms,这一瞬间放进屏蔽箱即可跳过本次 |
方法一可发如下 JSON(在线 5561 认证后或串口通道均可):
Code: Select all
{"type":0,"key":"mf_test_close","value":"true"}补充
0xF0 + 0xFF01(SUB_CMD_DISCONNECT)会让设备重启,在线则直接断开上位机;但单纯复位会重新进产测,必须先做方法一或二。mf_test_close 一起清掉,反而更容易重进。nc_tp >= 3),下次启动 SSID 扫描就会主动放弃,这也是有效出路。以上内容由 AI 自动分析生成,如有疑问请回复补充。