Skip to content

wildfielded/pro-owen

Repository files navigation

🇬🇧 Disclaimer

⚠️ This project is intended for use in a company with Russian-speaking specialists. Therefore, all explanations, comments, and other texts are provided in Russian only.


🇷🇺 Рефакторинг старого ПО (Visual Basic) на новый стек (Python)

Python Apache Linux Ubuntu Windows HTML5 CSS3 JavaScript JSON PyQt5 PyPNG


Исходное задание

  • На сервере ПО OWEN собирает телеметрию с датчиков. Программа визуального контроля запускается там же на сервере в единственном экземпляре, что требует дополнительной RDP-сессии на АРМ дежурного персонала, и к тому же не позволяет одновременный контроль с нескольких рабочих мест.
  • Есть возможность некоторые температурные показания сбрасывать в файл проприетарного формата OPR. Этот файл забирает VB-программа на единственную рабочую станцию и выводит в отдельном окне с интервалом обновления около 20с.
  • Для каждого измерения есть два пороговых значения для отображения цветового предупреждения (yellow, red) и звуковой сигнализации, которые также хранятся в отдельном конфигурационном файле, где можно изменять пороги.
  • В графике отображается история измерений за определённый интервал времени (например, за последний час) — некий аналог графиков в MRTG.
  • Теперь надо отвязаться от ОС Windows и другого ПО Microsoft на рабочих станциях, и ту же информацию выводить в окне браузера или платформонезависимого приложения для одновременной работы на нескольких рабочих станциях без необходимости установки излишнего ПО (VB-soft и некоторые модули от MS Access). С алертами и музыкой. 😉.
  • Таким образом, по-прежнему надо забирать файлы с сетевого ресурса и потом уже обрабатывать полученные данные.
  • Поскольку всё происходит в среде Microsoft AD со строгими политиками, доступных без авторизации сетевых шар нет. Поэтому рекомендуется создание отдельной сервисной учётки для доступа куда надо.

Варианты исполнения

Все варианты собраны в одном репозитории, чтобы было проще использовать специалистам без глубоких знаний умностей типа Docker и CI/CD.

PoC (Proof of Concept) создан на стеке Python/Apache/Ubuntu. Отдельный README.md с инструкциями по развёртыванию прилагается.

WebServer — переработанный из PoC серверный вариант.

OwenCommon — в модуле common_func.py собран функционал, общий для серверного и десктопного вариантов.

Desktop WebView создан как desktop-приложение на основе наработок из PoC. Отдельный README.md с инструкциями по развёртыванию прилагается.

OwenEmulator создан для имитации работы сервера OWEN исключительно для разработки при отсутствии доступа к серверу. Создаёт на сетевом ресурсе точно такой же по формату файл с данными телеизмерений, генерируемых некоторым случайным образом.

TODO (ближайшие планы)

  • Упрощение и автоматизация деплоя.
  • Улучшайзинг кода и фиченаворотинг. Попытаться сделать код более оптимальным и читабельным по мере прокачки экспы.

About

Refactoring old VisualBasic soft to OWEN monitoring

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published