uiot_export_shadow.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /*
  2. * Copyright (C) 2012-2019 UCloud. All Rights Reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License").
  5. * You may not use this file except in compliance with the License.
  6. * A copy of the License is located at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * or in the "license" file accompanying this file. This file is distributed
  11. * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  12. * express or implied. See the License for the specific language governing
  13. * permissions and limitations under the License.
  14. */
  15. #ifndef C_SDK_UIOT_EXPORT_SHADOW_H_
  16. #define C_SDK_UIOT_EXPORT_SHADOW_H_
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. #include "uiot_import.h"
  21. #include "shadow_client.h"
  22. /**
  23. * @brief 构造ShadowClient
  24. *
  25. * @param product_sn 产品序列号
  26. * @param device_sn 设备序列号
  27. * @param ch_signal 与MQTT服务器连接的句柄
  28. *
  29. * @return 返回NULL: 构造失败
  30. */
  31. void* IOT_Shadow_Construct(const char *product_sn, const char *device_sn, void *ch_signal);
  32. /**
  33. * @brief 销毁ShadowClient 关闭设备影子连接
  34. *
  35. * @param handle ShadowClient对象
  36. *
  37. * @return 返回SUCCESS, 表示成功
  38. */
  39. int IOT_Shadow_Destroy(void *handle);
  40. /**
  41. * @brief 消息接收, 心跳包管理, 超时请求处理
  42. *
  43. * @param handle ShadowClient对象
  44. * @param timeout_ms 超时时间, 单位:ms
  45. * @return 返回SUCCESS, 表示调用成功
  46. */
  47. int IOT_Shadow_Yield(void *handle, uint32_t timeout_ms);
  48. /**
  49. * @brief 注册当前设备的设备属性
  50. *
  51. * @param pClient ShadowClient对象
  52. * @param pProperty 设备属性
  53. * @param callback 设备属性更新回调处理函数
  54. * @return 返回SUCCESS, 表示请求成功
  55. */
  56. int IOT_Shadow_Register_Property(void *handle, DeviceProperty *pProperty, OnPropRegCallback callback);
  57. /**
  58. * @brief 注销当前设备的设备属性
  59. *
  60. * @param pClient ShadowClient对象
  61. * @param pProperty 设备属性
  62. * @return SUCCESS 请求成功
  63. */
  64. int IOT_Shadow_UnRegister_Property(void *handle, DeviceProperty *pProperty);
  65. /**
  66. * @brief 获取设备影子文档并同步设备离线期间设备影子更新的属性值和版本号
  67. *
  68. * @param pClient ShadowClient对象
  69. * @param request_callback 请求回调函数
  70. * @param timeout_sec 请求超时时间, 单位:s
  71. * @param user_context 请求回调函数的用户数据
  72. * @return SUCCESS 请求成功
  73. */
  74. int IOT_Shadow_Get_Sync(void *handle, OnRequestCallback request_callback, uint32_t timeout_sec, void *user_context);
  75. /**
  76. * @brief 设备更新设备影子的属性,变长入参的个数要和property_count的个数保持一致
  77. *
  78. * @param pClient ShadowClient对象
  79. * @param request_callback 请求回调函数
  80. * @param timeout_sec 请求超时时间, 单位:s
  81. * @param user_context 请求回调函数的用户数据
  82. * @param property_count 变长入参的个数
  83. * @param ... 变长入参设备的属性
  84. * @return SUCCESS 请求成功
  85. */
  86. int IOT_Shadow_Update(void *handle, OnRequestCallback request_callback, uint32_t timeout_sec, void *user_context, int property_count, ...);
  87. /**
  88. * @brief 更新属性并清零设备影子的版本号,变长入参的个数要和property_count的个数保持一致
  89. *
  90. * @param pClient ShadowClient对象
  91. * @param request_callback 请求回调函数
  92. * @param timeout_sec 请求超时时间, 单位:s
  93. * @param user_context 请求回调函数的用户数据
  94. * @param property_count 变长入参的个数
  95. * @param ... 变长入参设备的属性
  96. * @return SUCCESS 请求成功
  97. */
  98. int IOT_Shadow_Update_And_Reset_Version(void *handle, OnRequestCallback request_callback, uint32_t timeout_sec, void *user_context, int property_count, ...);
  99. /**
  100. * @brief 设备删除设备影子的属性,变长入参的个数要和property_count的个数保持一致
  101. *
  102. * @param pClient ShadowClient对象
  103. * @param request_callback 请求回调函数
  104. * @param timeout_sec 请求超时时间, 单位:s
  105. * @param user_context 请求回调函数的用户数据
  106. * @param property_count 变长入参的个数
  107. * @param ... 变长入参设备的属性
  108. * @return SUCCESS 请求成功
  109. */
  110. int IOT_Shadow_Delete(void *handle, OnRequestCallback request_callback, uint32_t timeout_sec, void *user_context, int property_count, ...);
  111. /**
  112. * @brief 设备删除全部设备影子的属性
  113. *
  114. * @param pClient ShadowClient对象
  115. * @param request_callback 请求回调函数
  116. * @param timeout_sec 请求超时时间, 单位:s
  117. * @param user_context 请求回调函数的用户数据
  118. * @return SUCCESS 请求成功
  119. */
  120. int IOT_Shadow_Delete_All(void *handle, OnRequestCallback request_callback, uint32_t timeout_sec, void *user_context);
  121. /**
  122. * @brief 在请求中增加需要修改的属性
  123. *
  124. * @param pParams 设备影子文档修改请求
  125. * @param pProperty 设备属性
  126. * @return 返回SUCCESS, 表示请求成功
  127. */
  128. int IOT_Shadow_Request_Add_Delta_Property(void *handle, RequestParams *pParams, DeviceProperty *pProperty);
  129. /**
  130. * @brief 使用字符串的属性值直接更新属性值
  131. *
  132. * @param value 从云服务器设备影子文档Desired字段中解析出的字符串
  133. * @param pProperty 设备属性
  134. * @return 返回SUCCESS, 表示请求成功
  135. */
  136. int IOT_Shadow_Direct_Update_Value(char *value, DeviceProperty *pProperty);
  137. #ifdef __cplusplus
  138. }
  139. #endif
  140. #endif /* C_SDK_UIOT_EXPORT_SHADOW_H_ */