/
Yurask67
/
ESP32C3_AUDIO
Обзор
Документация
Войти
/
Yurask67
/
ESP32C3_AUDIO
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/xxx_task.cpp
124 строки
5 KB
Yurask67
Gain add
11 дек 2025, 12:36
11 дек 2025, 12:36
97d50ec
Код
Авторство
О чём код?
#include "conf.h" TaskHandle_t xxx; #define STACK_SIZE 8192 void vXXXTask(void *pvParameters); void startXXXTask(void) { xTaskCreate(vXXXTask, "xxx", STACK_SIZE, NULL, 10, &xxx); } LedBlinkPWM led1(LED1_PIN); // LED to GPIO2 LedBlinkPWM device1(DEV1_PIN); // DEV to GPIO3 GyverDBFile db(&LittleFS, "/data.db"); // база данных для хранения настроек SettingsGyver sett("Пугалка установки", &db); // указывается заголовок меню, подключается база данных Data_t data; // структура с переменными void service_tick(void); // define /*********************билдер!************************/ void build(sets::Builder &b) { { sets::Group g(b, "Глобальные"); b.Switch(kk::total_sw, "Общее вкл/выкл", &data.total_sw); b.Switch(kk::day_night_sw, "Использовать День/Ночь", &data.day_night_sw); b.Number(kk::day_ch, "Час рассвета", &data.day_ch, 0, 23); b.Number(kk::night_ch, "Час заката", &data.night_ch, 0, 23); b.Number(kk::gain, "Громкость", &data.gain, 0, 10); } { sets::Group g(b, "Общие (без учета времени дня)"); b.Number(kk::total_period, "Общий период сек", &data.total_period, 0, 2000); b.Number(kk::total_sound, "Звук общий раз", &data.total_sound, 0, 5); b.Number(kk::total_light, "Свет общий сек", &data.total_light, 0, 300); b.Number(kk::total_dev1, "Шум общий сек", &data.total_dev1, 0, 300); b.Switch(kk::total_motion, "Общий датч.движ ", &data.total_motion); } { sets::Group g(b, "День"); b.Number(kk::day_period, "День период сек", &data.day_period, 0, 2000); b.Number(kk::day_sound, "Звук день раз", &data.day_sound, 0, 5); b.Number(kk::day_light, "Свет день сек", &data.day_light, 0, 300); b.Number(kk::day_dev1, "Шум день сек", &data.day_dev1, 0, 300); b.Switch(kk::day_motion, "День датч.движ ", &data.day_motion); } { sets::Group g(b, "Ночь"); b.Number(kk::night_period, "Ночь период сек", &data.night_period, 0, 2000); b.Number(kk::night_sound, "Звук ночь раз", &data.night_sound, 0, 5); b.Number(kk::night_light, "Свет ночь сек", &data.night_light, 0, 300); b.Number(kk::night_dev1, "Шум ночь сек", &data.night_dev1, 0, 300); b.Switch(kk::night_motion, "Ночь датч.движ ", &data.night_motion); } } void db_init(void) { db.init(kk::total_sw, true); data.total_sw = db.get(kk::total_sw); // данные из БД в структуру db.init(kk::day_night_sw, true); data.day_night_sw = db.get(kk::day_night_sw); // данные из БД в структуру db.init(kk::day_ch, 7); // часов data.day_ch = db.get(kk::day_ch); db.init(kk::night_ch, 17); // часов data.night_ch = db.get(kk::night_ch); db.init(kk::gain, 1); // усиление =0.1 data.gain = db.get(kk::gain); db.init(kk::total_period, 600); // sekund data.total_period = db.get(kk::total_period); db.init(kk::total_sound, 2); // раз data.total_sound = db.get(kk::total_sound); db.init(kk::total_light, 20); // sekund data.total_light = db.get(kk::total_light); db.init(kk::total_dev1, 20); // sekund data.total_dev1 = db.get(kk::total_dev1); db.init(kk::total_motion, true); // data.total_motion = db.get(kk::total_motion); db.init(kk::night_period, 600); // sekund data.night_period = db.get(kk::night_period); db.init(kk::night_sound, 2); // раз data.night_sound = db.get(kk::night_sound); db.init(kk::night_light, 20); // sekund data.night_light = db.get(kk::night_light); db.init(kk::night_dev1, 20); // sekund data.night_dev1 = db.get(kk::night_dev1); db.init(kk::night_motion, true); // data.night_motion = db.get(kk::night_motion); db.init(kk::day_period, 600); // sekund data.day_period = db.get(kk::day_period); db.init(kk::day_sound, 2); // раз data.day_sound = db.get(kk::day_sound); db.init(kk::day_light, 20); // sekund data.day_light = db.get(kk::day_light); db.init(kk::day_dev1, 20); // sekund data.day_dev1 = db.get(kk::day_dev1); db.init(kk::day_motion, true); // data.day_motion = db.get(kk::day_motion); } /**********сетап задачи**************/ void setupXXXTask(void) { sett.begin(); sett.onBuild(build); // запуск и инициализация полей БД db.begin(); db_init(); // db[kk::total_period] = 45; // TODO можно напрямую изменить данные в БД } void vXXXTask(void *pvParameters) { (void)pvParameters; setupXXXTask(); while (1) { led1.tick(); // LedBlinkPWM device1.tick(); // LedBlinkPWM sett.tick(); // SettingsGyver vTaskDelay(10); } }