Tuyaos 联网单品开发方式DP点需要开发者在SDK中解析,步骤如下:
1、注册DP数据下发回调函数
Tuya OS将DP(功能点)点分为object和RAW两类,除了RAW类型都会进入object类型回调中
- dev_obj_dp_cb:通知开发者有 obj 类型 DP 指令下发。
- dev_raw_dp_cb:通知开发者有 raw 类型 DP 指令下发。
对象类型(Object)
布尔型:bool
非真即假的二值型变量。例如开关功能,开/关。
数值型:value
适用于可线性调节类型的数据。例如温度调节,温度范围 20-40℃。
枚举型:enum
自定义的有限集合值。例如工作档位,低档/中档/高档。
故障型:bitmap
用于多状态的显示,一般是专门用于显示和统计故障的功能。
字符型:string
以字符串形式传输的功能,一般用于较复杂功能,最大 255 个字节。
透传类型(Raw)
以 Hex 格式(十六进制)传输的功能,一般用于较复杂功能。
2、处理DP数据
DP点的数据结构如下:
typedefstruct {
/** dp id */
BYTE_T dpid;
/** dp type, see DP_PROP_TP_E */
DP_PROP_TP_E type;
/** dp value, see TY_OBJ_DP_VALUE_U */
TY_OBJ_DP_VALUE_U value;
/** dp happen time. if 0, mean now */
UINT_T time_stamp;
} TY_OBJ_DP_S;
其中value又将数据分为5中类型,分别对应value类型,枚举类型,string类型,布尔类型和bitmap(故障)类型。
不同的搭配数据取对应的数据类型即可,tuyaos_demo_quickstart已经做出了示例。