?

Log in

No account? Create an account
  Journal   Friends   Calendar   User Info   Memories
 

Электронный миссионер

26th October, 2018. 1:50 pm. WEB-интерфейс с графиками и кнопочками...

Первый тост за локалхост
Я знаю отличную шутку про UDP, но не факт, что она до вас дойдет.
Я знаю отличную шутку про TCP, но если она до вас не дойдет, то я повторю.
А кто знает отличную шутку про ARP?


Есть любопытная задача. Есть удалённая машина (промышленный ПК или аналогичное под линуксом), которая снимает данные с датчиков. Там суровая страшная математика, и необходимо посмотреть промежуточные данные этой математики в реальном времени, так же иметь возможность задавать коэфициенты и смотреть результаты изменений. Ну там аплоад прошивки и прочая лабудень. Веб-интерфейс в интернеты торчать не должен.
Под реальным временем следует понимать, что сигнал там не непрерывный, как на оцилоскопе, а мы получаем раз в секунду (чаще или реже) набор точек (по 1274 с каждого канала, а их может быть от нуля до 24-х) и строим по ним графики. Т.е. не так уж и шустро.

Одно из важных условий, вся красота должна работать без интернета. Поэтому всякие java-скрипты, которые ведут в дальние дальние сайты - не подходят. Т.е. локально должно быть.
Я тут попробовал gnuplot в веб, по посту.



Одна из крутейших фишек: можно зумить графики, отключать лишние каналы и т.п. Что нам очень нужно, т.е. интерактивно с ними взаимодействовать. Из минусов, прям существенных - это то, что на систему нужно ставить gnuplot, а это может быть openwrt и версия может не давать web-графики. Плюс надо несколько графиков на странице и обновнять их.

php-скрипт страницы прост до безумия:



Сам гнуплотовскй скрипт выглядит так:

#! /usr/bin/gnuplot -persist
set terminal canvas enhanced mousing jsdir 'js'
set grid xtics ytics
plot 'result.dat'	using 1 w l t "Ch 1", \
	'' using 2 w l t "Ch 2", \
	'' using 3 w l t "Ch 3", \
	'' using 4 w l t "Ch 4", \
	'' using 5 w l t "Ch 5", \
	'' using 6 w l t "Ch 6", \
	'' using 7 w l t "Ch 7", \
	'' using 8 w l t "Ch 8", \
	'' using 9 w l t "Ch 9", \
	'' using 10 w l t "Ch 10", \
	'' using 11 w l t "Ch 11", \
	'' using 12 w l t "Ch 12", \


На самом деле, нужно сделать чтобы вызывалась внешняя программа регулярно, которая будет заполнять этот "result.dat", а потом вызывать сам гнуплот, а на вебстраничке это бы обновлялось. Это типа ajax-запрос. У меня стойкое чувство, что я изобретаю велосипед, и есть готовые решения из коробки, с построением графиков, запуском приложенией и загрузкой файлов. Потыкайте носом. Дизайн роли большой не играет.
Функциональный дизайн примерно такой:



Кнопки вызывают программу (бинарь), с параметрами радиобатонов/чекбоксов и полей ввода.

Read 29 Notes -Make Notes

Back A Day - Forward A Day