收藏官网首页
查看: 4961|回复: 0

iOS SDK 2.0 FAQ

563

主题

1222

帖子

8097

积分

版主

Rank: 7Rank: 7Rank: 7

积分
8097
跳转到指定楼层
楼主
发表于 2016-7-7 16:45:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
1.扩展数据点透传收发:

1.1 定义数据点:

机智云产品管理中的数据点中定义一个拓展类型的数据点,如图所示:定义数据长度为60个byte(透传情况下,数据长度暂时支持900字节内数据传输)
1.2 设备数据上报:
设备mcu按照数据点的定义格式上传即可,在完成新产品的定义后,每个新产品都有相应的串口通信协议文档,文档下载路径:机智云官网 –>硬件接入 ->设备列表-> 新产品 ->产品开发资源 ->《XXX-机智云接入串口通信协议文档》
在串口通信协议文档文档的4.9部分则有MCU上报数据的格式,如下图:

   图中的dev_status(60B)即为需要透传的数据
1.3 APP回调接口说明
APP端接收到MCU上报数据的回调接口:didReceiveData,判断result为GizWifiErrorCode.GIZ_SDK_SUCCESS,则接收到的数据可能为普通数据点或者扩展数据点。
Andriod接收到MCU上报拓展数据类型代码示例:
1
2
3
4
5
6
7
8
9
10
- (void)deviceGizWifiDevice *)device didReceiveDataNSError *)result
dataNSDictionary *)dataMap withSNNSNumber *)sn
{   
    if (result.code == GIZ_SDK_SUCCESS)
    {    NSLog(@"接收到数据");
         NSDictionary *data = dataMap[@"data"];
         NSString *kuozhan = data[@"kuozhan"];
         NSLog(@"dataMap = %@", dataMap);
         NSLog(@"kuozhan = %@", kuozhan);
     }}

案例:根据数据点上报格式上报数据:
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,对应的值即为透传的数据。
1
2
3
4
5
6
7
8
9
dataMap = {
    alerts =     {
    };
    data =     {
            kuozhan = <01020304 05060708 09000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000>;
    };
    faults =     {
    };
}

1.4 APP下发
APP在GizWifiDevice类的write接口中,按照数据点定义发送扩展数据。
iOS下发拓展数据类型命令代码示例:
1
2
3
4
5
char input1[7] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77};
// char input2[7] = {11, 22, 33, 44, 55, 66, 77};
NSData* data = [NSData dataWithBytes:input1 length:sizeof(input1)];
NSDictionary *request = @{@"kuozhan": data};
[self.device write:request withSN:44];


上述代码中,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、机智云QQ群: 287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-kit
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表