更新时间:2023-12-19 08:47:29下载pdf
Tuya Wi-Fi Flexible Fast Control(FFC) 是一种 Wi-Fi 类设备无需接入路由器,就可以实现设备间通信的涂鸦自研技术,非常适用于遥控器类产品与被控设备之间的通讯。本文主要描述 TuyaOS 开发框架提供的、作为 被控设备 支持的功能。
遥控器分为 本地 和 在线 两类。
支持与遥控器绑定,最多可以绑定 5 个遥控器。
支持接收遥控器的控制指令。
支持与云端同步绑定的遥控器信息。
支持通过 App 解绑在线遥控器。
目前的解绑方案都是单向解绑,遥控器和被控设备之间没有同步步骤。
由于每个模组上的资源不一样,并不会打开所有功能,您需要检查 tuya_iot_config.h
,确认如下宏定义是否已经定义:
#define ENABLE_WIFI_FFC 1
#define TUYA_WIFI_FFC_SLAVER 1 /*作为被控设备*/
ffc_app.h
typedef enum {
FFC_INIT_STATE = 0,
FFC_CONTROL_STATE,
FFC_BINDING_BEGIN_STATE,
FFC_BINDING_SUCCESS_STATE,
FFC_BINDING_FINSH_STATE,
} ffc_cb_state_t;
typedef int (*ffc_status_cb)(ffc_cb_state_t state);
typedef int (*ffc_recv_cb)(uint8_t *data_cmd, uint16_t data_len);
/**
* @brief ffc init function,must called first
*
* @param[in] role: 遥控器或者被控设备
* @param[in] status_cb: user status callback
* @param[in] recv_cb: user received callback
*
* @return OPRT_OK on success. Others error, please refer to tuya_error_code.h
*
*/
int tuya_iot_wifi_ffc_init(uint8_t role, ffc_status_cb *status_cb, ffc_recv_cb *recv_cb);
绑定配对有窗口期,您可通过接口参数传入设置窗口期时长。在窗口期以外,设备不会发送任何和配对绑定相关的指令和应答。
/**
* @brief ffc bind function
*
* @param[in] timeout_s time out
*
* @return OPRT_OK on success. Others error, please refer to tuya_error_code.h
*
*/
int tuya_iot_wifi_ffc_bind(uint16_t timeout_s);
关于示例代码,参考框架内自带的 TuyaOS 示例集合 中的 service_ffc_slaver
。
当被控设备绑定 5 个以上遥控器时,遵守以下覆盖逻辑:
当绑定的 5 个遥控器都是在线遥控器,遵守不覆盖的原则。即绑定第 6 个遥控器时会失败。
当绑定的 5 个遥控器都是本地遥控器,遵守循环覆盖的原则。即绑定第 6 个遥控器时会覆盖第 1 个遥控器,绑定第 7 个时,会覆盖第 2 个,以此类推。
如果第 2 个遥控器被解绑了,此时绑定第 6 个遥控器时会覆盖第 1 个遥控器,而不是覆盖被解绑的第 2 个遥控器。
当绑定的 5 个遥控器是在线和本地混合的,遵守循环覆盖本地遥控器的原则。即绑定第 6 个遥控器时,会覆盖顺序最靠前的本地遥控器。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