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

Python版本SDK

Link IoT Edge提供Python版本的SDK,名稱為lethingaccesssdk。本章為您介紹Python版本的SDK使用方法及相關SDK。

Python版本開源的SDK源碼請見開源的Python庫

安裝和使用

  1. 您可以通過如下命令來安裝SDK。
    pip3 install lethingaccesssdk
  2. 安裝完成后,您可以根據SDK接口進行驅動開發。
    重要 完成驅動開發后,直接運行會提示錯誤,必須通過物聯網平臺控制臺,將已開發的驅動部署到網關中方可執行。部署驅動到網關的操作請參考驅動開發。

    使用SDK開發驅動的示例代碼片段如下所示。

    # -*- coding: utf-8 -*-
    import logging
    import time
    import lethingaccesssdk
    from threading import Timer
    # Base on device, User need to implement the getProperties, setProperties and callService function.
    class Temperature_device(lethingaccesssdk.ThingCallback):
        def __init__(self):
            self.temperature = 41
            self.humidity = 80
        def getProperties(self, input_value):
            '''
            Get properties from the physical thing and return the result.
            :param input_value:
            :return:
            '''
            retDict = {
                "temperature": 41,
                "humidity": 80
            }
            return 0, retDict
        def setProperties(self, input_value):
            '''
            Set properties to the physical thing and return the result.
            :param input_value:
            :return:
            '''
            return 0, {}
        def callService(self, name, input_value):
            '''
            Call services on the physical thing and return the result.
            :param name:
            :param input_value:
            :return:
            '''
            return 0, {}
    def thing_behavior(client, device):
        while True:
            properties = {"temperature": device.temperature,
                          "humidity": device.humidity}
            client.reportProperties(properties)
            client.reportEvent("high_temperature", {"temperature": 41})
            time.sleep(2)
    try:
        thing_config = lethingaccesssdk.Config().getThingInfos()
        for config in thing_config:
            device = Temperature_device()
            client = lethingaccesssdk.ThingAccessClient(config)
            client.registerAndonline(device)
            t = Timer(2, thing_behavior, (client, device))
            t.start()
    except Exception as e:
        logging.error(e)
    # don't remove this function
    def handler(event, context):
        return 'hello world'

Config

驅動相關配置信息。

  • Config()

    基于當前驅動配置字符串構造新的Config對象。

  • getThingInfos()

    返回所有設備相關信息。

    返回值說明如下:

    返回設備用于連接Link IoT Edge的配置信息的封裝。

    表 1. 返回參數
    名稱類型描述
    ThingInfoList設備信息。
    表 2. ThingInfo參數說明
    名稱類型描述
    productKeyString產品唯一標識。
    deviceNameString設備名稱。
    customObject設備自定義配置。
  • getDriverInfo()

    返回驅動相關信息。

    返回值:
    dict

ThingCallback

首先根據真實設備,命名一個類(如Demo_device)繼承ThingCallback,然后在該類(Demo_device)中實現setProperties、getPropertiescallService三個函數。

  • setProperties

    設置具體設備屬性函數。

    表 3. 請求參數
    名稱類型描述
    propertiesDict設置屬性,取值格式為:
    {
        "property1": "value1", 
        "property2": "value2"
    }
    表 4. 返回參數
    名稱類型描述
    codeInteger若獲取成功則返回0,失敗則返回非0錯誤碼。
    outputDict數據內容自定義,例如:
    {
        "key1": xxx,
        "key2": yyy,
        ...
    }

    若無返回數據,則值為空{}。

  • getProperties

    獲取具體設備屬性的函數。

    表 5. 請求參數
    名稱類型描述
    keysList獲取屬性對應的名稱,取值格式為:
    ['key1', 'key2']
    表 6. 返回參數
    名稱類型描述
    codeInteger若獲取成功則返回0,失敗則返回非0錯誤碼。
    outputDict返回值,例如:
    {
        'property1': xxx,
        'property2': yyy,
        ..}.
    }
  • callService

    調用設備服務函數。

    表 7. 請求參數
    名稱類型描述
    nameString設備服務名稱。
    argsDict服務入參列表,取值格式為:
    {
        "key1": "value1", 
        "key2": "value2"
    }
    表 8. 返回參數
    名稱類型描述
    codeInteger若獲取成功則返回0,失敗則返回非0錯誤碼。
    outputDict數據內容自定義,例如:
    {
        "key1": xxx,
        "key2": yyy,
        ...
    }

    若無返回數據,則值為空{}。

ThingAccessClient(config)

設備接入客戶端,您可以通過該客戶端來主動上報設備屬性或事件,也可被動接受云端下發的指令。

表 9. 請求參數
名稱類型描述
configDict包括云端分配的ProductKey和deviceName。
例如,
{
    "productKey": "xxx",
    "deviceName": "yyy"
}
  • registerAndOnline(ThingCallback)

    將設備注冊到網關中并通知網關上線設備。設備需要注冊并上線后,設備端才能收到云端下發的指令或者發送數據到云端。

    表 10. 請求參數
    名稱類型描述
    ThingCallbackObject設備的callback對象。
  • reportProperties(properties)
    主動上報設備屬性。
    表 11. 請求參數
    名稱類型描述
    propertiesDict屬性中包含的屬性key與value,取值格式為:
    {
        "key1": "value1", 
        "key2": "value2"
    }
  • reportEvent(eventName, args)
    主動上報設備事件。
    表 12. 請求參數
    名稱類型描述
    eventNameString事件對應的名稱,與您在產品定義中創建事件的名稱一致。
    argsDict事件中包含的屬性key與value,取值格式為:
    {
        "key1": "value1", 
        "key2": "value2"
    }
  • getTsl()

    返回TSL字符串,數據格式與云端一致。

    返回值:
    TSL字符串
  • getTslExtInfo()

    返回TSL擴展信息字符串。

    返回值:
    TSL擴展信息字符串
  • online()

    通知網關設備上線,該接口一般在設備離線后再次上線時使用。

  • offline()

    通知網關設備已離線。

  • cleanup()

    資源回收接口,您可以使用該接口回收您的資源。

  • unregister()

    移除設備和網關的綁定關系。請謹慎使用該接口。

getConfig()

獲取驅動相關配置信息。

返回值為驅動配置信息字符串。