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



Кнопки вызывают программу (бинарь), с параметрами радиобатонов/чекбоксов и полей ввода.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 03:53 pm
Powered by Dreamwidth Studios