全部产品
云市场

设备reset

更新时间:2019-03-18 16:43:15

功能说明

当设备希望恢复出厂设置时,除了删除设备上本地的配置信息,如果也希望云平台清除一些配置,可以发送reset消息重置云端状态, 目前包括清除topo关系(如果是子设备会踢出下线), 解除用户和设备绑定关系、清除该设备的设备快照(针对飞燕平台)。

功能讲解

下面的例子中使用了示例代码 src/dev_reset/examples/dev_reset_example.c

用户通过 IOT_MQTT_Construct 连接云端成功之后, 可使用 IOT_DevReset_Report 接口发送消息到云端, 对设备进行重置操作

  1. int main(int argc, char *argv[])
  2. {
  3. ...
  4. ...
  5. pclient = IOT_MQTT_Construct(&mqtt_params);
  6. if (NULL == pclient) {
  7. EXAMPLE_TRACE("MQTT construct failed");
  8. return -1;
  9. }
  10. res = IOT_DevReset_Report(&meta_info, example_devrst_evt_handle, NULL);
  11. if (res < 0) {
  12. return -1;
  13. }
  14. ...
  15. ...
  16. }

用户可填写 IOT_DevReset_Report 接口的第二个参数进行回调函数的注册, 当重置消息发送成功时, 会从该回调函数得到云端的应答消息

  1. void example_devrst_evt_handle(iotx_devrst_evt_type_t evt, void *msg)
  2. {
  3. switch (evt)
  4. {
  5. case IOTX_DEVRST_EVT_RECEIVED: {
  6. iotx_devrst_evt_recv_msg_t *recv_msg = (iotx_devrst_evt_recv_msg_t *)msg;
  7. if (recv_msg->msgid != reset_mqtt_packet_id) {
  8. return;
  9. }
  10. EXAMPLE_TRACE("Receive Reset Responst");
  11. EXAMPLE_TRACE("Msg ID: %d", recv_msg->msgid);
  12. EXAMPLE_TRACE("Payload: %.*s", recv_msg->payload_len, recv_msg->payload);
  13. reset_reply_received = 1;
  14. }
  15. break;
  16. default:
  17. break;
  18. }
  19. }

功能API接口

原型

  1. int IOT_DevReset_Report(iotx_dev_meta_info_t *meta_info, iotx_devrst_evt_handle_t handle, void *extended);

接口说明

用于向云端上报设备重置消息, 执行结果通过用户注册的回调函数参数 handle 告知用户

参数说明

参数 数据类型 方向 说明
meta_info iotx_linkkit_dev_meta_info_t 输入 设备的四元组信息
handle iotx_devrst_evt_handle_t 输入 设备重置消息的回调函数
extended void * 输入 扩展参数, 保留

返回值说明

说明
>= 0 消息发送成功
< 0 失败

需要对接的HAL接口

函数名 说明
HAL_Snprintf 标准库函数snprintf的HAL实现