【已同步】7231N OS 3.3.4 路由产测的实现

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
Post Reply
17095171715
Posts: 6

OS 3.3.4 版本SDK ,去掉了路由产测功能,需要自己去实现。

1.获取设备是否配过网络 以前的wd_gw_wsm_read 接口不在了,请问有新的接口替换吗
2.使用get_gw_cntl 获取UUID 和 auth_key 也是空值

yingtao_33
Posts: 219

Re: 7231N OS 3.3.4 路由产测的实现

第一个接口建议使用
/**

  • @brief Get gateway's register status
    *
  • @return Work state, see GW_WORK_STAT_T
    */
    GW_WORK_STAT_T get_gw_active(VOID);

第二个接口建议使用
/**

  • @brief Get gateway's authentication status
    *
  • @return TRUE if authorized, otherwise return FALSE
    */
    BOOL_T get_gw_auth_status(VOID);

这两个接口的声明都在头文件:tuya_devos_utils.h

17095171715
Posts: 6

Re: 7231N OS 3.3.4 路由产测的实现

好的 我这边测试一下

yingtao_33
Posts: 219

Re: 7231N OS 3.3.4 路由产测的实现

不好意思,如果是在设备初始化之前使用,上述两个接口在3.3.4版本里还没初始化。

所以第一个接口还是建议调用原来的 wd_gw_wsm_read 这个接口从flash中读取,这个接口的声明在 ws_db_gw.h中
第二个接口建议按照如下方法实现

Code: Select all

BOOL_T __is_dev_authorized(VOID_T)
{
    OPERATE_RET  ret = OPRT_OK;
    GW_BASE_IF_S *p_gw_base = NULL;
    BOOL_T is_authorized = TRUE;

p_gw_base = (GW_BASE_IF_S *)tal_malloc(SIZEOF(GW_BASE_IF_S));
if(NULL == p_gw_base) {
    TAL_PR_ERR("malloc failed");
    return FALSE;
}
memset((UCHAR_T *)p_gw_base, 0x00,  SIZEOF(GW_BASE_IF_S));

ret = wd_gw_base_if_read(p_gw_base);
if (OPRT_OK != ret) {
    TAL_PR_ERR("read flash err");
    tal_free(p_gw_base), p_gw_base = NULL;
    return FALSE;
}

// gateway base info verify
if (0 ==  p_gw_base->auth_key[0] || 0 == p_gw_base->uuid[0]) {
    TAL_PR_NOTICE("please write uuid and auth_key first");
    is_authorized = FALSE;
}else {
    is_authorized = TRUE;
}

tal_free(p_gw_base), p_gw_base = NULL;

return is_authorized;
}
Post Reply