成品产测-扫描信标

更新时间:2023-12-21 10:33:38下载pdf

设备成品产测是在制造过程中对成品进行全面检查和测试的过程,有助于确保产品质量和性能,提高客户满意度并确保产品符合规定的标准和要求。

本文主要介绍 设备扫描指定信标 成品产测方案,并未涉及成品产测的具体测试内容代码是如何实现的。因为不同的产品由于其功能差异,产测内容也是不一样的,成品产测的具体功能需要您根据实际的产品功能来设计和实现。

功能描述

  1. 设备上电 扫描指定产测信标

  2. 设备扫描到产测信标后,设备可根据预定义的产测步骤执行自动化产测步骤。扫描到的产测信标不同,执行的产测动作也可能会不同。

    产测信标和产测动作都由您自行定义。

  3. 测试人员关注设备的动作现象来判定产测的结果。这种产测不需要上位机参与,操作更加便捷。

关闭产测入口

设备如果符合以下任意一种情况,都不会进入成品产测流程,也不会扫描产测信标和连接产测路由。

  • 联网单品设备激活之后连续工作 15 分钟。

  • 配网工作模式选择 GWCM_OLD,该模式下不支持上述两种成品产测功能。关于配网工作模式,参考 配网模式的定义

  • 如果配网工作模式选择上电默认配网模式,但此时设备已经拿到 SSID 等网络信息,选择的配网模式包括:

    • GWCM_OLD_PROD
    • GWCM_LOW_POWER_AUTOCFG
    • GWCM_SPCL_AUTOCFG
  • 如果配网工作模式选择上电默认不配网,但设备当前处于配网状态,选择的配网模式包括:

    • GWCM_SPCL_MODE
    • GWCM_LOW_POWER

工作原理

设备无线路由器成品产测入口未关闭您自定义的产测 SSID 不能是 tuya_mdev_test4 信道:6扫描到到产测路由进入产测检测是否有授权若无授权,则不进行下一步检测信标信号强度是否符合要求若信号强度弱,则不进行下一步执行程序预设的产测动作设备无线路由器

开发指导

关联头文件

  • prod_test.h
  • tuya_devos_utils.h

使用方法

有两种方法实现这套成品产测:

  • 根据参考示例,您自己实现和管理

    从扫描到具体的产测动作,你都自己实现。框架提供扫描 Wi-Fi 等基础接口,并且也提供了实现进入产测的参考示例。如果想要做些细微修改,灵活度也更高。

  • 调用框架提供的接口

    调用框架提供的成品产测方案接口。框架内实现了扫描条件判断,以及扫描指定信号等流程。您只需关心扫到后的消息处理,较为便捷,不过会有一定限制。

    1. 由于每个模组上的资源不一样,并不会打开所有功能,您需要检查 tuya_iot_config.h 确认如下宏是否定义:

      #define ENABLE_PRODUCT_AUTOTEST  1
      
    2. 注册成品产测相关信息。

    3. 调用扫描产测信标接口。

API 说明

注册成品产测相关接口

注册配网模式、产测信标列表、产测指令及结果的回调函数等必要信息。

//设备信标产测,产测信标列表
typedef struct {
    char        ssid[32 + 1];
    signed char rssi;
} prodtest_ssid_info_t;

//设备信标产测,扫描到信标后返回的信息
// flag:设备是否有授权
// info:扫描到信标列表
// info_count:扫描到的信标数量
typedef OPERATE_RET(*prodtest_app_cb_t)(int flag, \
                                        prodtest_ssid_info_t *info, \
                                        uint8_t info_count);
typedef struct {
    GW_WF_CFG_MTHD_SEL              gwcm_mode;  //配网模式
    uint8_t                         ssid_count;  //设备信标产测,您自定义的产测信标个数
    const char                    **ssid_list;  //设备信标产测,您自定义的产测信标列表
    prodtest_app_cb_t               app_cb;     //设备信标产测,扫描到信标后返回的信息
    MF_USER_PRODUCT_TEST_CB         product_cb; //上位机局域网产测,应用指令数据回调
    char                           *file_name;  //上位机局域网产测,固件标识名,即 APP_BIN_NAME
    char                           *file_ver;   //上位机局域网产测,固件版本号,即 USER_SW_VER
} prodtest_app_cfg_t;

/**
 * @brief 注册成品产测时所需的配置信息
 *
 * @param[in] app_cfg:应用配网模式
 *
 * @return OPERATE_RET
 *
 */
int prodtest_app_register(const prodtest_app_cfg_t *app_cfg);

开始扫描产测信标

信标所在信道必须是 6 信道。

如果扫到了 tuya_mdev_test4,则会自动进入 上位机局域网产测,不会再扫描其他信标。扫描信标产测中,您自定义的 SSID 也不能与 tuya_mdev_test4 重复。

/**
 * @brief 扫描产测信标及连接 tuya_mdev_test4
 *        扫描产测信标前会做产测入口判断,当前设备满足允许进入产测的前提条件时,才会进行扫描和连接。
 *        具体条件请看上文的<关闭产测入口>所列条目。
 *
 * @param[in] timeout:扫描超时时间 ms
 *                     如果超过该时间还扫不到产测信号,则不会进入产测流程。
 *                     如果填 0,则会使用默认值 500ms。
 *
 * @return TRUE:需要进入产测模式,FALSE:不进入产测模式
 *
 */
bool prodtest_ssid_scan(uint32_t timeout);

参考示例

下载联网单品框架后,框架的 apps 目录下有所有功能示例代码集合 tuyaos_demo_examples,可参考 service_product_test 文件夹中的代码。关于功能示例代码集合的使用,参考 TuyaOS 示例集合