Реализация / 13.09.2026

Калибровка: реализованный этап

Добавлено аппаратно-независимое преобразование 24-битного кода АЦП в концентрацию

по 2–5 опорным точкам. Две точки описывают zero/span; дополнительные точки задают

кусочно-линейную характеристику. В пределах каждого участка используется линейная

интерполяция с промежуточной арифметикой double. Коэффициенты старого прибора не копировались.

Правила

функции не изменяется. Конвейер при этом выставляет качество ошибки и NaN

вместо текущей концентрации. Предыдущий числовой результат не выдаётся за свежий.

фильтр и текущую концентрацию. Невалидная замена ничего не меняет.

Во время WARMUP концентрация предварительная: превышение порога уже сигнализируется,

иначе тревога NOT_READY, а не NORMAL.

должны различаться менее чем на 2^31 мс. Обратные метки отклоняются.

Эмулятор

mv: один отсчёт на канал. mf: серия с выбранным окном, шумом и выбросами.

Обе команды используют общий модуль фильтрации/калибровки. Выбросы не отбрасываются:

генератор больше не сообщает фильтру, какой отсчёт он специально испортил.

cal: ручной ввод 2–5 точек для канала 1..4, изменение в ОЗУ; save сохраняет на ПК.

m: отдельный демонстрационный ввод готовой концентрации, обходит калибровку;

поля тока и АЦП в этом режиме — синтетические, не измеренные.

Время эмулятора виртуальное: по 100 мс на отсчёт каждого канала. Ожидание ввода

пользователем не моделирует обрыв датчика; устаревание проверяется тестами ядра.

При ошибке хотя бы одного канала демонстрационная перекрёстная коррекция пропускается

для всего набора: отсутствующий источник не подменяется нулём. Это ограничение

эмулятора, не законченная политика измерений реального прибора.

Проверки и оставшаяся работа

CTest: фильтр, калибровка, тревоги, интеграция конвейера; при наличии Python —

также автоматический ввод команд эмулятора. Проверки C остаются включены в Release.

В конфигурацию CI добавлен запуск тестов Linux перед сборкой Windows; удалённый

pipeline требуется запустить после отдельного решения о публикации изменений.

Последующие программные этапы уже добавлены: температура калибровки, обратное

преобразование, стабильный zero/span-сеанс, версии и файловое хранение.

См. текущее состояние. Подача эталонного газа и физические испытания

не выполнялись. Нет записи EEPROM/Flash, настройки АЦП или проверки метрологии;

прошивка не готова к использованию как средство защиты от опасной газовой среды.