有线产品是指通过有线的方式连接网络,或者是开发自己维护网络连接,不需要涂鸦TuyaOS关心网络连接的方式和配置。
初始化是指设备上电、启动之后,调用一系列接口,完成设备硬件环境的初始化、涂鸦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)
tuya_iot_init_params @desc init tuya_iot_sdk
此接口是涂鸦TuyaOS的初始化接口,不区分模式,有线、Wi-Fi、Wi-Fi&BLE、蜂窝网络都会使用。接口内部会对TuyaOS的内部基础功能进行资源分配、初始化。一般来说,这个接口会第一个调用,但是在一些场景下,可以在此接口之前进行一些功能配置、事件关注等工作,可以在TuyaOS初始化过程中进行一些特殊的业务逻辑处理。例如在开发照明产品的时候,需要基础功能初始化完成之后立即将灯点亮,则可以在调用此接口之前关注一下early_init事件,并在此事件回调里执行点灯逻辑,就可以实现此功能。
有线设备初始化
IN CONST CHAR_T *product_key, IN CONST CHAR_T *sw_ver,
Definition of attach moudule attribute
Definition: tuya_cloud_com_defs.h:175
Definition of gateway callback funtions
Definition: tuya_cloud_com_defs.h:726
OPERATE_RET tuya_iot_dev_init(IN CONST TY_IOT_CBS_S *cbs, IN CONST CHAR_T *firmware_key, IN CONST CHAR_T *product_key, IN CONST CHAR_T *sw_ver, IN CONST DEV_TYPE_T tp, IN CONST GW_ATTACH_ATTR_T *attr, IN CONST UINT_T attr_num)
tuya_iot_dev_init
此接口用来初始化设备能力。在涂鸦物联网开发五步走步骤,会对产品进行定义,得到产品的PID等信息;PID信息在涂鸦云端对应了产品的功能信息,以及设备上其他的附属固件、文件等配置信息。在这个接口里,会对这些信息进行校验,并向尝试网络连接、连接云端,进行设备的激活绑定,在设备激活之后,启动各种涂鸦TuyaOS服务,并连接涂鸦云,进行正常的业务交互。
有线通用对接初始化
IN CONST CHAR_T *sw_ver,IN CONST CHAR_T *mcu_sw_ver);
OPERATE_RET tuya_iot_mcu_dev_init(IN CONST TY_IOT_CBS_S *cbs, IN CONST CHAR_T *product_key, IN CONST CHAR_T *p_firmware_key, IN CONST CHAR_T *sw_ver, IN CONST CHAR_T *mcu_sw_ver)
tuya_iot_mcu_dev_init @desc init tuya-sdk (wired version, [mcu] mode)
此接口对tuya_iot_dev_init进行了封装,实现了专门用于mcu通用对接的初始化接口。在mcu通用对接场景下,可以使用该接口,在收到mcu通过串口发送过来的product key和mcu版本信息,对设备进行初始化。
有线SOC初始化
IN CONST CHAR_T *sw_ver);
OPERATE_RET tuya_iot_soc_init_param(IN CONST TY_IOT_CBS_S *cbs, IN CONST CHAR_T *product_key, IN CONST CHAR_T *firmware_key, IN CONST CHAR_T *sw_ver)
tuya_iot_soc_init_param @desc init tuya-sdk (wired version, [soc] mode)
此接口对tuya_iot_dev_init进行了封装,实现了专门用于soc方案的初始化接口。在soc场景下,可以使用该接口,用本地保存的product key和固件版本信息,对设备进行初始化。
有线网络回调设置
OPERATE_RET tuya_iot_reg_get_nw_stat_cb_params(IN CONST GET_NW_STAT_CB nw_stat_cb, IN CONST INT_T min_interval_s)
tuya_iot_reg_get_nw_stat_cb_params @desc enable tuya-sdk network check. sdk will check the network ev...
VOID(* GET_NW_STAT_CB)(IN CONST GW_BASE_NW_STAT_T stat)
Handler when network state error happens(wired)
Definition: tuya_svc_wired.h:37
此接口注册网络状态变化回调函数。TuyaOS在网络状态变化的时候,调用此接口注册进来的nw_stat_cb,通知应用进行相应的处理。
示例代码
#define UUID "f2***************b0"
#define AUTHKEY "6P******************MX"
#define PRODUCT_KEY "U0****************Zy"
#define USER_SW_VER "1.0.0"
#define CFG_STORAGE_PATH "./tuya_db_files/"
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);
int main(int argc, char *argv[])
{
int rt = OPRT_OK;
TUYA_CALL_ERR_RETURN(tuya_iot_init(CFG_STORAGE_PATH, NULL));
iot_cbs.
gw_ug_cb = __soc_dev_rev_upgrade_info_cb;
while (1)
{
sleep(10);
ty_devos_monitor();
}
return 0;
}
tuya sdk ota firmware info
Definition: tuya_cloud_com_defs.h:584
Definition of product info(wired)
Definition: tuya_svc_wired.h:27
Definition of DP query
Definition: tuya_cloud_com_defs.h:497
GW_RESET_IFM_CB gw_reset_cb
Definition: tuya_cloud_com_defs.h:732
DEV_RAW_DP_CMD_CB dev_raw_dp_cb
Definition: tuya_cloud_com_defs.h:736
DEV_DP_QUERY_CB dev_dp_query_cb
Definition: tuya_cloud_com_defs.h:738
DEV_OBJ_DP_CMD_CB dev_obj_dp_cb
Definition: tuya_cloud_com_defs.h:734
GW_STATUS_CHANGED_CB gw_status_cb
Definition: tuya_cloud_com_defs.h:728
GW_UG_INFORM_CB gw_ug_cb
Definition: tuya_cloud_com_defs.h:730
Definition of recved structured dp
Definition: tuya_cloud_com_defs.h:459
Definition of recved raw dp
Definition: tuya_cloud_com_defs.h:477
the event dispatch raw data
Definition: base_event.h:50
OPERATE_RET tuya_iot_set_gw_prod_info(IN CONST GW_PROD_INFO_S *prod_info)
tuya_iot_set_gw_prod_info @desc set tuya-sdk product info (wired version)