日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

開(kāi)發(fā)設(shè)備端本地定時(shí)功能

更新時(shí)間:

本地定時(shí)相對(duì)云端定時(shí)而言,是指當(dāng)設(shè)備離線(xiàn)時(shí),也能自動(dòng)執(zhí)行定時(shí)任務(wù)。本文提供了一個(gè)插座本地定時(shí)功能的開(kāi)發(fā)示例,您可以根據(jù)本文實(shí)現(xiàn)任意設(shè)備的本地定時(shí)功能。

一、配置控制臺(tái)參數(shù)

  1. 登錄生活物聯(lián)網(wǎng)控制臺(tái)
  2. 創(chuàng)建一個(gè)項(xiàng)目。更多操作,請(qǐng)參見(jiàn)創(chuàng)建項(xiàng)目

  3. 創(chuàng)建產(chǎn)品并定義功能。更多操作,請(qǐng)參見(jiàn)創(chuàng)建產(chǎn)品并定義功能

  4. 在產(chǎn)品的人機(jī)交互 > 自動(dòng)化和定時(shí)頁(yè)面,勾選本地定時(shí)的功能,并在功能參數(shù)中設(shè)置本地定時(shí)的最大條數(shù)(與設(shè)備端的存儲(chǔ)、性能有關(guān),默認(rèn)為13)。

    ds1

    說(shuō)明

    在此處勾選本地定時(shí)后,會(huì)在產(chǎn)品功能定義頁(yè)面中自動(dòng)添加設(shè)備端上定時(shí)(DeviceTimer)屬性。

  5. 單擊保存結(jié)束配置。

