Просмотр исходного кода

Automatic switching to the carousel with a single sensor. Improved sensor action menu

Victor 3 лет назад
Родитель
Сommit
cde38d4705
4 измененных файлов с 33 добавлено и 9 удалено
  1. 10 5
      unitemp.c
  2. 5 2
      views/General_view.c
  3. 17 1
      views/SensorActions_view.c
  4. 1 1
      views/SensorsList_view.c

+ 10 - 5
unitemp.c

@@ -6,16 +6,21 @@
 #include <furi_hal_power.h>
 #include <m-string.h>
 
+/* ****************************** Интерфейс ****************************** */
+//TODO: В меню выбора нового датчика добавить помогалку выбора датчика
 //TODO: Реализовать ограничение на добавление датчиков если интерфейс недоступен
-//TODO: Не выкидывать датчик в ошибку при первом же неудачном опросе
-//TODO: Исправить зависание BMP280
-//TODO: BMP280 SPI
 //TODO: Ограничение на добавление датчика I2C с адресом уже имеющегося датчика
 //TODO: Добавить настройку единицы измерения давления
 //TODO: Обновлять данные только с тех датчиков, которые присутствуют на экране
-//TODO: Исправить сканирование one wire существующего датчика
-//TODO: В меню выбора нового датчика добавить помогалку выбора датчика
 //TODO: В режиме ожидания датчика указать в какому пину цепляться
+//TODO: Ограничивать длину имени датчика только тогда, когда имя действительно не вмещается
+//TODO: Вынести информирующих дельфинов в отдельную функцию
+
+/* ******************************* Датчики ******************************* */
+//TODO: Не выкидывать датчик в ошибку при первом же неудачном опросе
+//TODO: Исправить зависание BMP280
+//TODO: BMP280 SPI
+//TODO: Исправить сканирование one wire существующего датчика
 
 /* Переменные */
 //Данные приложения

+ 5 - 2
views/General_view.c

@@ -360,6 +360,7 @@ static void _draw_callback(Canvas* canvas, void* _model) {
         current_view = G_NO_SENSORS_VIEW;
         _draw_view_noSensors(canvas);
     } else {
+        if(sensors_count == 1) current_view = G_CAROUSEL_VIEW;
         if(current_view == G_NO_SENSORS_VIEW) current_view = G_LIST_VIEW;
         if(current_view == G_LIST_VIEW) _draw_view_sensorsList(canvas);
         if(current_view == G_CAROUSEL_VIEW) _draw_view_sensorsCarousel(canvas);
@@ -441,10 +442,12 @@ static bool _input_callback(InputEvent* event, void* context) {
     //Обработка короткого нажатия "назад"
     if(event->key == InputKeyBack && event->type == InputTypeShort) {
         //Выход из приложения при листе или отсутствии датчиков
-        if(current_view == G_LIST_VIEW || current_view == G_NO_SENSORS_VIEW)
+        if(current_view == G_LIST_VIEW || current_view == G_NO_SENSORS_VIEW ||
+           ((current_view == G_CAROUSEL_VIEW) && (unitemp_sensors_getActiveCount() == 1)))
             app->processing = false;
         //Переход в список датчиков
-        if(current_view == G_CAROUSEL_VIEW) current_view = G_LIST_VIEW;
+        if((current_view == G_CAROUSEL_VIEW) && (unitemp_sensors_getActiveCount() != 1))
+            current_view = G_LIST_VIEW;
     }
 
     return true;

+ 17 - 1
views/SensorActions_view.c

@@ -148,6 +148,18 @@ static void _enter_callback(void* context, uint32_t index) {
     case 1:
         _delete_widget_switch();
         break;
+    case 2:
+        unitemp_SensorsList_switch();
+        break;
+    case 3:
+        unitemp_Settings_switch();
+        break;
+    case 4:
+        //Help
+        break;
+    case 5:
+        //About
+        break;
     }
 }
 
@@ -162,9 +174,13 @@ void unitemp_SensorActions_alloc(void) {
     variable_item_list_add(variable_item_list, "Edit", 1, NULL, NULL);
     variable_item_list_add(variable_item_list, "Delete", 1, NULL, NULL);
 
+    variable_item_list_add(variable_item_list, "Add new sensor", 1, NULL, NULL);
+    variable_item_list_add(variable_item_list, "Settings", 1, NULL, NULL);
+    variable_item_list_add(variable_item_list, "Help", 1, NULL, NULL);
+    variable_item_list_add(variable_item_list, "About", 1, NULL, NULL);
+
     //Добавление колбека на нажатие средней кнопки
     variable_item_list_set_enter_callback(variable_item_list, _enter_callback, app);
-
     //Создание вида из списка
     view = variable_item_list_get_view(variable_item_list);
     //Добавление колбека на нажатие кнопки "Назад"

+ 1 - 1
views/SensorsList_view.c

@@ -19,7 +19,7 @@ static uint32_t _exit_callback(void* context) {
     UNUSED(context);
 
     //Возврат предыдущий вид
-    return VIEW_MAIN_MENU;
+    return VIEW_GENERAL;
 }
 /**
  * @brief Функция обработки нажатия средней кнопки