最新精品久久,欧美亚洲福利,表妹免费在线观看,久久国产二区,国产三级电影网站,日本特黄久久,成人a在线视频免费观看

AbleCloud物聯(lián)網(wǎng)云平臺(tái)開(kāi)發(fā)指導(dǎo)Android篇3

來(lái)源:網(wǎng)絡(luò)

點(diǎn)擊:1218

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: AbleCloud,物聯(lián)網(wǎng),云平臺(tái)

    設(shè)備控制

    下面以開(kāi)關(guān)燈為例,通過(guò)二進(jìn)制、json兩種格式簡(jiǎn)要介紹與安卓設(shè)備通訊的例子。實(shí)際開(kāi)發(fā)請(qǐng)只選擇以下其中一種消息格式。

    注意:msgCode從[64,200)范圍代表控制查詢及響應(yīng),[200,255]范圍代表消息主動(dòng)上報(bào),其他范圍為AbleCloud內(nèi)部使用,不允許重復(fù)定義。

    1 使用二進(jìn)制消息格式進(jìn)行通訊

    1.1 設(shè)備控制

    以開(kāi)關(guān)燈為例,協(xié)議如下:

    //請(qǐng)求數(shù)據(jù)包

    { 68 :[

    //關(guān)燈(二進(jìn)制流,由廠商自己解析)

    { 0 , 0 , 0 , 0 },

    //開(kāi)燈(二進(jìn)制流,由廠商自己解析)

    { 1 , 0 , 0 , 0 }

    ]}

    //響應(yīng)數(shù)據(jù)包

    { 102 :[

    //失?。ǘM(jìn)制流,由廠商自己解析)

    { 0 , 0 , 0 , 0 },

    //成功(二進(jìn)制流,由廠商自己解析)

    { 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:

    //請(qǐng)求消息體

    byte[] payload = reqMsg.getPayload();

    if (payload[0] == ON) {

    if (Light.turnLightOn()) {

    respMsg.setPayload(new byte[]{1, 0, 0, 0}); //開(kāi)燈成功

    } else

    respMsg.setPayload(new byte[]{0, 0, 0, 0}); //開(kāi)燈失敗

    } else {

    if (Light.turnLightOff()) {

    respMsg.setPayload(new byte[]{1, 0, 0, 0}); //關(guān)燈成功

    } else

    respMsg.setPayload(new byte[]{0, 0, 0, 0}); //關(guān)燈失敗

    respMsg.setMsgCode(CODE_SWITCH_RESP);

    break;

    });

    2 使用JSON消息格式進(jìn)行通訊

    2.1 設(shè)備控制

    以開(kāi)關(guān)燈為例,協(xié)議如下:

    //請(qǐng)求數(shù)據(jù)包

    { 70 :[

    //關(guān)燈

    {"switch", 0}

    //開(kāi)燈

    {"switch", 1}

    ]}

    //響應(yīng)數(shù)據(jù)包--JSON格式的resp不需要設(shè)置msgCode

    //失敗

    {"result", false},

    //成功

    {"result", true}

    ]}

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

    private static final int CODE_JSON = 70;

    private static final int OFF = 0;

    private static final int ON = 1;

    AC.handleMsg(new ACMsgHandler() {

    @Override

    public void handleMsg(ACDeviceMsg req, ACDeviceMsg resp) {

    //JSON格式的resp不需要設(shè)置msgCode

    switch (reqMsg.getMsgCode()) {

    case CODE_JSON:

    //請(qǐng)求消息體

    JSONObject req = new JSONObject(reqMsg.getJsonPayload());

    //請(qǐng)求操作類型,關(guān)燈或開(kāi)燈

    int value = req.getInt("switch");

    //響應(yīng)消息體

    JSONObject resp = new JSONObject();

    if (value == ON) {

    if (Light.turnLightOn()) {

    resp.put("result", true);

    respMsg.setJsonPayload(resp.toString()); //開(kāi)燈成功

    } else {

    resp.put("result", false);

    respMsg.setJsonPayload(resp.toString()); //開(kāi)燈失敗

    } else if (value == OFF) {

    if (Light.turnLightOff()) {

    resp.put("result", true);

    respMsg.setJsonPayload(resp.toString()); //關(guān)燈成功

    } else {

    resp.put("result", false);

    respMsg.setJsonPayload(resp.toString()); //關(guān)燈失敗

    break;

    });


    (審核編輯: 林靜)

    聲明:除特別說(shuō)明之外,新聞內(nèi)容及圖片均來(lái)自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請(qǐng)聯(lián)系我們刪除。