如何开发本地倒计时功能

发布时间:2024-11-18 17:31

如何设计多功能沙发床 #生活技巧# #收纳整理技巧# #家居收纳软装#

背景信息

“本地倒计时”是指,由App页面向设备端下发“开始倒计时”的任务后,设备端开始根据本地时钟,执行倒计时任务。

要实现本地倒计时的效果,设备端和APP端需要按照本文推荐的方式进行实现。

设备端:按照平台标准数据格式,实现倒计时任务的增删改。

APP端:在云智能App中,或平台给自定义App提供的设备界面中,如“灯”“开关”,可以直接使用倒计时功能。

与单路倒计时不同的是,多路倒计时可以同时对多个设备上的布尔值设定本地倒计时任务,如多路插座。

操作步骤

在控制台处,勾选本地定时功能,并在功能参数中设置本地定时的最大条数(与设备端的存储、性能有关,最大为13个)。

说明

平台会在功能定义中自动插入一个设备端上定时的标准功能(DeviceTimer),并支持多个定时任务。

基于设备端SDK开发时,需确认Products/example/smart_outlet/smart_outlet.mk文件中以下宏开关的打开与关闭状态。

GLOBAL_CFLAGS += -DENABLE_COUNTDOWN_LIST //老版本本地倒计时的宏,默认为关闭状态

数据结构说明如下。

功能名称:倒计时列表

标识符:CountDownList

类型:JSON

CountDownList: { Target: "PowerSwitch"(string,当次设置操作指定的布尔值的identifier), Contents: "PowerSwitch-1-1-123-1535644800000,LightSwitch-0-1-456-1535644800000"(string,该设备的所有倒计时任务字符串,具体格式说明见下方) XXX1:0(bool,该产品已有的布尔类型标准属性), XXX2:0(bool,该产品已有的布尔类型标准属性) }

CountDownList是可选的标准属性,其中Target和Contents为CountDownList的必选属性二者都是string类型(最大长度为2048字节)。

XXX1和XXX2为当前产品已有的标准布尔属性,可以由开发者随意增删,默认值为0。

说明

功能定义里如果含有CountDownList,则CountDownList里除了Target和Contents外,还需要含有其他的布尔属性,否则运行会报错。

参数名称

类型

属性名

是否必选

长度

解释

Target

string

操作对象

2048

当次操作的布尔值类型的标准属性,用于表示倒计时的地点位置。

Contents

string

倒计时命令

2048

当同时设置多个布尔值属性的倒计时任务,且当前没有数组类型的数据,需采用该参数来存放设备的所有倒计时任务。

功能设计。

设计倒计时功能。

如果当前产品的功能定义里有CountDownList属性,那么此时走新的倒计时列表逻辑,在当前组件展示倒计时列表相关界面。

如果当前产品的功能定义里没有CountDownList属性,但是有CountDown属性,那么则走以前的倒计时插件逻辑。

撤销某个倒计时任务。

App删除Contents字段里对应identifier的任务,同时设置Target为这个identifier,上报云端,下发给设备端。

设备端收到新的CountDownList属性,发现Target指定了一个identifier,但是Contents里却没有这个identifier,那么删除正在执行的identifier对应的倒计时任务,不影响其余的倒计时任务。

场景举例如下。

说明

整个插件和设备端上报云端的过程中,CountDownList里的XXX1和XXX2等布尔属性可以设置为任意符合布尔属性的值。

单击倒计时按钮。

检查TSL,发现CountDownList里还有额外的XXX1,XXX2属性。

倒计时列表弹层展示XXX1、XXX2的中文名称列表。

选择其中一个属性,例如PowerSwitch,展示设置时间和动作界面,设定好时间(1000s)和动作(打开)。

设置Target: "PowerSwitch"和Contents: "PowerSwitch-1-1-1000-1535644800000",下发给云端。

设备端收到CountDown后,解析Contents和Target内容,设置实际的定时任务。

设置了第二个属性XXX2。Contents为:PowerSwitch-1-1-1000-1535644800000,XXX2-0-1-2000-1535644800000,Target为:XXX2。

1000s到了之后,第一个PowerSwitch倒计时任务结束,设备端删除Contents里PowerSwitch这一条任务,同时设置Target为PowerSwitch,将整个CnountDownList属性上报到云端,插件侧查询CountDown属性,发现Contents里没有Target指定的布尔属性,代表PowerSwitch倒计时任务已执行,进而提示PowerSwitch倒计时任务执行完毕。

网址:如何开发本地倒计时功能 https://www.yuejiaxmz.com/news/view/122763

相关内容

全屏秒表倒计时小程序:功能与实用性解析
本地生活APP开发本地生活APP功能
软件开发功能清单如何写
如何开启iPhone地震预警功能
时间管理倒计时
做网站公司开发本地生活APP需要哪些功能
本地生活软件开发
本地生活app软件开发
本地生活APP开发
软件开发如何做到节能

随便看看