Перейти к содержанию
    

Управление устройством из WEB-браузера

На основе WIZ200WEB хочу иметь доступ к управлению устройством посредством WEB-браузера, в т.ч. с мобильного. В ту платку нужно загрузить rom-файл. Программа для его конвертации есть. Чтобы с ее помощью получить rom-файл нужно написать саму web-страничку. Вот теперь и возник главный вопрос как и в чем можно написать эту страничку? А как сделать так чтобы я на страничке ткнул в надпись, а плата отправила по USART нужную последовательность? Что можно почитать чтобы понять идею? Спасибо.

WIZ_EmbeddedWebServser_User_Manual_V1_0_2.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам нужно на запросы браузера отправлять web-странички.

Например mozilla при попытку связи отправляет get-запрос

 

GET / HTTP/1.1
User-Agent: Opera/9.62 (Windows NT 6.1; U; ru) Presto/2.1.1
Host: 192.168.0.1
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: uk-UA,uk;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Connection: Keep-Alive

 

Вы можете вернуть ей web-страницу - напр. я возвращаю примитивную страницу ввода пароля (можете набрать её в блокноте, сменить расширение на html и открыть браузером)

 

<html>
<body>
<form action=http://192.168.0.1/ method=post>
Password<br>
<input type=text name=ps size="6" maxlength="6"/><br>
<input type=submit value=SUBMIT>
</form>
</body>
</form>
</form>

 

Нажимаете на кнопку SUBMIT браузер методом post отправляет то что было введено в поле ввода.

А там уже можете проверить пароль, вернуть другие страницы с другими полями, гипрессылками, надписями и т.д.

Почитайте о тегаx html - особенно о html, body, input, br. В opera 10.x можно просматривать и редактировать коды web-страниц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне пока совсем не понятно как установить взаимосвязь между нажатием кнопки на страничке и конкретным действием МК на плате. Даже идеи не представляю пока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На основе WIZ200WEB хочу иметь доступ к управлению устройством посредством WEB-браузера, в т.ч. с мобильного. В ту платку нужно загрузить rom-файл. Программа для его конвертации есть. Чтобы с ее помощью получить rom-файл нужно написать саму web-страничку. Вот теперь и возник главный вопрос как и в чем можно написать эту страничку? А как сделать так чтобы я на страничке ткнул в надпись, а плата отправила по USART нужную последовательность? Что можно почитать чтобы понять идею? Спасибо.

WIZ_EmbeddedWebServser_User_Manual_V1_0_2.pdf

 

Ну из мануала ссылку на который вы дали действительно не понять как они предлагают управлять чем-то.

Реализовали ли они это способом Get или способом Post или у них вообще поддержка CGI не организована.

Не удивлюсь если китайцы в своей демке сделали какой-нить примитив который кроме как для зажигания светодиодов ни для чего не годится.

Видно только, что отдельного модуля поддержки CGI у них в сорсах нет, а значит придется многое дописывать самим юзерам по обработке HTTP запросов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну из мануала ссылку на который вы дали действительно не понять как они предлагают управлять чем-то.

Реализовали ли они это способом Get или способом Post или у них вообще поддержка CGI не организована.

Не удивлюсь если китайцы в своей демке сделали какой-нить примитив который кроме как для зажигания светодиодов ни для чего не годится.

Видно только, что отдельного модуля поддержки CGI у них в сорсах нет, а значит придется многое дописывать самим юзерам по обработке HTTP запросов

Хоть они и корейцы, но действительно ничего мне пока не ясно. Может порекомендуете что-то подобное с большей степенью ясности? Насколько сложно будет что-то дописывать? Они для примера дают вот такой проект для mega128, что на борту. Может прояснит что. Я совершеннейший новичок в этих делах (ethernet-tcp/ip). Нужны подсказки и советы.ex03_webserver.rar

Изменено пользователем skyled

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хоть они и корейцы, но действительно ничего мне пока не ясно. Может порекомендуете что-то подобное с большей степенью ясности? Насколько сложно будет что-то дописывать? Они для примера дают вот такой проект для mega128, что на борту. Может прояснит что. Я совершеннейший новичок в этих делах (ethernet-tcp/ip). Нужны подсказки и советы.ex03_webserver.rar

Написали уже, с чего начать.

С изучения основ HTTP и HTML.

написать в блокноте

<HTML>

<HEAD>

<TITLE>Заголовок хелловорда</TITLE>

</HEAD>

<BODY>

Хелловорд

</BODY>

</HTML>

, поиграться немного. Это нулевой уровень.

Дальше разбираться с кишками парсера HTTP из вашего примера, искать похожие буквы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Написали уже, с чего начать.

С изучения основ HTTP и HTML.

написать в блокноте

<HTML>

<HEAD>

<TITLE>Заголовок хелловорда</TITLE>

</HEAD>

<BODY>

Хелловорд

</BODY>

</HTML>

, поиграться немного. Это нулевой уровень.

Дальше разбираться с кишками парсера HTTP из вашего примера, искать похожие буквы.

А где кишки искать? Ну положим я разберусь с языком HTML - HTTP. Ну напишу в блокноте и все получится. Что толку если сама идея взаимосвязи HTTP - Mega128 мне пока непонятна. Да и из-за преобразования в rom-файл наверняка все усложнится.

Изменено пользователем skyled

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где кишки искать? Ну положим я разберусь с языком HTML - HTTP. Ну напишу в блокноте и все получится. Что толку если сама идея взаимосвязи HTTP - Mega128 мне пока непонятна.

