messaging.h 979 B

123456789101112131415161718192021222324252627282930
  1. #include "sdkconfig.h"
  2. #include "freertos/ringbuf.h"
  3. #include "cJSON.h"
  4. #pragma once
  5. typedef enum {
  6. MESSAGING_INFO,
  7. MESSAGING_WARNING,
  8. MESSAGING_ERROR
  9. } messaging_types;
  10. typedef enum {
  11. MESSAGING_CLASS_OTA,
  12. MESSAGING_CLASS_SYSTEM
  13. } messaging_classes;
  14. typedef struct messaging_list_t *messaging_handle_t;
  15. typedef struct {
  16. time_t sent_time;
  17. messaging_types type;
  18. messaging_classes msg_class;
  19. char message[151];
  20. } single_message_t;
  21. cJSON * messaging_retrieve_messages(RingbufHandle_t buf_handle);
  22. messaging_handle_t messaging_register_subscriber(uint8_t max_count, char * name);
  23. esp_err_t messaging_post_to_queue(messaging_handle_t subscriber_handle, single_message_t * message, size_t message_size);
  24. void messaging_post_message(messaging_types type,messaging_classes msg_class, char * fmt, ...);
  25. cJSON * messaging_retrieve_messages(RingbufHandle_t buf_handle);
  26. single_message_t * messaging_retrieve_message(RingbufHandle_t buf_handle);
  27. void messaging_service_init();