unitemp.h 3.1 KB

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