本地通信开发实践

更新时间:2019-05-24 14:47:02

1. 概述

1.1 背景

当APP和设备处于局域网环境中,未和外网连接,往往需要通过本地通信的方式,对设备进行控制和查询。阿里云IoT提供了一种本地通信方案,可以达到该目标。
设备端的Link Kit SDK中已内置本地通信功能(ALCS),这样集成Link Kit SDK的设备,即可使用本地通信能力。集成了ALCS client功能的android app、IOS app、边缘网关等终端都可以通过本地控制与芯片模组产品交互。

undefined

1.2 流程

1.2.1 APP端流程

undefined

第一次连接和认证阶段 APP 会和云端有一次数据交互来获取认证信息,连接认证成功之后会将认证数据保存在本地,后续的连接认证优先使用本地缓存的认证数据。

1.2.2 设备端流程

对于本地通信功能,设备端只需要使用IOT_RegisterCallback函数注册ITE_PROPERTY_GET事件,实现对应回调函数即可。

2. APP开发

2.1 IOS

iOS端开发依赖 IMSThingCapability.framework。其使用方法,请参见 设备模型 SDK

pod 'IMSThingCapability'

2.2 Android

安卓端开发请依赖 public-tmp-ext-boneplugin SDK 包。请参见 设备模型 SDK

undefined

版本号已最新发布的版本为准

3 设备端开发

对于本地通信功能,设备端只需要使用IOT_RegisterCallback函数注册ITE_PROPERTY_GET事件,实现对应回调函数即可。

接口说明

当该事件被触发时,用户收到的payload格式为本地通信请求的设备属性列表,以json格式描述:
如:["property1","property2","property3"]
当用户回复该本地通信请求时,需按如下格式回复:
{"property1":...,"property2":...,"property3":...}
例:
property1为int型,property2为字符串类型,property3为复合类型,包含int型的item1和字符串类型的item2:
{"property1":23,"property2":"hello,world","property3":{"item1":23,"item2":"hello"}}

具体代码可参考SDK Example中的user_property_get_event_handler回调函数的实现:

SDK2.3.0 linkkit_example_solo.c

results matching ""

    No results matching ""