设备属性上报

设备与平台成功建立连接后,可根据业务特点适时上报设备属性,属性名称和参数值要与物模型中定义的格式保持一致。

以Linux版C语言SDK为例:
1、新建Topic句柄和Payload句柄,用以保存组装好的数据;
2、根据三元组信息,组装属性上报Topic;
3、根据属性名称和值类型,组装属性上报的Payload;
4、调用Publish函数将Topic和Payload发送到云端,若返回OK则发送成功;
6、释放Topic和Payload占用的系统空间;
7、发送成功后可在IOT云平台管理端收到更新后的属性值。

示例代码如下:

  1. char * topic_ptr = NULL;
  2. char * payload_ptr = NULL;
  3. /* Build property post topic. */
  4. if((result = SIL_tslm_btopic_proppost(lconn_cfg.product_key, lconn_cfg.dev_name, &topic_ptr)) == 0)
  5. {
  6. printf("TSLM: build property post topic success. \n");
  7. }
  8. else
  9. {
  10. printf("TSLM: Build property post topic failure. \n");
  11. }
  12. /* Build property post payload. */
  13. msg_id ++;
  14. if((result = SIL_tslm_bjson_proppost(&payload_ptr, "%d,%d,%s:%s,%s:%d,%s:%n", msg_id, 1, "propty1", "data1", "prop2", 344, "prop3", "NULL")) == 0)
  15. {
  16. printf("TSLM: build property post payload success. \n");
  17. }
  18. else
  19. {
  20. printf("TSLM: Build property post payload failure. \n");
  21. }
  22. /* Publish topic. */
  23. if((result = SIL_lconn_pub2cloud(lconn_fd, topic_ptr, payload_ptr, strlen(payload_ptr))) == 0)
  24. {
  25. printf("TSLM: publish property post topic success. \n");
  26. }
  27. else
  28. {
  29. printf("TSLM: publish property post topic failure. err %d\n", result);
  30. }
  31. /* Do some user operation based on topic and json.*/
  32. printf("TOPIC-%s.\n", topic_ptr);
  33. printf("JSON-%s.\n", payload_ptr);
  34. SIL_tslm_free(topic_ptr);
  35. SIL_tslm_free(payload_ptr);

设备事件上报

设备与IOT云平台成功建立连接后,若有物模型中定义的事件发生,可及时上报事件以通知平台。

以Linux版C语言SDK为例:
1、新建Topic句柄和Payload句柄,用以保存组装好的数据;
2、根据三元组信息,组装事件上报Topic;
3、根据物模型对事件参数定义,组装事件上报的Payload;
4、调用Publish函数将Topic和Payload发送到云端,若返回OK则发送成功;
6、释放Topic和Payload占用的系统空间;
7、发送成功后可在IOT云平台管理端收到上报的事件及参数。

示例代码如下:

  1. char * topic_ptr = NULL;
  2. char * payload_ptr = NULL;
  3. /* Build property post topic. */
  4. if((result = SIL_tslm_btopic_evtpost(lconn_cfg.product_key, lconn_cfg.dev_name, "user_eventname", &topic_ptr)) == 0)
  5. {
  6. printf("TSLM: build event post topic success. \n");
  7. }
  8. else
  9. {
  10. printf("TSLM: Build event post topic failure. \n");
  11. }
  12. /* Build property post payload. */
  13. msg_id ++;
  14. result = SIL_tslm_bjson_evtpost("user_eventname", &payload_ptr, "%d,%d, %s:%s, %s:%d",msg_id, 1, "param_1","123", "param_2",8);
  15. {
  16. printf("TSLM: build event post payload success. \n");
  17. }
  18. else
  19. {
  20. printf("TSLM: Build event post payload failure. \n");
  21. }
  22. /* Publish topic. */
  23. if((result = SIL_lconn_pub2cloud(lconn_fd, topic_ptr, payload_ptr, strlen(payload_ptr))) == 0)
  24. {
  25. printf("TSLM: publish event post topic success. \n");
  26. }
  27. else
  28. {
  29. printf("TSLM: publish event post topic failure. err %d\n", result);
  30. }
  31. /* Do some user operation based on topic and json.*/
  32. printf("TOPIC-%s.\n", topic_ptr);
  33. printf("JSON-%s.\n", payload_ptr);
  34. SIL_tslm_free(topic_ptr);
  35. SIL_tslm_free(payload_ptr);
即刻开始使用

只需完成注册与实名认证,即可体验我们的贴心服务