А идея в том, что в ваше устройство приходит 2 типа запросов - Get или Post.

По какому-то из существующих каналов связи (UART/Eth/Etc).

Из большого количества буков вы выковыриваете небольшой кусочек информации - что именно от вас хочет пользователь.

И генерируете для него ответную страницу, примерно как я написал, но посложнее, конечно.

В простейшем случае можно заготовить несколько шаблонов ответов, а в нужные "клеточки" вписывать нужные значения.

Но для начала всё-таки поиграйтесь со статическими страничками на компе, или на narod.ru попробуйте что-нибудь сваять.

Всёж немного понятнее станет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня на первое время вполне бы устроило только знать куда нажал пользователь на страничке. Что бы такое почитать чтобы понять как и откуда выковыривается то, что мне нужно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня на первое время вполне бы устроило только знать куда нажал пользователь на страничке. Что бы такое почитать чтобы понять как и откуда выковыривается то, что мне нужно?

http://ru.wikipedia.org/wiki/HTTP

Обычно в этом случае отправляют запрос Post

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хоть они и корейцы, но действительно ничего мне пока не ясно. Может порекомендуете что-то подобное с большей степенью ясности? Насколько сложно будет что-то дописывать? Они для примера дают вот такой проект для mega128, что на борту. Может прояснит что. Я совершеннейший новичок в этих делах (ethernet-tcp/ip). Нужны подсказки и советы.ex03_webserver.rar

 

Начинайте анализ со строки 397 в файле main.c

С этого места они начинают просматривать информацию которая пришла с вашего броузера методом POST.

 

Из всех файлов в вашем примере метод Post имеет только страница ipconfig.htm.

 

Откройте ее и увидите описание формы начинающееся со строки <form action="NETCONFIG.CGI" name="form1" method="post"> (лучше это делать в среде Dreamweaver )

Ключевое слово здесь: method="post"

Далее ниже будет строка <input type="submit" value="Network Config" action="NETCONF.CGI">

Это описание самой кнопки. Здесь важна фраза action="NETCONF.CGI"

 

Так вот файл main.c ищет в HTTP запросе надпись типа NETCONF.CGI и находит ее в строке 458 с кодом if(strstr(name,"NETCONFIG.CGI"))

после чего начинает парсить параметры идущие в HTTP запросе вслед за NETCONF.CGI в функции cgi_ipconfig

Какие они там будет зависеть от содержания формы с method="post"

Имена параметров кодируются строками вида <input name="dns" ...

И величины строками вида value="$DNS_SERVER_IP$">

Запись $DNS_SERVER_IP$ означает не саму величину, а шаблон на место которого ваш WEB сервер вставит реальное значение когда будет выдавать страницу в ваш броузер. Эта технология называется SSI (server side includes). (А обсуждаемая технология называется CGI)

 

Итого в процедуре cgi_ipconfig вы могли бы при обнаружении интересующего параметра послать его величину в UART.

Само название параметра и его значение должны быть написаны в форме HTML с кнопкой на вашей странице.

 

Более детально поймете когда снифером посмотрите пакеты отправляемые и принимаемые броузером по протоколу HТTP.

 

Мутными здесь остаются моменты насколько объемными могут быть POST запросы и откуда прога будет брать для них память.

Также при синхронном стиле выполнения процедур отправка в порт будет тормозить прикладной стек.

Ну и неясно как разруливать аутентификацию и доступ нескольких пользователей одновременно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мутными здесь остаются моменты насколько объемными могут быть POST запросы и откуда прога будет брать для них память.

Также при синхронном стиле выполнения процедур отправка в порт будет тормозить прикладной стек.

Ну и неясно как разруливать аутентификацию и доступ нескольких пользователей одновременно.

Пользователь может быть только один. Приложение будет индивидуального использования. Ресурсы - на плате есть внешняя память (ОЗУ и флеш). На счет тормозов прикладного стека так я понимаю W5300, что на плате, должна разруливать это дело. Весь ethernet на ней держится (как я понимаю, а иначе зачем она там).

P.S. Спасибо за подсказки. Пытаюсь разобраться, хотя пока мало что понятно. Иерархию взаимоотношений в программе пока не вижу толком.

Изменено пользователем skyled

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я управляю устройствами по WEB с помощью PIC18F67J60. Этот контроллер уже содержит модуль Ethernet.

Микрочип предлагает библиотеку TCP/IP Stack, в библионеке есть все необходимое для работы с HTTP протоколом. Так же есть, для удобства виндовс прога конвертор заранее заготовленных HTML страничек с ссылками эдитами, кнопками и картинками, в специальный С код для подключения к проекту на языке С, к другим С файлам программы контроллера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

думаю для начала вам стоит установить web сервер под винду или линукс, на вашу рабочую машину. Чтобы понять как это все работает. Далее начать изучать html, потом навалять свой cgi скрипт, а потом javascript и ajax.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

думаю для начала вам стоит установить web сервер под винду или линукс, на вашу рабочую машину. Чтобы понять как это все работает. Далее начать изучать html, потом навалять свой cgi скрипт, а потом javascript и ajax.

А зачем CGI и яваскрипт ajax ?

 

Ведь для управления устройством по WEB достаточно поверхностного знания HTML и боле-менее HTTP, совсем чуть-чуть TCP/IP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...