侵权投诉
订阅
纠错
加入自媒体

AbleCloud物联网云平台开发指导Android篇3

2017-04-06 08:58
FlappyBird
关注

设备控制

下面以开关灯为例,通过二进制、json两种格式简要介绍与安卓设备通讯的例子。实际开发请只选择以下其中一种消息格式。

注意:msgCode从[64,200)范围代表控制查询及响应,[200,255]范围代表消息主动上报,其他范围为AbleCloud内部使用,不允许重复定义。

1 使用二进制消息格式进行通讯

1.1 设备控制

以开关灯为例,协议如下:

//请求数据包

{ 68 :[

//关灯(二进制流,由厂商自己解析)

{ 0 , 0 , 0 , 0 },

//开灯(二进制流,由厂商自己解析)

{ 1 , 0 , 0 , 0 }

]}

//响应数据包

{ 102 :[

//失败(二进制流,由厂商自己解析)

{ 0 , 0 , 0 , 0 },

//成功(二进制流,由厂商自己解析)

{ 1 , 0 , 0 , 0 }

]}

-------------------------------------

private static final int CODE_SWITCH_REQ = 68;

private static final int CODE_SWITCH_RESP = 102;

private static final int OFF = 0;

private static final int ON = 1;

AC.handleMsg(new ACMsgHandler() {

@Override

public void handleMsg(ACDeviceMsg req, ACDeviceMsg resp) {

switch (reqMsg.getMsgCode()) {

case CODE_SWITCH_REQ:

//请求消息体

byte[] payload = reqMsg.getPayload();

if (payload[0] == ON) {

if (Light.turnLightOn()) {

respMsg.setPayload(new byte[]{1, 0, 0, 0}); //开灯成功

} else

respMsg.setPayload(new byte[]{0, 0, 0, 0}); //开灯失败

} else {

if (Light.turnLightOff()) {

respMsg.setPayload(new byte[]{1, 0, 0, 0}); //关灯成功

} else

respMsg.setPayload(new byte[]{0, 0, 0, 0}); //关灯失败

respMsg.setMsgCode(CODE_SWITCH_RESP);

break;

});

1  2  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号