二、開(kāi)發(fā)設(shè)備端的本地定時(shí)功能

  1. 開(kāi)發(fā)定時(shí)功能。

    在控制臺(tái)上定義DeviceTimer的功能屬性后,設(shè)備端可以接收從云端下來(lái)的property set消息,從而獲取定時(shí)任務(wù)的具體信息。詳細(xì)開(kāi)發(fā)步驟如下。

    說(shuō)明

    新版本設(shè)備端SDK默認(rèn)打開(kāi)DeviceTimer的宏開(kāi)關(guān),老版本設(shè)備端SDK需自行打開(kāi)DeviceTimer的宏開(kāi)關(guān)。

    1. 獲取V1.3.0生活物聯(lián)網(wǎng)平臺(tái)SDK。更多操作,請(qǐng)參見(jiàn)獲取SDK

      • 智能插座實(shí)例代碼,位于Products/example/smart_outlet/smart_outlet_main.c

      • 定時(shí)功能的開(kāi)關(guān)配置代碼,位于Products/example/smart_outlet/smart_outlet.mk

    2. 基于設(shè)備端SDK開(kāi)發(fā)定時(shí)功能。

      確認(rèn)以下宏開(kāi)關(guān)為打開(kāi)狀態(tài)。

      GLOBAL_CFLAGS += -DENABLE_LOCALTIMER  //老版本本地定時(shí)的宏,默認(rèn)為關(guān)閉狀態(tài)
    3. 更改build.sh中的默認(rèn)變量參數(shù)(如下所示,更多介紹請(qǐng)參見(jiàn)README.md)。

      產(chǎn)品類(lèi)型:default_type="example"
      應(yīng)用名稱(chēng):default_app="smart_outlet"
      模組型號(hào):default_board="uno-91h"  //根據(jù)實(shí)際型號(hào)配置
      連云區(qū)域:default_region=MAINLAND  //連接國(guó)外為SINGAPORE
      連云環(huán)境:default_env=ONLINE
      Debug log:default_debug=1   //0:release   1:debug
      其他參數(shù):default_args="" //可配置其他編譯參數(shù)
    4. 執(zhí)行./build.sh編譯生成固件。

      編譯成功后,即可獲得燒錄所需的固件。

    5. 燒錄固件。

      各模組的燒錄方式略有差異,請(qǐng)向模組廠(chǎng)商獲取詳細(xì)燒錄方法。

  2. 調(diào)試設(shè)備。

    設(shè)備收到定時(shí)任務(wù)的屬性時(shí),在user_property_set_event_handler中查看日志。

    static int user_property_set_event_handler(const int devid, const char *request, const int request_len)
    {
        int res = 0;
        user_example_ctx_t *user_example_ctx = user_example_get_ctx();
        cJSON *root = NULL, *item = NULL;
    
        LOG_TRACE("Property Set Received, Devid: %d, Request: %s", devid, request);
        if ((root = cJSON_Parse(request)) == NULL) {
            LOG_TRACE("property set payload is not JSON format");
            return -1;
        }
    
        if ((item = cJSON_GetObjectItem(root, "PowerSwitch")) != NULL && cJSON_IsNumber(item)) {
            if (item->valueint == 1) {
                product_set_switch(ON);
            } else {
                product_set_switch(OFF);
            }
        } else {
    #ifdef AOS_TIMER_SERVICE
            timer_service_property_set(request);
    #endif
        }
        cJSON_Delete(root);
        res = IOT_Linkkit_Report(user_example_ctx->master_devid, ITM_MSG_POST_PROPERTY,
                                 (unsigned char *)request, request_len);
        LOG_TRACE("Post Property Message ID: %d", res);
    
        return 0;
    }

    設(shè)備端接收到的示例如下。

    {
      "LocalTimer": [
        {
          "PowerSwitch": 1,
          "Timer": "5 4 1,2,3",
          "TimezoneOffset": 43200,
          "Enable": 1,
          "Targets": "PowerSwitch",
          "IsValid": 1
        },
        {
          "PowerSwitch": 0,
          "Timer": "",
          "TimezoneOffset": 43200,
          "Enable": 0,
          "Targets": "",
          "IsValid": 0
        },
        {
          "PowerSwitch": 0,
          "Timer": "",
          "TimezoneOffset": 43200,
          "Enable": 0,
          "Targets": "",
          "IsValid": 0
        },
        {
          "PowerSwitch": 0,
          "Timer": "",
          "TimezoneOffset": 43200,
          "Enable": 0,
          "Targets": "",
          "IsValid": 0
        },
        {
          "PowerSwitch": 0,
          "Timer": "",
          "TimezoneOffset": 43200,
          "Enable": 0,
          "Targets": "",
          "IsValid": 0
        }
      ]
    }

    以上示例為JSON數(shù)組格式結(jié)構(gòu),LocalTimer中共有5條定時(shí)記錄(在人機(jī)交互 > 自動(dòng)化和定時(shí)頁(yè)面的功能參數(shù)中設(shè)置的值)。每條數(shù)組中的每個(gè)JSON為一個(gè)定時(shí)任務(wù),參數(shù)解釋如下。

    標(biāo)識(shí)符

    參數(shù)名稱(chēng)

    數(shù)值類(lèi)型

    是否必選

    參數(shù)描述

    PowerSwitch

    電源開(kāi)關(guān)

    布爾

    產(chǎn)品功能定義頁(yè)面的標(biāo)準(zhǔn)功能

    Timer

    定時(shí)時(shí)間

    字符串

    用于表示定時(shí)時(shí)間,使用cron格式(參見(jiàn)開(kāi)發(fā)App端的本地定時(shí)功能中的通用說(shuō)明)

    Enable

    啟用

    布爾

    定義該條定時(shí)任務(wù)是否啟用

    IsValid

    可執(zhí)行

    布爾

    定義該條定時(shí)任務(wù)是否有效,設(shè)備端會(huì)將所有數(shù)據(jù)傳給App端,App端根據(jù)該字段判定是否給用戶(hù)展示該條定時(shí)任務(wù)

    Targets

    定時(shí)動(dòng)作

    字符串

    表示當(dāng)次設(shè)置的定時(shí)任務(wù)的具體動(dòng)作,添加Targets屬性可以設(shè)置任意數(shù)量的動(dòng)作,最大值為:2048

    TimezoneOffset

    時(shí)差

    整數(shù)

    表示本地事件與UTC時(shí)間的差值

    • 單位:秒

    • 取值范圍為:-43200到50400

    • 步長(zhǎng):3600

三、開(kāi)發(fā)App定時(shí)功能

生活物聯(lián)網(wǎng)平臺(tái)提供App基于Native開(kāi)發(fā)定時(shí)功能(靜態(tài)方式) 的開(kāi)發(fā)方式。更多信息,請(qǐng)參見(jiàn)開(kāi)發(fā)App端的本地定時(shí)功能