unitemp.h 3.4 KB

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