WEB-интерфейс с графиками и кнопочками...
Oct. 26th, 2018 01:50 pmПервый тост за локалхост
Я знаю отличную шутку про UDP, но не факт, что она до вас дойдет.
Я знаю отличную шутку про TCP, но если она до вас не дойдет, то я повторю.
А кто знает отличную шутку про ARP?
Есть любопытная задача. Есть удалённая машина (промышленный ПК или аналогичное под линуксом), которая снимает данные с датчиков. Там суровая страшная математика, и необходимо посмотреть промежуточные данные этой математики в реальном времени, так же иметь возможность задавать коэфициенты и смотреть результаты изменений. Ну там аплоад прошивки и прочая лабудень. Веб-интерфейс в интернеты торчать не должен.
Под реальным временем следует понимать, что сигнал там не непрерывный, как на оцилоскопе, а мы получаем раз в секунду (чаще или реже) набор точек (по 1274 с каждого канала, а их может быть от нуля до 24-х) и строим по ним графики. Т.е. не так уж и шустро.
Одно из важных условий, вся красота должна работать без интернета. Поэтому всякие java-скрипты, которые ведут в дальние дальние сайты - не подходят. Т.е. локально должно быть.
Я тут попробовал gnuplot в веб, по посту.

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

Кнопки вызывают программу (бинарь), с параметрами радиобатонов/чекбоксов и полей ввода.
Я знаю отличную шутку про 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-запрос. У меня стойкое чувство, что я изобретаю велосипед, и есть готовые решения из коробки, с построением графиков, запуском приложенией и загрузкой файлов. Потыкайте носом. Дизайн роли большой не играет.
Функциональный дизайн примерно такой:

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