unitemp.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #ifndef UNITEMP
  2. #define UNITEMP
  3. /* Подключение стандартных библиотек */
  4. /* Подключение API Flipper Zero */
  5. //Файловый поток
  6. #include <toolbox/stream/file_stream.h>
  7. //Экран
  8. #include <gui/gui.h>
  9. #include <gui/view_dispatcher.h>
  10. #include <gui/modules/widget.h>
  11. //Уведомления
  12. #include <notification/notification.h>
  13. #include <notification/notification_messages.h>
  14. /* Внутренние библиотеки */
  15. //Интерфейсы подключения датчиков
  16. #include "Sensors.h"
  17. /* Объявление макроподстановок */
  18. //Имя приложения
  19. #define APP_NAME "Unitemp"
  20. //Путь хранения файлов плагина
  21. #define APP_PATH_FOLDER "/ext/unitemp"
  22. //Имя файла с настройками
  23. #define APP_FILENAME_SETTINGS "settings.cfg"
  24. //Имя файла с датчиками
  25. #define APP_FILENAME_SENSORS "sensors.cfg"
  26. //Размер буффера текста
  27. #define BUFF_SIZE 32
  28. /* Объявление перечислений */
  29. //Единицы измерения
  30. typedef enum { CELSIUS, FAHRENHEIT } measureUnit;
  31. /* Объявление структур */
  32. //Настройки плагина
  33. typedef struct {
  34. //Бесконечная работа подсветки
  35. bool infinityBacklight;
  36. //Единица измерения температуры
  37. measureUnit unit;
  38. //Последнее состояние OTG
  39. bool lastOTGState;
  40. } UnitempSettings;
  41. //Основная структура плагина
  42. typedef struct {
  43. //Система
  44. bool processing; //Флаг работы приложения. При ложном значении приложение закрывается
  45. bool sensors_ready; //Флаг готовности датчиков к опросу
  46. //Основные настройки
  47. UnitempSettings settings;
  48. //Массив указателей на датчики
  49. Sensor** sensors;
  50. //Количество загруженных датчиков
  51. uint8_t sensors_count;
  52. //SD-карта
  53. Storage* storage; //Хранилище
  54. Stream* file_stream; //Файловый поток
  55. //Экран
  56. Gui* gui;
  57. ViewDispatcher* view_dispatcher;
  58. NotificationApp* notifications;
  59. Widget* widget;
  60. //Буффер для различного текста
  61. char* buff;
  62. } Unitemp;
  63. /* Объявление прототипов функций */
  64. /**
  65. * @brief Перевод значения температуры датчика из Цельсия в Фаренгейты
  66. *
  67. * @param sensor Указатель на датчик
  68. */
  69. void uintemp_celsiumToFarengate(Sensor* sensor);
  70. /**
  71. * @brief Конвертация давления из паскалей в мм/рт
  72. *
  73. * @param sensor Указатель на датчик
  74. * @return Давление в мм рт.ст.
  75. */
  76. void unitemp_pascalToMmHg(Sensor* sensor);
  77. /**
  78. * @brief Сохранение настроек на SD-карту
  79. *
  80. * @return Истина если сохранение успешное
  81. */
  82. bool unitemp_saveSettings(void);
  83. /**
  84. * @brief Загрузка настроек с SD-карты
  85. *
  86. * @return Истина если загрузка успешная
  87. */
  88. bool unitemp_loadSettings(void);
  89. extern Unitemp* app;
  90. #endif