更新时间:2024-07-30 03:10:10下载pdf
本文介绍本地定时功能。
相对于云定时,实现蓝牙子设备本地定时,通过蓝牙通道设置本地定时功能,可离网使用。
能力特性
功能点(Data point,DP)作为执行条件
支持多种定时类型,包括普通、随机、循环、倒计时
定时精度取决于本地时钟精度
App 连接蓝牙设备后,下发 查询设备信息 指令,设备回复该指令时,增加支持蓝牙本地定时能力的新字段。
面板进入定时界面,根据蓝牙定时能力值,判断是否需要开始同步设备数据,读取定时信息。
App 获取设备定时个数和单次传输的最大定时条数 N(由设备决定)。
App 按照单次最多 N 条数据,分批次读取设备定时数据,设备返回定时 ID 和 CRC32,App 计算对比是否和云端一致,不一致则向设备同步差异。
typedef struct {
uint16_t type;
uint32_t data_len;
uint8_t* p_data;
} tuya_ble_app_passthrough_data_t;
type
:业务透传的数据类型,如果是本地定时,该值为固定的 0x0000
。
data_len
:本地定时数据长度。
p_data
:本地定时数据。
typedef struct {
uint8_t type;
uint16_t len;
uint8_t year; // 低两位
uint8_t month;
uint8_t day;
uint8_t hour;
uint8_t minute;
uint8_t loop;
uint32_t timer_id;
uint8_t* dp_data;
uint32_t crc32;
} tal_local_timer_info_t;
type
:本地定时类型。
0x01
:普通定时0x02
:随机定时(面板暂未支持)0x03
:循环定时(面板暂未支持)0x04
:倒计时(面板暂未支持)len
:本条数据长度。
year
:年(低两位)。
month
:月。
day
:日。
hour
:小时。
minute
:分钟。
loop
:循环。
0x00
:周六0x01
:周五0x02
:周四0x03
:周三0x04
:周二0x05
:周一0x06
:周日0x07
:保留timer_id
:定时 ID。
dp_data
:DP,支持多组。
dp_id
:1 个字节,在开发平台注册的 dp_id
序号。
dp_type
:1 个字节。
dp_len
:1 个字节,数据长度,最大 255。
dp_data
:数据,dp_len
个字节。
crc32
:CRC32。
接口说明
uint32_t tal_local_timer_init(void);
接口说明
uint32_t tal_local_timer_handler(tuya_ble_app_passthrough_data_t* data);
参数说明
参数 | 说明 |
---|---|
data | 详见上文中对 tuya_ble_app_passthrough_data_t 的解析。 |
用于处理本地定时的事件,此处通过发送串口指令到上位机模拟事件处理过程,您可以在这里实现自己的代码逻辑。
接口说明
void tal_local_timer_parser_event(void);
为了方便演示存储定时数据的功能,此处临时调用了 tbs_storage_ib.c
实现的存储功能接口,推荐您使用自己的存储逻辑替代存储相关接口。
接口说明
uint32_t tal_local_timer_storage_init(void);
用于存储定时数据。
接口说明
uint32_t tal_local_timer_info_write(tal_local_timer_info_t* data);
参数说明
参数 | 说明 |
---|---|
data | 详见上文中对 tal_local_timer_info_t 的解析。 |
用于删除定时数据。
接口说明
uint32_t tal_local_timer_info_delete(uint32_t timer_id);
参数说明
参数 | 说明 |
---|---|
timer_id | 本地定时编号 |
用于读取定时数据对应的 DP 事件。
接口说明
uint32_t tal_local_timer_dp_item_read(uint8_t id, uint8_t* buf, uint32_t size);
参数说明
参数 | 说明 |
---|---|
id | 存储 ID |
buf | DP 数据 |
size | DP 数据的长度 |
用于清空定时数据。
接口说明
uint32_t tal_local_timer_info_delete_all(void);
接口说明
uint32_t tal_local_timer_get_num(void);
详细信息,参考 tuyaos_demo_local_timer
的实现。
tuyaos_demo_local_timer
。通过上位机(模拟实际产品)和手机 App 进行数据交互。
使用涂鸦智能 App 搜索并连接设备。
绑定成功。
单击 添加 按钮。
设置定时数据。
设置成功。
上位机显示的信息为:
等待到 19:08(刚刚设定的时间),事件成功执行。
上位机使用的相关问题,请访问 Logic 上位机使用指南。
在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 TuyaOS-蓝牙设备开发 版块进行沟通咨询。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