XiaomiMqttClient_OperateLog.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. using Newtonsoft.Json;
  2. namespace MainForm.ClassFile.XiaomiAPI
  3. {
  4. /// <summary>
  5. /// 小米 MqttClient类 - API拓展方法
  6. /// 操作记录⽇志
  7. /// 供应商软件每次启动/关闭/重新加载项⽬时,以操作记录⽇志完成上报相应事件
  8. /// </summary>
  9. public partial class XiaomiMqttClient_Extend : XiaomiMqttClient
  10. {
  11. /// <summary>
  12. /// 操作记录⽇志- 事件Id
  13. /// </summary>
  14. private static string OperateLogId { get; set; } = "equipment_configuration/HomeSpd";
  15. /// <summary>
  16. /// 操作记录⽇志 - 事件方法
  17. /// </summary>
  18. /// <param name="msg">事件数据;Json</param>
  19. /// <param name="dataId">自定义事件Id;如:guid</param>
  20. /// <returns></returns>
  21. public static int Write_OperateLog(OperateLogRequest request, string dataId = "")
  22. {
  23. int result = 0;
  24. string msg = JsonConvert.SerializeObject(request);
  25. byte[] bytes = ToUTF8(msg);
  26. // 发送
  27. if (string.IsNullOrEmpty(dataId))
  28. result = Write(OperateLogId, bytes);
  29. else
  30. result = WriteWithDataId(OperateLogId, bytes, dataId);
  31. return result;
  32. }
  33. /// <summary>
  34. /// 操作记录⽇志 - 参数
  35. /// </summary>
  36. public class OperateLogRequest
  37. {
  38. /// <summary>
  39. /// 操作记录⽇志标识符
  40. /// string[1,128] operate_log/operate_log
  41. /// </summary>
  42. public string id { get; set; } = "operate_log/operate_log";
  43. /// <summary>
  44. /// 软件版本号
  45. /// 供应商软件版本号,如:V1.2.4
  46. /// </summary>
  47. public string software_version { get; set; } = string.Empty;
  48. /// <summary>
  49. /// 操作时间
  50. /// 供应商软件开启/关闭/重新加载项⽬时间,精确到毫秒。如:2022-06-01 14:27:57.283
  51. /// </summary>
  52. public string operate_time { get; set; } = string.Empty;
  53. /// <summary>
  54. /// 操作动作
  55. /// 对应软件开启/关闭/重新加载项⽬,枚举值如下:
  56. /// startup
  57. /// shutdown
  58. /// reload
  59. /// </summary>
  60. public string operate_action { get; set; } = string.Empty;
  61. /// <summary>
  62. /// 动作参数
  63. /// 选填,附带额外的信息
  64. /// </summary>
  65. public string action_param { get; set; } = string.Empty;
  66. /// <summary>
  67. /// 操作模块
  68. /// 选填
  69. /// </summary>
  70. public string operate_module { get; set; } = string.Empty;
  71. /// <summary>
  72. /// 操作⻚⾯
  73. /// 选填
  74. /// </summary>
  75. public string operate_page { get; set; } = string.Empty;
  76. /// <summary>
  77. /// 当前进程
  78. /// 进程ID
  79. /// </summary>
  80. public string current_process { get; set; } = string.Empty;
  81. /// <summary>
  82. /// 操作描述
  83. /// 如:供应商软件开启/关闭/重新加载项⽬
  84. /// </summary>
  85. public string operate_desc { get; set; } = string.Empty;
  86. /// <summary>
  87. /// 操作结果
  88. /// </summary>
  89. public string operate_result { get; set; } = "success";
  90. /// <summary>
  91. /// 操作账号名
  92. /// 填当前操作⽤⼾,如⽆则填default
  93. /// </summary>
  94. public string operator_name { get; set; } = "default";
  95. }
  96. }
  97. }