物模型开发

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

设备属性

  • 设备属性上报

      // 定义一个字符串指针,保存需要上传的 json 字符串地址。
      char* property_string = NULL; 
    
      // 设置属性,并把地址保存到对应的指针中。
      xiot_add_bool_to_payload(&property_string, "PowerSwitch", xxx);
    
      // 向云端上报当前添加的属性。
      xiot_upload_property(property_string);
    

设备事件

  • 设备事件上报

      // 定义两个字符串指针,保存需要上传的 json 字符串地址。
      char* data_string = NULL;
      char* params_string = NULL;
    
      // 设置要上报的自定义事件,并把地址保存到对应的指针中。云端需要事先定义好。
      xiot_add_string_to_payload(&data_string, "event", "xxx");
      // 设置要上报的自定义事件内容,并把地址保存到对应的指针中。
      xiot_add_bool_to_payload(&property_string, "PowerSwitch", xxx);
    
      // 向云端上报自定义事件。
      xiot_upload_user_event(data_string, params_string);
    

设备服务

由云端发起,设备做出相应回应。

  • 设备属性获取

      // 解析云端下发的信息,获取云端想要获取的属性值。
      ......   
    
      // 定义两个字符串指针,保存需要上传的 json 字符串地址。
      char* data_string = NULL;
      char* payload_string = NULL;
    
      // 根据设备状态设置云端想要获取属性值,并把地址保存到对应的指针中。
      xiot_add_bool_to_payload(property_string, "xxx", xxx);
    
      // 设置需要回复的信息,并把地址保存到对应的指针中。
      xiot_add_int_to_payload(&data_string, "ret", xxx);
      xiot_add_string_to_payload(&data_string, "msg", "xxx");
    
      // 回应云端获取设备属性
      xiot_cloud_get_property_reply(data_string, payload_string, mid);
    
  • 设备属性设置

      // 解析云端下发的信息,设置相应的属性
      ......    
    
      // 定义一个字符串指针,保存需要上传的 json 字符串地址。
      char* data_string = NULL;
    
      // 设置需要回复的信息,并把地址保存到对应的指针中。
      xiot_add_int_to_payload(&data_string, "ret", xxx);
      xiot_add_string_to_payload(&data_string, "msg", "xxx");
    
      // 回应云端设置设备属性
      xiot_cloud_set_property_reply(data_string, mid);
    
  • 设备自定义服务

      // 处理云端下发的自定义服务信息
      .....
    
      // 定义一个字符串指针,保存需要上传的 json 字符串地址。
      char* data_string = NULL;
    
      // 设置要云端调用的自定义服务,并把地址保存到对应的指针中。
      xiot_add_string_to_payload(&data_string, "identifer", "xxx");
    
      // 在此可以添加一些自定义的字段到要回复的字符串中。
      ......
    
      // 设置需要回复的信息,并把地址保存到对应的指针中。
      xiot_add_int_to_payload(&data_string, "ret", xxx);
      xiot_add_string_to_payload(&data_string, "msg", "xxx");
    
      // 回应云端调用自定义服务
      xiot_cloud_user_notice_reply(data_string, mid);
    

results matching ""

    No results matching ""