unitemp.h 3.1 KB

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