Зачем в разностном уставки больше часа? Ну ладно, 99 минут?
По хоткеям вечером, с телефона не шибко удобно, да и соображалка к концу рабочего дня не очень работает. Какие функции и где у нас сейчас раскиданы?
mambavamba14 - Разностный замер в меню доступны следующие значения 5, 10, 15, 20, 30, 60, 90, 120, 150, 180 мин, и да, при замерах более часа больше 59:59 не отображается
alexadresat - Со словом "мин" была проблема, там должно отображаться текущее время замера. И время тоже поправил, архив чуть позже обновлю, как все доделаю. #define TYPE_MEASUR_SLEEP 1 //выбор типа входа в сон во время замера в режиме "БЕТА" (1 - сон во время замера запрещен | 0 - сон во время замера разрешен)
tekagi - Как говорится "потому что можем")) Мало ли кто-то захочет, пресеты всегда можно изменить в "SETUP".
"ок" - доп.действие, удерж."ок" меню, "вверх" и "вниз" перелистывание. В меню удерж."вверх" отладка, удерж."вниз" статистика.
tekagi - Хорошо, сделаю пресеты максимум 2-х значные. Можно да, но это в следующей версии, в этой пока допилим именно так, и заменим выключение в быстром меню на бета замер.
alexadresat - Так и должно быть, это доп функция, но думаю поменять местами удерж."вниз" и "ок" на экране фон.
В пресетах бета-замера не хватает малых значений. 1-2-3-5-7-10-20-30-40-60 Большие значения хороши для малоактивных источников, но иногда надо на более активном отделить гамму от беты.
Если на экране окончания бета-замера зажать "ОК" - выпадаем в пустой экран с верхним баром, иконки в баре есть, названия режима нет. Если зажать ещё раз - попадаем в меню настроек, откуда можно вернуться на тот же пустой экран. С него можно перейти стрелками на любой из основных режимов.
Неплохо было бы сделать тревожную сигнализацию на превышение выбранного значения дозы после сброса. С возможностью включить/выключить в меню и плавной установки, без пресетов. Условный сталкер сбросил текущую дозу, сунулся на обект, превысили значение - пищим "делай ноги".
Если при нахождении в меню какие-либо значения изменялись - то при выходе из меню по таймауту выдавать запрос "Не сохранять изменения?" "Отменить" / "Сохранить". Если в течении десяти секунд на сообщение нет реакции (положили на стол / в карман) - выходим в основной без сохранения. Если ничего не менялось - выходим без вопросов.
Желателен контроль отсутствия импульсов с датчика в течении двух-трёх минут. Прибор в спячке в кармане, мы на него надеемся, но что-то сталось с счётчиком или ВВ частью, такую ситуацию нужно отловить. Желателен ещё контроль возникновения тлеющего разряда, но как его реализовать без добавления нескольких деталей я не знаю. Разве что по увеличению количества импульсов накачки при несоразмерно малом уровне детектируемого счёта, но это очень неопределённо.
tekagi - Да хорошие мысли, несколько порогов давно уже думал сделать. Все выше написанное допилил, делаю сейчас 4 порога(два на фон и два на дозу. При первом пороге будет просто ненавязчивые звуки без предупреждений(сбрасываться будут по нажатию на люб.кл.). При втором пороге уже привычное оповещение со звуком виброй и тд.
Wik, alexadresat - Да уже нашел в чем проблема, исправил, выложу когда допилю пороги.
Второй (максимальный) порог текущего фона лучше делать неотключаемым. Первый (меньший) информационный, периодический, с возможностью сбросить любой кнопкой до падения фона и последующего поднятия. Второй же тревожный, напоминающий о непрерывной опасности.
Первому диапазон 20 - 300мкР/ч, второму от 300 и выше. Но лучше без пресетов, но с увеличивающимся шагом, 20-300 шаг 5, 300-500 10, 500-1000 50, далее по 100.
Я бы убрал режим поиска, перекинув график в "фон".
Как сейчас реализован подсчёт? Я с наскока не разберусь. Так же, как и ранее, массив со скользящим окном?
tekagi - Да тот же принцип, что и динамическое обновление графика. Больше частиц - меньше время измерения, меньше частиц - больше время измерения... Добавлю это чуть позже тк пока с основными режимами надо все доделать))
Я немного не о том. Считаем сумму нескольких только что записаных ячеек, если больше некоего порога относительно среднего пр массиву - затираем весь массив кроме этих ячеек, перестаём показывать среднюю дозу, потому что при скачках она неактуальна, пересчитываем показания по этим ячейкам, и далее как после ручного сброса. К примеру при пятикратном превышении за секунду и трёхкратном за десять секунд. То же относится и к кратному уменьшению фона. Среднее же значение стоит выводить только тогда, когда за весь набранный массив у нас не было больших скачков фона.
tekagi - Да звучит не плохо, надо будет подумать над алгоримом))
В общем ситуация такая, тк уже даже на половине пути не хватает памяти для реализации порогов, добавляю пункт выбора - или разностный замер или выключение питание в быстром меню(с optiboot v8 можно будет оставить разностный, это только для тех, у кого старый загрузчик).
UPD. 1.7.1 - исправлены мелкие баги. Внимание! В папке есть версия 1.7.2 она не доделана!
Из мелочи. Из быстрого меню желательно возврат не только по таймауту, а и по удержанию "Ок".
Стоит номер версии взять 2.х.х, чтобы не было путаницы со старыми вариантами скетчей. Если когда-нибудь руки дойдут в них поковыряться, то вряд ли больше нескольких багфиксов.
tekagi - А что если брать например 4-х секундный замер, если в нем кол-во частиц больше порога, то рассчитываем по формуле (сумма.частиц.за.4-е.сек.) * (время.счета / 4) = текущий фон.
Из быстрого меню выход по удерж.вверх(ровно как и вход в него).
Четыре секунды для малых уровней мало, а для очень больших много, превышение ЕРФ раза в четыре мы попросту не увидим. Я вообще больше склоняюсь к трём пороговым значениям времени, 1 сек., 5 сек., 20 сек. Сравнивать как с пороговым значением имп/с для определения, за какой интервал вести подсчёт (если фон несколько миллирентген, то там 36 секунд точно ждать не надо, но хоть и считаем по части, массив продолжаем заполнять, чтобы среднее видеть), так и кратность к среднему за весь массив, что позволит увидеть динамику изменения и не учитывать среднее за весь массив, тормозящее изменение отображаемых показаний.
Если у нас массив со скользящим окном и сдвигом, что отображает периодически заполняющийся прогрессбар? Ведь он нужен только при первом наборе массива после старта или сброса? Может стоит его отображать вместо среднего, пока там отображаются пробелы?
После старта/сброса до полного набора массива фон считается как отношение импульсов к 36 или к прошедшему с момента начала набора массива времени? По поведению вроде первое, хотя ИМХО лучше второе. Ранее было так:
count_and_dose_seconds = timer_seconds;
for (int i = 0; i < 254; i++) //сдвигаем
{
mass_poisk[i] = mass_poisk[i + 1];
}
mass_poisk[254] = shet;
if ((zam_poisk_counter < 254) && (zam_poisk_counter < geiger_counter_seconds)) //первый набор массива
{
fon_vr_poisk = fon_vr_poisk + shet;
zam_poisk_counter++;
fon = fon_vr_poisk*((float(geiger_counter_seconds))/(float(zam_poisk_counter)));
// fon_254 = fon;
fon_254 = 0;
}
else if ((zam_poisk_counter < 254) && (zam_poisk_counter == geiger_counter_seconds)) //
{
zam_poisk_counter++;
fon_vr_poisk = fon_vr_poisk + shet;
fon = fon_vr_poisk*((float(geiger_counter_seconds))/(float(zam_poisk_counter)));
fon_254 = fon;
fon_vr254 = fon_vr_poisk;
}
else if ((zam_poisk_counter < 254) && (zam_poisk_counter > geiger_counter_seconds)) //
{
fon_vr_poisk = 0;
fon_vr254 = 0;
for (int i = zam_poisk_counter; i > 0; i--)
{
fon_vr254 = fon_vr254 + mass_poisk[254-i];
}
for (int j = 254 - geiger_counter_seconds; j < 255; j++)
{
fon_vr_poisk = fon_vr_poisk + mass_poisk[j];
}
fon = fon_vr_poisk;
// fon_254 = (float(fon_vr254))*((float(geiger_counter_seconds))/(float(zam_poisk_counter)));
fon_254 = (float)fon_vr254*((float)geiger_counter_seconds/(float)zam_poisk_counter);
fon_vr254 = 0;
zam_poisk_counter++;
}
else if (zam_poisk_counter >= 254) //набор массива
{
fon_vr_poisk = 0;
fon_vr254 = 0;
byte geiger_counter_seconds_reverse = 254 - geiger_counter_seconds;
for (int i = 254; i > 0; i--)
{
fon_vr254 = fon_vr254 + mass_poisk[i];
if (i > geiger_counter_seconds_reverse)
{
fon_vr_poisk = fon_vr_poisk + mass_poisk[i];
}
}
fon = fon_vr_poisk;
fon_254 = (float(fon_vr254))*((float(geiger_counter_seconds))/254.0);
}
shet = 0;
doz_v = doz_v + fon / 100.0 / 36.0;
time_doza = time_doza + 1;
if (doz_v - doza_vr >= save_DOZ) //а не пора ли сохранить дозу ?
{
eeprom_wrD ();
doza_vr = doz_v;
}
И я думал по скачку кратности после 1-7-20 секунд к среднему по всему массиву просто прикрутить очистку массива далее этих значений и считать, как после сброса с уже набранными этими 1-7-20 секундами. Но в первые секунд 5 после ручного сброса на первый аварийный порог лучше не реагировать, разброс может быть сильно большой. Но и скорость реакции выше.
tekagi - В общих красках я понял что к чему)) Пока что даже по порогам особых идей что-то нету, как реализовать все грамотно...Нужно пересмотреть концепцию тревоги, как когда-то пересмотрел сон. Современные проблемы требуют современных решений))
Да я где-то уже видел это, вот прям все в точности описали как происходит на самом деле, кодинг дело такое)))
#ArDos_with_RADON_2.0.0 - Мелкие исправления, добавлены 2 порога по превышению фона и 2 порога по превышению дозы, добавлен тайм-аут в окно сохранения настроек, теперь при бездействии в настройках вы попадаете на экран сохранения настроек, по бездействию на экране сохранения происходит автоматический сброс до предыдущих настроек и выход, библиотека дисплея интегрирована в скетч.
UPD. Добавил мигающую надпись "опасность" на главные экраны при срабатывании первого порога фона или дозы.
alexadresat - Примерно так: Ф1/Д1 - при превышении установленного порога звуковая сигнализация и переход на экран фон/доза(вместо прогресс бара будет мигать надпись "!ОПАСНОСТЬ!"), отключается нажатием на любую клавишу на главных экранах. Ф2/Д2 - Обычная тревога(как и была раньше) рядом со значениями будет надпись фон или доза в зависимости от чего тревога.
Исправил фатальную ошибку, которая не позволяла отключать тревогу(хотя в настройках она выключена), поправил отображение Д2 при регулировке.
Wik - В настройках зажатием "вниз".
mambavamba14 - Без анимации обойдемся....
Не, анимашки точно не нужны. Мне и иконки в меню излишни, текста бы хватило. Да даже простого списка с пустым местом))
alexadresat - Ок.
tekagi - Как понять "списка с пустым местом"? И да, какие действия клавиш делать в режиме замера?
В Бета при установки в настройках Разн.зам: 180, на экране замера 59:59, куда-то пропали часы...
alexadresat - А секунды тоже не идут?? По идее там "часов" и не должно было быть, только минуты и секунды...
Секунды идут, только часов не видно. И еще мин сделай на одном уровне с имп.
180 мин - 3:00:00
Ну тогда в настройках надо выбор 99 мин
Зачем в разностном уставки больше часа? Ну ладно, 99 минут?
По хоткеям вечером, с телефона не шибко удобно, да и соображалка к концу рабочего дня не очень работает. Какие функции и где у нас сейчас раскиданы?
mambavamba14 - Разностный замер в меню доступны следующие значения 5, 10, 15, 20, 30, 60, 90, 120, 150, 180 мин, и да, при замерах более часа больше 59:59 не отображается
mambavamba14 - Когда идет Бета замеры, подсветка не отключается, это так должно?
alexadresat - Со словом "мин" была проблема, там должно отображаться текущее время замера. И время тоже поправил, архив чуть позже обновлю, как все доделаю. #define TYPE_MEASUR_SLEEP 1 //выбор типа входа в сон во время замера в режиме "БЕТА" (1 - сон во время замера запрещен | 0 - сон во время замера разрешен)
tekagi - Как говорится "потому что можем")) Мало ли кто-то захочет, пресеты всегда можно изменить в "SETUP".
"ок" - доп.действие, удерж."ок" меню, "вверх" и "вниз" перелистывание. В меню удерж."вверх" отладка, удерж."вниз" статистика.
Просто очень большие выдержки при датчике вроде СБМ и без свинцового домика, мягко говоря, бесполезны. Полчаса за глаза, час избыточно.
mambavamba14 -На экране ФОН если кратковременно нажать кнопку ОК, происходит сброс показаний СРЕД и МАКС
Как по мне оптимально. Если по удержанию "ОК" меню выбора НАСТРОЙКИ-СТАТИСТИКА-И.Т.Д - то можно от удержания в меню и уйти.
tekagi - Хорошо, сделаю пресеты максимум 2-х значные. Можно да, но это в следующей версии, в этой пока допилим именно так, и заменим выключение в быстром меню на бета замер.
alexadresat - Так и должно быть, это доп функция, но думаю поменять местами удерж."вниз" и "ок" на экране фон.
mambavamba14 - Ну да логичнее СРЕД и МАКС сбрасывать по удержанию, а текущую кратковременно...
26.06.20 #ArDos_with_RADON_1.7.1 - Замер "бета" перенесен с главных экранов в быстрое меню.
mambavamba14 - артефакты
Wik - Такая-же беда...
Wik, alexadresat - Исправил! Забыл очистку экрана...
UPD. Еще раз перезалил..мб опять не обновилось...
UPD2. Минуты в замере исправил и перезалил.
mambavamba14 - а не лучше будет лого Бета полностью закрасить?
alexadresat - Да, так лучше, поменял. Также сделал в начале и в конце замера будет мигать подсказка на месте надписи замера что нужно сделать.
mambavamba14 - Не плохо получилось...
alexadresat - Готово! После окончания замера надпись "результат" меняется раз в секунду на "ок - замер фона"? И также после замера фона?
mambavamba14 - Да все меняется. Надо отодвинуть 0имп - 0 имп
Посмотри может идеи появятся... https://www.youtube.com/watch?v=6muaC_HMqpM
alexadresat - Поправил. Приборчик интересный конечно))
В пресетах бета-замера не хватает малых значений. 1-2-3-5-7-10-20-30-40-60 Большие значения хороши для малоактивных источников, но иногда надо на более активном отделить гамму от беты.
Если на экране окончания бета-замера зажать "ОК" - выпадаем в пустой экран с верхним баром, иконки в баре есть, названия режима нет. Если зажать ещё раз - попадаем в меню настроек, откуда можно вернуться на тот же пустой экран. С него можно перейти стрелками на любой из основных режимов.
Неплохо было бы сделать тревожную сигнализацию на превышение выбранного значения дозы после сброса. С возможностью включить/выключить в меню и плавной установки, без пресетов. Условный сталкер сбросил текущую дозу, сунулся на обект, превысили значение - пищим "делай ноги".
Если при нахождении в меню какие-либо значения изменялись - то при выходе из меню по таймауту выдавать запрос "Не сохранять изменения?" "Отменить" / "Сохранить". Если в течении десяти секунд на сообщение нет реакции (положили на стол / в карман) - выходим в основной без сохранения. Если ничего не менялось - выходим без вопросов.
Желателен контроль отсутствия импульсов с датчика в течении двух-трёх минут. Прибор в спячке в кармане, мы на него надеемся, но что-то сталось с счётчиком или ВВ частью, такую ситуацию нужно отловить. Желателен ещё контроль возникновения тлеющего разряда, но как его реализовать без добавления нескольких деталей я не знаю. Разве что по увеличению количества импульсов накачки при несоразмерно малом уровне детектируемого счёта, но это очень неопределённо.
mambavamba14 - да, я как то после разностного замера тоже попал на пустой экран, но повторно на него попасть у меня больше не получилось.
tekagi, Wik - Тоже было с пустым экраном, но только один раз.
tekagi - Да хорошие мысли, несколько порогов давно уже думал сделать. Все выше написанное допилил, делаю сейчас 4 порога(два на фон и два на дозу. При первом пороге будет просто ненавязчивые звуки без предупреждений(сбрасываться будут по нажатию на люб.кл.). При втором пороге уже привычное оповещение со звуком виброй и тд.
Wik, alexadresat - Да уже нашел в чем проблема, исправил, выложу когда допилю пороги.
Второй (максимальный) порог текущего фона лучше делать неотключаемым. Первый (меньший) информационный, периодический, с возможностью сбросить любой кнопкой до падения фона и последующего поднятия. Второй же тревожный, напоминающий о непрерывной опасности.
Первому диапазон 20 - 300мкР/ч, второму от 300 и выше. Но лучше без пресетов, но с увеличивающимся шагом, 20-300 шаг 5, 300-500 10, 500-1000 50, далее по 100.
tekagi - Звучит конечно круто)) Осталось только это как-то в 500 байт запихнуть xD
Я бы убрал режим поиска, перекинув график в "фон".
Как сейчас реализован подсчёт? Я с наскока не разберусь. Так же, как и ранее, массив со скользящим окном?
tekagi - Сильно памяти это не прибавит...Не знаю как ранее)) У меня сдвиг массива в ед.времени и отрисовка по запросу.
Приблизительно так и было. Вечером погрызу код, мож разберусь. Есть кое-какие мысли по ускорению реакции на скачки фона.
tekagi - Да тот же принцип, что и динамическое обновление графика. Больше частиц - меньше время измерения, меньше частиц - больше время измерения... Добавлю это чуть позже тк пока с основными режимами надо все доделать))
Я немного не о том. Считаем сумму нескольких только что записаных ячеек, если больше некоего порога относительно среднего пр массиву - затираем весь массив кроме этих ячеек, перестаём показывать среднюю дозу, потому что при скачках она неактуальна, пересчитываем показания по этим ячейкам, и далее как после ручного сброса. К примеру при пятикратном превышении за секунду и трёхкратном за десять секунд. То же относится и к кратному уменьшению фона. Среднее же значение стоит выводить только тогда, когда за весь набранный массив у нас не было больших скачков фона.
tekagi - Да звучит не плохо, надо будет подумать над алгоримом))
В общем ситуация такая, тк уже даже на половине пути не хватает памяти для реализации порогов, добавляю пункт выбора - или разностный замер или выключение питание в быстром меню(с optiboot v8 можно будет оставить разностный, это только для тех, у кого старый загрузчик).
UPD. 1.7.1 - исправлены мелкие баги. Внимание! В папке есть версия 1.7.2 она не доделана!
Сравнение скорости реакции АрДоса и Припяти.
Из мелочи. Из быстрого меню желательно возврат не только по таймауту, а и по удержанию "Ок".
Стоит номер версии взять 2.х.х, чтобы не было путаницы со старыми вариантами скетчей. Если когда-нибудь руки дойдут в них поковыряться, то вряд ли больше нескольких багфиксов.
tekagi - А что если брать например 4-х секундный замер, если в нем кол-во частиц больше порога, то рассчитываем по формуле (сумма.частиц.за.4-е.сек.) * (время.счета / 4) = текущий фон.
Из быстрого меню выход по удерж.вверх(ровно как и вход в него).
Четыре секунды для малых уровней мало, а для очень больших много, превышение ЕРФ раза в четыре мы попросту не увидим. Я вообще больше склоняюсь к трём пороговым значениям времени, 1 сек., 5 сек., 20 сек. Сравнивать как с пороговым значением имп/с для определения, за какой интервал вести подсчёт (если фон несколько миллирентген, то там 36 секунд точно ждать не надо, но хоть и считаем по части, массив продолжаем заполнять, чтобы среднее видеть), так и кратность к среднему за весь массив, что позволит увидеть динамику изменения и не учитывать среднее за весь массив, тормозящее изменение отображаемых показаний.
Если у нас массив со скользящим окном и сдвигом, что отображает периодически заполняющийся прогрессбар? Ведь он нужен только при первом наборе массива после старта или сброса? Может стоит его отображать вместо среднего, пока там отображаются пробелы?
После старта/сброса до полного набора массива фон считается как отношение импульсов к 36 или к прошедшему с момента начала набора массива времени? По поведению вроде первое, хотя ИМХО лучше второе. Ранее было так:
И я думал по скачку кратности после 1-7-20 секунд к среднему по всему массиву просто прикрутить очистку массива далее этих значений и считать, как после сброса с уже набранными этими 1-7-20 секундами. Но в первые секунд 5 после ручного сброса на первый аварийный порог лучше не реагировать, разброс может быть сильно большой. Но и скорость реакции выше.
Кстати, навеяло.
tekagi - В общих красках я понял что к чему)) Пока что даже по порогам особых идей что-то нету, как реализовать все грамотно...Нужно пересмотреть концепцию тревоги, как когда-то пересмотрел сон. Современные проблемы требуют современных решений))
Да я где-то уже видел это, вот прям все в точности описали как происходит на самом деле, кодинг дело такое)))
#ArDos_with_RADON_2.0.0 - Мелкие исправления, добавлены 2 порога по превышению фона и 2 порога по превышению дозы, добавлен тайм-аут в окно сохранения настроек, теперь при бездействии в настройках вы попадаете на экран сохранения настроек, по бездействию на экране сохранения происходит автоматический сброс до предыдущих настроек и выход, библиотека дисплея интегрирована в скетч.
UPD. Добавил мигающую надпись "опасность" на главные экраны при срабатывании первого порога фона или дозы.
mambavamba14 - Не возможно сохранить настройки, идет очень быстрый выход из настроек не успеваешь выбрать "да".
В настройках если хочешь убавить Порог Ф2: 300 и Порог Д2: 300, выходит число 24464
alexadresat - Исправил и перезалил! Уровни тревоги срабатывают нормально? В общем и целом ничего не тормозит?
UPD. Пороги тоже исправил.
А как пороги должны срабатывать?
Порог Д2: при регулировки 300 не меняется, а когда переходишь на следующую строку меняется на другие показания.
При тревоге не возможно выключить ее, она опять включается пока не упадет фон.
alexadresat - Примерно так: Ф1/Д1 - при превышении установленного порога звуковая сигнализация и переход на экран фон/доза(вместо прогресс бара будет мигать надпись "!ОПАСНОСТЬ!"), отключается нажатием на любую клавишу на главных экранах. Ф2/Д2 - Обычная тревога(как и была раньше) рядом со значениями будет надпись фон или доза в зависимости от чего тревога.
Исправил фатальную ошибку, которая не позволяла отключать тревогу(хотя в настройках она выключена), поправил отображение Д2 при регулировке.
Можешь видос сделать?
Порог Ф1 и Порог Д1 - не срабатывают и Надпись "!ОПАСНОСТЬ!" не выходит.
Доза и мкР/ч не помещяется в экране тревога.
Думаю стоит убрать восклицательный знак перед словом, оставив только после.
alexadresat - Надписи поправил. Перезалил. Попробуй сейчас будут срабатывать пороги Ф1 и Д1?
Dark-Dante - Можно, думал для симметрии что интереснее смотрелось)