备案 控制台
文档
产品文档

本地倒计时功能开发实践

更新时间:
一键部署
我的收藏

本文提供了一个插座本地倒计时功能的开发案例,开发者可以参考本文,实现任意设备的本地倒计时功能。

背景信息

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

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

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

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

倒计时

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

多路倒计时

操作步骤

  1. 在控制台人机交互 > 自动化和定时处,勾选本地定时功能,并在功能参数中设置本地定时的最大条数(与设备端的存储、性能有关,最大为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是可选的标准属性,其中TargetContentsCountDownList的必选属性二者都是string类型(最大长度为2048字节)。

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

    说明

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

    参数名称

    类型

    属性名

    是否必选

    长度

    解释

    Target

    string

    操作对象

    2048

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

    Contents

    string

    倒计时命令

    2048

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

  2. 功能设计。

    • 设计倒计时功能。

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

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

    • 撤销某个倒计时任务。

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

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

    场景举例如下。

    说明

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

    1. 单击倒计时按钮。

    2. 检查TSL,发现CountDownList里还有额外的XXX1XXX2属性。

    3. 倒计时列表弹层展示XXX1XXX2的中文名称列表。

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

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

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

    7. 设置了第二个属性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倒计时任务执行完毕。

上一篇:本地通信开发实践 下一篇:第三方蓝牙通信插件适配指南
  • 本页导读 (0)

深圳SEO优化公司惠州英文网站建设同乐外贸网站制作坪山网络营销深圳建设网站松岗外贸网站建设双龙网页设计爱联网站制作设计荷坳建站光明网站设计平湖建站丹竹头建站丹竹头网站优化荷坳建设网站福田标王塘坑关键词按天收费南山至尊标王惠州百度网站优化排名西乡SEO按天扣费爱联SEO按天扣费沙井seo网站优化坪地网站推广南山网站推广东莞关键词排名包年推广石岩SEO按天计费松岗英文网站建设永湖设计网站广州百搜标王盐田网络营销福田网站改版松岗外贸网站建设歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化