导读:本文先介绍消息透传,再介绍如何使用机智云设备接入SDK来进行APP与设备之间的数据透传。在APP和MCU之间,有两种数据透传方式: 利用“扩展类型”数据点进行透传;不定义数据点直接进行数据透传,即纯透传。 目前的消息推送方式主要有两种:通知和透传。 透传消息主要有如下几个方面的特点: 整个透传消息的流程如下:根据个推提供的API接口或在个推开发者平台上推送透传消息,个推服务端接收到推送的消息后,不做任何处理,直接发送给目标用户。当客户端SDK接收到透传消息后,以广播方式发送给客户端,客户端在配置的第三方BroadReceiver里接收到透传消息后进行处理。 透传消息的消息体,可以根据不同的需求传递不同的参数或格式。如传递一个简单的字符串,或传递一个Json字符串,里面根据需求传递需要的字段。 用户无感知的透传,如:更新相关信息,在主界面中相关栏位用红点标识进行弱提醒,推送一条命令用来检测用户是否有登录等。通知栏消息虽然方便的提醒用户,但也在一定程度上给用户带来了打扰,用户无感知的消息推送有时效果会更好。 因透传消息可以自己处理成通知栏内容展示,所以通知栏的样式也可以根据需求来做对应的改变。在Android 4.4及以上的系统,通知栏可以是样式丰富的通知栏,放入图片和视频等;可以展示普通的通知,也可以展示多样化的通知。 下面,我将介绍如何使用机智云设备接入SDK来进行APP与设备之间的数据透传。在APP和MCU之间,有两种数据透传方式:
扩展类型数据点透传1.定义数据点 在机智云产品管理中的数据点中定义一个拓展类型的数据点,如上图所示: 定义数据长度为60个byte(透传情况下,数据长度暂时支持900字节内数据传输)。 设备MCU按照数据点的定义格式上报透传数据,在完成新产品的定义后,每个新产品都有相应的串口通信协议文档,文档下载路径如下图所示: 在串口通信协议文档文档的4.9部分则有MCU上报数据的格式,如下图: 图中的dev_status(60B)即为需要透传的数据。 APP端接收到MCU上报数据的回调接口:didReceiveData,判断result为GizWifiErrorCode.GIZ_SDK_SUCCESS,则接收到的数据可能为普通数据点或者扩展数据点。 4.APP接收数据代码示例Andriod接收到MCU上报拓展数据类型代码示例:
iOS接收到MCU上报拓展数据类型代码示例:
5.设备上报数据案例案例:根据数据点上报格式上报数据: FF FF 00 42 05 00 00 00 04 01 02 03 04 05 06 07 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 注意定义的扩展数据类型为60个字节,因此上报数据的时候也一定要保证上报命令中“设备状态”字节数为60个字节,否则APP端将不会收到数据。多余的数据可以进行补零操作。 APP端接收到的dataMap字典中有一个”kuozhan”的key,对应的值即为透传的数据。 6.APP下发数据代码示例APP在GizWifiDevice类的write接口中,按照数据点定义发送扩展数据。 Andriod下发拓展数据类型命令代码示例:
iOS下发拓展数据类型命令代码示例:
上述代码中,input1与input2的透传结果是不一样的,input1中定义的是十六进制的数值,input2中则是十进制的数值。如果使用input1中0x11的值下发给设备,那么设备将收到0x11的十六进制值,如果使用input2中11的值下发给设备,那么设备收到将是0x0b(十进制11对应十六进制b)。使用input1下发设备,MCU收到的数据为: FF FF 00 43 03 45 00 00 01 01 11 22 33 44 55 66 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 无数据点透传1.设备上报数据协议说明MCU上报数据的格式如下表所示,包长度(len)是指从命令开始一直到校验和的字节长度(包括命令和校验和)。dev_status是需要透传数据,可以设置任意长度,但是暂时支持900B内传输。 如设备上报指令:FF FF 00 0D 05 00 00 00 06 11 22 33 44 55 66 77 F4 ;那么透传的数据为11 22 33 44 55 66 77 2.SDK回调接口说明APP端接收到MCU上报数据的回调接口: didReceiveData,判断result为GizWifiErrorCode.GIZ_SDK_SUCCESS,则表示接收到数据成功,回传参数的dataMap 中的“binary”字段的值为透传数据。 3.APP接收数据代码示例 |
版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )