物模型开发

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

一.设备属性

  • 设备属性上报
/**
 * 发布属性消息到服务端,用于更新设备属性。
 * 该函数为非阻塞式调用,因此一旦在消息队列中会理解返回。
 * 因此该操作结果会通过{@link XIotMessage#onSuccess},
 * {@link XIotMessage#onFailure}以及{@link XIotMessage#onTimeout}等回调接口进行回馈。
 *
 * @param attributeMsg 要发布的消息载体
 * @param params       设备属性组装而成的HashParam结构参数
 * @throws XIotException 操作失败抛出异常
 */
public String XIotMqttClient.getInstance().publishProperty(XIotMessage attributeMsg, HashParam params)

HashParam param = new HashParam();
param.putParam("Brightness",(int)(Math.random()*100));
XIotMqttClient.getInstance().publishProperty(new XIotMessage(),param);

二.设备事件

  • 设备事件上报
/**
 * 发布事件消息到服务端,用于设置事件操作。
 * 该函数为非阻塞式调用,因此一旦在消息队列中会理解返回。
 * 因此该操作结果会通过{@link XIotMessage#onSuccess},{@link XIotMessage#onFailure}以及
 * {@link XIotMessage#onTimeout}等回调接口进行回馈。
 *
 * @param eventMsg  要发布的消息体
 * @param params    事件消息附带参数
 * @param eventName 定义的事件名称
 * @throws XIotException 操作失败抛出异常
 */
public String XIotMqttClient.getInstance().publishEvent(XIotMessage eventMsg, HashParam params, String eventName) throws XIotException, JSONException

HashParam param = new HashParam();
param.putParam("Brightness",(int)(Math.random()*100));
XIotMqttClient.getInstance().publishEvent(new XIotMessage(), param, "testEvent");

三.客户端反馈属性消息

  • 设备属性获取
/**
 * 发布属性回馈消息到服务端,该接口在收到{@XIotTopicCallback#onPropertyRequest}
 * 时,进行调用,根据该下行消息中带入的message中payload信息,针对指定属性值进行反馈。
 *  @param message  要发布的消息体
 *          服务端向客户端请求获取设备属性状态信息时,客户端向服务端汇报的属性数据
 *           以Demo为例,灯的属性有灯的开关状态(Property.PowerSwitch)、灯光颜色(Property.LightColorSwitch)、灯的亮度(Property.LightIntensitySeek)
 * @param params  属性参数
 * @throws XIotException  操作失败抛出异常
 */
 @Override
 public void XIotMqttClient.getInstance().publishProReqReply(XIotMessage message, HashParam params )

四.属性设置回应消息

/**
 * 服务端设置属性后,发送属性设置消息,客户端接收后,立即发送回应消息。
 * 该接口在收到{@XIotTopicCallback#onPropertySet}时,进行调用。
 * @param message 要发布的消息体
 * @throws XIotException 操作失败抛出异常
 */
 @Override
 public void XIotMqttClient.getInstance().publishProSetReply(XIotMessage message)

五.服务消息响应

/**
 * 接收到服务端设置的服务消息后,客户端立即响应。
 * 该接口在收到{@XIotTopicCallback#onServiceSet}时,进行调用。
 *
 * @param message   要发布的消息体
 * @param params    服务消息参数
 * @param identifer 服务名称,从{@XIotTopicCallback#onServiceSet}接口消息体中获取
 * @throws XIotException 操作失败抛出异常
 */
@Override
public void XIotMqttClient.getInstance().publishServiceReply(XIotMessage message, HashParam params,String identifer)

results matching ""

    No results matching ""