aclk_alarm_api.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #include "aclk_alarm_api.h"
  3. #include "aclk_query_queue.h"
  4. #include "aclk_util.h"
  5. #include "aclk.h"
  6. void aclk_send_alarm_log_health(struct alarm_log_health *log_health)
  7. {
  8. aclk_query_t query = aclk_query_new(ALARM_LOG_HEALTH);
  9. query->data.bin_payload.payload = generate_alarm_log_health(&query->data.bin_payload.size, log_health);
  10. query->data.bin_payload.topic = ACLK_TOPICID_ALARM_HEALTH;
  11. query->data.bin_payload.msg_name = "AlarmLogHealth";
  12. QUEUE_IF_PAYLOAD_PRESENT(query);
  13. }
  14. void aclk_send_alarm_log_entry(struct alarm_log_entry *log_entry)
  15. {
  16. size_t payload_size;
  17. char *payload = generate_alarm_log_entry(&payload_size, log_entry);
  18. aclk_send_bin_msg(payload, payload_size, ACLK_TOPICID_ALARM_LOG, "AlarmLogEntry");
  19. if (!use_mqtt_5)
  20. freez(payload);
  21. }
  22. void aclk_send_provide_alarm_cfg(struct provide_alarm_configuration *cfg)
  23. {
  24. aclk_query_t query = aclk_query_new(ALARM_PROVIDE_CFG);
  25. query->data.bin_payload.payload = generate_provide_alarm_configuration(&query->data.bin_payload.size, cfg);
  26. query->data.bin_payload.topic = ACLK_TOPICID_ALARM_CONFIG;
  27. query->data.bin_payload.msg_name = "ProvideAlarmConfiguration";
  28. QUEUE_IF_PAYLOAD_PRESENT(query);
  29. }
  30. void aclk_send_alarm_snapshot(alarm_snapshot_proto_ptr_t snapshot)
  31. {
  32. aclk_query_t query = aclk_query_new(ALARM_SNAPSHOT);
  33. query->data.bin_payload.payload = generate_alarm_snapshot_bin(&query->data.bin_payload.size, snapshot);
  34. query->data.bin_payload.topic = ACLK_TOPICID_ALARM_SNAPSHOT;
  35. query->data.bin_payload.msg_name = "AlarmSnapshot";
  36. QUEUE_IF_PAYLOAD_PRESENT(query);
  37. }