初始化是指设备上电、启动之后,调用一系列接口,完成设备硬件环境的初始化、涂鸦TuyaOS
软件的初始化、应用功能初始化等工作。
一般来说,软件启动会执行main函数,对于涂鸦TuyaOS
来说,不同场景,入口不一样,比如说在Linux
操作系统环境下,我们需要自己实现main函数;在RTOS
系统下,我们需要实现user_main
函数。并在user main
函数里对TuyaOS
软件和设备应用能力进行初始化。
接口描述
TuyaOS初始化
Definition of TUYA DevOS init param
Definition: tuya_cloud_com_defs.h:163
OPERATE_RET tuya_iot_init_params(IN CONST CHAR_T *fs_storge_path, IN CONST TY_INIT_PARAMS_S *p_param)
TuyaOS system service init
此接口是涂鸦TuyaOS
的初始化接口,不区分模式,有线、Wi-Fi
、Wi-Fi&BLE
、蜂窝网络都会使用。接口内部会对TuyaOS
的内部基础功能进行资源分配、初始化。一般来说,这个接口会第一个调用,但是在一些场景下,可以在此接口之前进行一些功能配置、事件关注等工作,可以在TuyaOS
初始化过程中进行一些特殊的业务逻辑处理。例如在开发照明产品的时候,需要基础功能初始化完成之后立即将灯点亮,则可以在调用此接口之前关注一下early_init
事件,并在此事件回调里执行点灯逻辑,就可以实现此功能。
Wi-Fi 通用对接初始化
IN CHAR_T *product_key, IN CHAR_T *wf_sw_ver, IN CONST CHAR_T *mcu_sw_ver);
Definition of gateway callback funtions
Definition: tuya_cloud_com_defs.h:807
OPERATE_RET tuya_iot_wf_mcu_dev_init(IN CONST GW_WF_CFG_MTHD_SEL cfg, IN CONST GW_WF_START_MODE start_mode, IN CONST TY_IOT_CBS_S *cbs, IN CHAR_T *p_firmware_key, IN CHAR_T *product_key, IN CHAR_T *wf_sw_ver, IN CONST CHAR_T *mcu_sw_ver)
tuya_iot_wf_mcu_dev_init
此接口对tuya_iot_wf_dev_init
进行了封装,实现了专门用于mcu
通用对接的初始化接口。在mcu
通用对接场景下,可以使用该接口,在收到mcu
通过串口发送过来的product key
和mcu
版本信息,对设备进行初始化。
在Wi-Fi
设备初始化接口,可以配置初始化的配网模式和Wi-Fi
工作模式。
Wi-Fi SOC初始化
IN CHAR_T *product_key, IN CHAR_T *wf_sw_ver);
OPERATE_RET tuya_iot_wf_soc_dev_init_param(IN CONST GW_WF_CFG_MTHD_SEL cfg, IN CONST GW_WF_START_MODE start_mode, IN CONST TY_IOT_CBS_S *cbs, IN CHAR_T *firmware_key, IN CHAR_T *product_key, IN CHAR_T *wf_sw_ver)
tuya_iot_wf_soc_dev_init_param
此接口对tuya_iot_wf_dev_init
进行了封装,实现了专门用于soc
方案的初始化接口。在soc
场景下,可以使用该接口,用本地保存的product key
和固件版本信息,对设备进行初始化。
在Wi-Fi
设备初始化接口,可以配置初始化的配网模式和Wi-Fi
工作模式。
Wi-Fi网络状态回调设置
VOID(* GET_WF_NW_STAT_CB)(IN CONST GW_WIFI_NW_STAT_E stat)
Handler when network connection error happens
Definition: tuya_cloud_wifi_defs.h:145
OPERATE_RET tuya_iot_reg_get_wf_nw_stat_cb_params(IN CONST GET_WF_NW_STAT_CB wf_nw_stat_cb, IN CONST INT_T min_interval_s)
tuya_iot_reg_get_wf_nw_stat_cb_params
此接口注册网络状态变化回调函数。TuyaOS
在网络状态变化的时候,调用此接口注册进来的nw_stat_cb
,通知应用进行相应的处理。
Wi-Fi授权信息设置
Definition: tuya_cloud_wifi_defs.h:123
OPERATE_RET tuya_iot_set_wf_gw_prod_info(IN CONST WF_GW_PROD_INFO_S *wf_prod_info)
tuya_iot_set_wf_gw_prod_info
此接口设置涂鸦授权信息。TuyaOS
在激活的时候需要使用授权信息到涂鸦云进行设备认证,因此需要设置授权信息。授权信息里包含了产品信息,唯一标识和认证密钥,使用涂鸦产测软件进行产测授权可以不需要调用此接口,否则则需要自行获取授权信息,并在初始化的时候写入。
示例代码
Wi-Fi设备初始化的时候,需要设置回调,指定工作模式和配网模式,以下是一段示例代码,在初始化的时候设置了ap_ssid
和ap_passwd
,并以GWCM_SPCL_AUTOCFG
工作模式和WF_START_AP_FIRST
配网模式启动设备。
#define UUID "f2*************b0"
#define AUTHKEY "6P**************************MX"
#define PRODUCT_KEY "U0**************Zy"
#define USER_SW_VER "1.0.0"
#define AP_SSID "SmartLife"
#define AP_PASSWD "tuya_wf_sample"
#define CFG_STORAGE_PATH "./tuya_db_files/"
#define WIFI_NETCFG_TIMEOUT 3
STATIC VOID __soc_dev_rev_upgrade_info_cb(IN CONST
FW_UG_S *fw);
STATIC VOID __soc_dev_status_changed_cb(IN CONST GW_STATUS_E status);
STATIC VOID __soc_dev_dp_query_cb(IN CONST
TY_DP_QUERY_S *dp_qry);
STATIC VOID __soc_dev_restart_req_cb(GW_RESET_TYPE_E type);
STATIC VOID __soc_dev_net_status_cb(IN CONST GW_BASE_NW_STAT_T stat);
STATIC VOID __soc_dev_reset_cb(event_raw_data_t *data);
int sample_wifidevice_test(int argc, char *argv[])
{
int rt = OPRT_OK;
TUYA_CALL_ERR_RETURN(tuya_iot_init_param(CFG_STORAGE_PATH, NULL));
iot_cbs.
gw_ug_cb = __soc_dev_rev_upgrade_info_cb;
TUYA_CALL_ERR_RETURN(tuya_iot_reg_get_nw_stat_cb_params(__soc_dev_net_status_cb, 1));
while (1)
{
sleep(10);
ty_devos_monitor();
}
return 0;
}
tuya sdk ota firmware info
Definition: tuya_cloud_com_defs.h:663
Definition of DP query
Definition: tuya_cloud_com_defs.h:564
GW_RESET_IFM_CB gw_reset_cb
Definition: tuya_cloud_com_defs.h:813
DEV_RAW_DP_CMD_CB dev_raw_dp_cb
Definition: tuya_cloud_com_defs.h:817
DEV_DP_QUERY_CB dev_dp_query_cb
Definition: tuya_cloud_com_defs.h:819
DEV_OBJ_DP_CMD_CB dev_obj_dp_cb
Definition: tuya_cloud_com_defs.h:815
GW_STATUS_CHANGED_CB gw_status_cb
Definition: tuya_cloud_com_defs.h:809
GW_UG_INFORM_CB gw_ug_cb
Definition: tuya_cloud_com_defs.h:811
Definition of recved structured dp
Definition: tuya_cloud_com_defs.h:494
Definition of recved raw dp
Definition: tuya_cloud_com_defs.h:512