设备可以使用物模型功能,实现属性上报(如上报设备状态)、事件上报(上报设备异常或错误)和服务调用(通过云端调用设备提供的服务)。

设备属性

1.属性上报

  1. Map<String, ValueWrapper> propertyValueMap = new HashMap<>();
  2. propertyValueMap.put("testp", new ValueWrapper.StringValueWrapper("test"));
  3. //IPublishResourceListener为属性上报的回调函数,如不需要可以设置成null
  4. device.postProperty(propertyValueMap, new IPublishResourceListener() {
  5. @Override
  6. public void onSuccess(String s, Object o) {
  7. //属性上报成功的回调
  8. }
  9. @Override
  10. public void onError(String s, AError aError) {
  11. //属性上报失败的回调
  12. }
  13. });

2.获取属性

  1. //批量获取指定属性
  2. Map<String, ValueWrapper> properties = device.getProperties(Arrays.asList("language"));
  3. //获取全部属性
  4. Map<String, ValueWrapper> properties = device.getProperties();

设备事件

  1. Event event = new Event();
  2. event.setName("notify");
  3. Map<String, ValueWrapper> params = new HashMap<>();
  4. params.put("param", new ValueWrapper.StringValueWrapper("ok"));
  5. event.setParams(params);
  6. //IPublishResourceListener为事件上报的回调函数,如不需要可以设置成null
  7. device.postEvent(event, new IPublishResourceListener() {
  8. @Override
  9. public void onSuccess(String s, Object o) {
  10. }
  11. @Override
  12. public void onError(String s, AError aError) {
  13. }
  14. });

设备方法

  1. //methodName:物模型中方法的identifier
  2. device.registerAsyncMethod("asyncPushMessage",new ITResRequestHandler() {
  3. @Override
  4. public void onProcess(String s, Object request, ITResResponseCallback itResResponseCallback) {
  5. Map<String, ValueWrapper> data = (Map<String, ValueWrapper>) ((InputParams) request).getData();
  6. //设备处理请求
  7. //根据物模型返回处理后的结果
  8. OutputParams outputParams = new OutputParams();
  9. outputParams.put("result", new ValueWrapper.StringValueWrapper("ok"));
  10. itResResponseCallback.onComplete("asyncPushMessage",null, outputParams);
  11. //发送错误时返回
  12. AError error = new AError();
  13. error.setCode(100);
  14. error.setMsg("asyncPushMessage failed.");
  15. itResResponseCallback.onComplete("asyncPushMessage", new ErrorInfo(error), null);
  16. }
  17. @Override
  18. public void onSuccess(Object o, OutputParams outputParams) {
  19. //方法注册成功的回调
  20. }
  21. @Override
  22. public void onFail(Object o, ErrorInfo errorInfo) {
  23. //方法注册失败的回调
  24. }
  25. });