全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
阿里云物联网套件

CCP协议的RRPC接口文档

更新时间:2017-07-27 13:47:04

特别注意:该接口目前只适用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 Iot\RevertRpcRequest();
      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("\r\n");
      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>
本文导读目录