閱讀220 返回首頁    go 人物


發送消息給設備並得到設備響應__接口列表_服務器端API_阿裏雲物聯網套件-阿裏雲

推送數據給設備並得到響應

特別注意:該接口目前隻適用CCP協議接入的設備,MQTT協議不支持

描述

請求參數

名稱 類型 是否必須 描述
<公共參數> 公共參數
ProductKey String 以哪個ProductKey來進行發送
DeviceName String 設備名稱
RpcContent String 需要傳遞給設備的數據,數據需要為 二進製經過Base64轉碼得到的字符串數據
TimeOut Integer 表示等待設備回複消息的時間,單位是毫秒

返回參數

名稱 類型 描述
RequestId String 表示調用返回碼
Rpccode String 表示調用返回碼(UNKNOW,SUCCESS,TIMEOUT,HALFCONN)
Success Boolean 表示調用成功與否
ResponseContent String 設備返回二進製數據的base64編碼後的值
ErrorMessage String 出錯信息
  1. UNKNOW:係統異常
  2. SUCCESS:成功
  3. TIMEOUT:設備回執超時
  4. OFFLINE: 設備離線
  5. HALFCONN: 設備離線(設備連接斷開但是斷開時間未超過一個心跳周期)

示例

  • 請求示例
  1. https://iot.aliyuncs.com/?&Action=RevertRpc
  2. &ProductKey=...
  3. &DeviceName=...
  4. &RpcContent=aGVsbG8gd29ybGQ%253D
  5. &TimeOut=5000
  6. &<[公共請求參數]>
  • SDK示例代碼 [SDK下載]

    • java
      1. RevertRpcRequest rpcRequest = new RevertRpcRequest();
      2. rpcRequest.setDeviceName("...");//設備名稱
      3. rpcRequest.setProductKey(...);//設備接入時候填寫的productKey
      4. rpcRequest.setTimeOut(5000); //超時時間,單位毫秒.如果超過這個時間設備沒反應則返回"TIMEOUT"
      5. rpcRequest.setRpcContent("aGVsbG8gd29ybGQ=");//推送給設備的數據.數據要求二進製數據做一次BASE64編碼.(示例裏麵是"helloworld"編碼後的值)
      6. RevertRpcResponse rpcResponse = client.getAcsResponse(rpcRequest);
      7. //得到設備返回的數據信息. 注意:得到的數據是設備返回二進製數據然後再經過IOT平台base64轉換之後的字符串.需要轉換一下才能拿到原始的二進製數據.
      8. System.out.println(rpcResponse.getResponseContent());
      9. System.out.println(rpcResponse.getRpccode());//對應的響應碼( TIMEOUT/SUCCESS/OFFLINE/HALFCONN等)
    • php
      1. $request = new IotRevertRpcRequest();
      2. $request->setProductKey(60028255);
      3. $request->setDeviceName("11a936267d2a4b6eb7b4cb8549fc1fa7");//設備名稱
      4. $request->setTimeOut(5000); //超時時間,單位毫秒.如果超過這個時間設備沒反應則返回"TIMEOUT"
      5. $request->setRpcContent("aGVsbG8gd29ybGQ=");//推送給設備的數據.數據要求二進製數據做一次BASE64編碼.(示例裏麵是"helloworld"編碼後的值)
      6. $response = $client->getAcsResponse($request);
      7. print_r("rn");
      8. print_r($response);
    • python
      1. request = RevertRpcRequest.RevertRpcRequest()
      2. request.set_accept_format('json') // 設置返回數據格式,默認為XML
      3. request.set_ProductKey('...')
      4. request.set_DeviceName('xxxxxxx') // 設備名稱
      5. request.set_RpcContent('aGVsbG8gd29ybGQ=') // 推送給設備的數據.數據要求二進製數據做一次BASE64編碼.(示例裏麵是"helloworld"編碼後的值)
      6. request.set_TimeOut(1000) // 超時時間,單位毫秒.如果超過這個時間設備沒反應則返回"TIMEOUT"
      7. result = clt.do_action(request)
      8. print 'revert rpc : ' + result
  • 返回示例

    json示例

  1. {
  2. "Rpccode":"UNKONW",
  3. "Success":true,
  4. "ResponseContent":"bm90IGZvdW5kIHJvdXRlciByZWNvcmQu"
  5. }

XML示例

  1. <RevertRpcResponse>
  2. <Rpccode>UNKONW</Rpccode>
  3. <Success>true</Success>
  4. <ResponseContent>bm90IGZvdW5kIHJvdXRlciByZWNvcmQu</ResponseContent>
  5. </RevertRpcResponse>

最後更新:2016-12-06 17:29:13

  上一篇:go 發布消息到Topic__接口列表_服務器端API_阿裏雲物聯網套件-阿裏雲
  下一篇:go 設備狀態回調通知__服務器端API_阿裏雲物聯網套件-阿裏雲