XiaomiMqttClient_SensorData.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using Newtonsoft.Json;
  2. namespace MainForm.ClassFile.XiaomiAPI
  3. {
  4. /// <summary>
  5. /// 小米 MqttClient类 - API拓展方法
  6. /// 传感器数据
  7. /// </summary>
  8. public partial class XiaomiMqttClient_Extend : XiaomiMqttClient
  9. {
  10. /// <summary>
  11. /// 传感器数据- 事件Id
  12. /// </summary>
  13. private static string SensorDataId { get; set; } = "sensor_data/pressure";
  14. /// <summary>
  15. /// 传感器数据 - 事件方法
  16. /// </summary>
  17. /// <param name="msg">事件数据;Json</param>
  18. /// <param name="dataId">自定义事件Id;如:guid</param>
  19. /// <returns></returns>
  20. public static int Write_SensorData(SensorDataRequest request, string dataId = "")
  21. {
  22. int result = 0;
  23. string msg = JsonConvert.SerializeObject(request);
  24. byte[] bytes = ToUTF8(msg);
  25. // 发送
  26. if (string.IsNullOrEmpty(dataId))
  27. result = Write(SensorDataId, bytes);
  28. else
  29. result = WriteWithDataId(SensorDataId, bytes, dataId);
  30. return result;
  31. }
  32. /// <summary>
  33. /// 传感器数据 - 参数
  34. /// </summary>
  35. public class SensorDataRequest
  36. {
  37. /// <summary>
  38. /// 传感器标识符
  39. /// string[1,128]
  40. /// </summary>
  41. public string id { get; set; } = string.Empty;
  42. /// <summary>
  43. /// 传感器的值
  44. /// string[1,64]
  45. /// </summary>
  46. public string value { get; set; } = string.Empty;
  47. }
  48. }
  49. }