ВНИМАНИЕ !!!
Раздел ПОРТФОЛИО будет значительно расширен как в части описания, так и фотографий. На данный момент (январь 2024) нет времени - по всем вопросам обращаться на почту hello@shatskikh.ru

В результате очередных свершений образовался у меня «доп» («Что это?» - здесь внизу) в виде программы под Windows. Основной задачей этого софта была индикация в режиме реального времени температуры от 25 датчиков DS18s20 на аппаратной основе DS9097U-009. В интерфейсе всего две вкладки - скучная с графиками и по-веселее с градиентным цветовым распределением как на рисунке. Каждому датчику соответствует прямоугольник: при нормальной температуре (задаётся оператором) он зелёный, при повышении «желтеет», а потом вообще «краснеет» - принцип индикации температуры активной зоны атомного реактора. Привет МИФИ !!! Если при очередном цикле опроса датчика корректная информация не получена (датчик отсутствует, повреждён, не совпала контрольная сумма), то соответствующая область «перекрашивается» в серый цвет.

Градиентное цветовое распределение

И вот однажды появился заказчик с задачей «вытащить» из USB-хроматографа биполярный аналоговый сигнал с двух измерительных каналов, нарисовать на экране полученный результат и ещё посчитать кое-чего по мелочи. Озвученная потребность аккуратно «укладывалась» в функционал моего «допа», который я и стал «пилить» под новые требования. Всё бы ничего, но заказчик упорно не хотел обременять себя техническим заданием, поэтому в конечном счёте «доп» был адаптирован под «хотелки» третьей стороны, никак не связанной ни с температурой, ни с хроматографией. В качестве «бонуса» всей этой истории остались программные наработки, которые весьма сомнительны с точки зрения капитализации, но которыми можно поделиться с прогрессивной общественностью, что я и сделаю незамедлительно.

Для понимания дальнейшего желательно хотя бы кратко ознакомиться с процессом газовой хроматографии, а также принять к сведению, что упоминаемый хроматограф физически подключался к компьютеру через USB, а программно представлял собой виртуальный COM-порт. Всё, лирика кончилась.

Главное окно программы, позволяющее в режиме реального времени контролировать канал связи с хроматографом. В нижней части слева направо указаны: выбранный оператором порт для подключения хроматографа, текущее состояние порта (ошибка/открыт) и статус подключения (Хроматограф НАЙДЕН или ПОИСК). Присутствует возможность автоматического поиска устройства при включении хроматографа или обрыве связи. Если таковое случается, то софт самостоятельно инициирует последовательное сканирование портов COM1, COM2...COM10 с целью поиска «девайса» - отправляет команду, «слушает» ответ, если «пришёл» - продолжает/начинает измерения, если нет - следующий порт.

Главное окно программы управления хроматографом

 

Само собой, есть окно настроек хроматографа: параметры отбора дозы, скорость передачи COM-порта, характеристики внутреннего АЦП и так далее, при этом все значения сохраняются на жёсткий диск в ini-файл, т.е. при последующем закрытии/открытии программы они автоматически «подгружаются» и повторный ввод не требуется.

Окно настроек программы управления хроматографом

 

Окно установки временных интервалов для вычисления состава тяжёлых и лёгких фракций исследуемой газовой смеси. Слева вариант окна с корректно установленными параметрами, а справа программа «подсвечивает» газы, в отношении которых неверно указаны интервалы: перепутаны границы, нулевой интервал, пересечение интервалов и т.д. «Птичка» в нижней части - это защита от случайного изменения параметров: если она установлена, то редактировать таблицу можно, а если нет - то нет.

Окна временных интервалов программы управления хроматографом

 

Присутствуют и абсолютно скучные, но чрезвычайно полезные окна для установки температуры колонки и выдачи хроматографу произвольной команды от оператора. Кстати, значение заданной здесь температуры, а также той, до которой фактически успела нагреться хроматографическая колонка, отображаются как «Установленная» и «Текущая» в главном окне - реальное время, разумеется.

Окна терминала и установки температуры хроматографической колонки

 

Самым зрелищным во всём этом начинании является окно, отражающее on-line ход измерений в виде графиков, причём именно вкладка «Контроль работы» - остальные скудноваты на впечатления. В верхнем левом углу параметры хроматографической колонки в виде значения фактической температуры и состояния нагревателя: вишнёвый прямоугольник - нагреватель включен, серый - выключен.

Окно индикации текущих параметров

 

Имеется у программы и свой «голос» - если связь с хроматографом потеряна и попытки её восстановить не дают результата, то появляется вот такое ядовитое окно с «бодрящим» звуком. Уменьшающийся секундомер на кнопке означает количество секунд, оставшихся до следующей попытки поиска хроматографа.

Окно ошибки

 

А вот так я пишу и форматирую весь свой код.

Код С++

 

В качестве разнообразия ниже представлены несколько файлов в кодировке «Кириллица (Windows)», которые созданная программа генерирует в процессе своей работы: по нажатию на кнопку, автоматически или при наступлении контролируемого события.

 

Файл настроек [ini] - обновляется автоматически и по командам пользователя;

Файл истории [txt] - обновляется автоматически при наступлении тематического события;

Файл акта калибровки [html] - генерируется оператором после процесса калибровки хроматографа.