Марафон удалёнки
На Хабр Карьере стартует новый марафон удалёнки! Прокачиваем себя, команду и свое рабочее место. Присоединяйтесь!
R50 e9c927ed4316abc7e2bb61356ecd08b8
Системное программирование

Калибратор Блока Управления лазером / Calibrator of laser control unit

Добавлено 15 сен 2016 в 16:43
Программа калибровки блока управления(БУ) лазером. Интерфейс к БУ - обычный COM-порт, БУ может быть несколько.
Задачи калибровки: считывание текущих калибровок, сохранение их в файл, калибровка линий задержки лазерных импульсов. Требования к калибровке - расхождение в диапазоне задержки сигнала не должна превышать половины наносекунды. Расчет параметров производится по специфической формуле для прошивки БУ. Была использована клиент-серверная архитектура приложения. В качестве GUI использовалась связка Html+jQuery+NodeWebkit, при этом возможность использовать любой браузер осталась. Так же была достигнута идентичность GUI во всех основных браузерах. Весь основной функционал был реализован отдельным приложением с собственным веб-сервером, через который и работает GUI. Выбор данной архитектуры был вызван в связи c наличием в winapi глюков, а так же его переусложненностью для создания GUI. Так же необходимо было оставить возможность легкой доработки GUI для других языков, т.к. лазеры поставляются и в другие страны, а в перспективе и кросплатформенность.
Процесс калибровки реазлизован в виде пошагового мастера с картинками.

Program for precise tuning laser control unit(LCU). LCU have 2 controllers: FPGA and Mega.
Interface to LCU - com-port. Few LCU can be connected to one PC.
Calibration logic: get current calibration parameters and save them to file, then step-by-step calibration of every line of laser impulse delays.
Demands: delay calibration precise must be from -0,25 to +0,25 nanoseconds. It calculating with complicated formula and unique for every controller and LCU.

Technologies
GUI: NodeWebkit, jQuery, Font Awesome
Core: SP-Forth, web-sockets
6c0989c5cf 5d64cfe454 E7ed44bc1c