реклама на сайте
подробности

 
 
> Web-интерфейс в железке, How does it write in code?
Tanker
сообщение Oct 1 2015, 09:23
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 30-06-07
Пользователь №: 28 806



Здравствуйте, Большие Дядьки!

Прогаю я железки с Ethernet-ами. Сейчас я общаюсь с ними по TCP/IP, на порт 512 шлю пакеты с запросами в формате протокола MODBUS TCP/IP, получаю ответы, всё чётко обменивается, на нашем спец-софте вижу значения парметров в железках в виде осциллограмм и могу их менять. Железки на LPC2378 в качестве стека uIP.

Но хочется по-взрослому! открываю Браузер, вбиваю IP железки, и на странице в Браузере смотрю параметры/редактирую их.
Мне решение задачи видится так:
1) Из Железки по НТТР (порт 80) загружает страницу в Браузер (содержимое html страницы железку не интересует, она просто отрабатывает GET по HTTP)
2) После загрузки страницы в Браузер:
2.1) js со страницы шлёт железке понятные ей запросы по TCP/IP на заданный порт (пакеты MODBUS TCP/IP на которые железка уже умеет отвечать)
2.2) железки отвечает (опять в виде понятного ей формата MODBUS TCP/IP)
2.3) js на странице расшифровывает полученные пакеты их и раскладывает значения по контролам на странице
3) если из контрола я меняю какой либо параметр, то опять таки js отправляет MODBUS TCP/IP пакет в мою железку и в следующий цыкл обмена, значение в контроле обновляется

Я посмотрел пример HTTP из комплекта uIP, там подход другой и очень затратный, надо при ответе на GET выдавать страницу порциями и смотреть некие ключевые слова, при встрече которых, надо подставлять на их место значения параметров (которые хотим отразить на странице). Т.е. гоняется туда-сюда море текстовой информации, и требуется постоянный парсинг текста при ответе.

В общем, посвятите как пишутся серьёзные веб-интерфейсы для железок. У меня дома роутер Зухель, вот у него это сделано красиво... вот как они это делают? в плане программинга.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Эдди
сообщение Oct 1 2015, 09:47
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Браузеры не умеют работать с бинарными массивами, надо использовать кодирование base64 (я так делал realtime видеотрансляцию на вебсокетах). А тоже поначалу обрадовался: думал, с вебсокетами можно будет работать в браузере точно так же, как в консольке с обычными сокетами...
В общем, либо передавать данные в текстовом виде, либо в base64, либо отказаться от использования браузера.

P.S. вот так у меня отправляются/принимаются команды для управления шаговиками через вебсокеты.

Сообщение отредактировал Эдди - Oct 1 2015, 09:49
Go to the top of the page
 
+Quote Post
Tanker
сообщение Oct 1 2015, 10:06
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 30-06-07
Пользователь №: 28 806



Цитата(Эдди @ Oct 1 2015, 12:47) *
Браузеры не умеют работать с бинарными массивами, надо использовать кодирование base64 (я так делал realtime видеотрансляцию на вебсокетах). А тоже поначалу обрадовался: думал, с вебсокетами можно будет работать в браузере точно так же, как в консольке с обычными сокетами...
В общем, либо передавать данные в текстовом виде, либо в base64, либо отказаться от использования браузера.

P.S. вот так у меня отправляются/принимаются команды для управления шаговиками через вебсокеты.

посмотрел буду разбираться.
Есть ещё работающие только в Chrome решения.

А если для отправки запроса на данные, отправлять с помощью PUT в железку файл а в файле уже бинарные данные (которые легко декодировать). А железка готовит ответ, потом я у неё делаю GET файла с ответом, и железка отвечает тоже файлом с бинарным содержимым, который уже распарсивает на контролы JS
?
(к сообщетсву)прошу понять, технологий много, не хотелось бы долго топтаться на месте пробую то одну то другую.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 18:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016