|
Управление устройством из WEB-браузера, Как устроено оно и что почитать? |
|
|
|
Apr 12 2011, 09:29
|

Профессионал
    
Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409

|
Вам нужно на запросы браузера отправлять 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-страниц.
|
|
|
|
|
Apr 12 2011, 09:39
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(skyled @ Apr 12 2011, 11:42)  На основе WIZ200WEB хочу иметь доступ к управлению устройством посредством WEB-браузера, в т.ч. с мобильного. В ту платку нужно загрузить rom-файл. Программа для его конвертации есть. Чтобы с ее помощью получить rom-файл нужно написать саму web-страничку. Вот теперь и возник главный вопрос как и в чем можно написать эту страничку? А как сделать так чтобы я на страничке ткнул в надпись, а плата отправила по USART нужную последовательность? Что можно почитать чтобы понять идею? Спасибо.
WIZ_EmbeddedWebServser_User_Manual_V1_0_2.pdf ( 2.47 мегабайт )
Кол-во скачиваний: 293Ну из мануала ссылку на который вы дали действительно не понять как они предлагают управлять чем-то. Реализовали ли они это способом Get или способом Post или у них вообще поддержка CGI не организована. Не удивлюсь если китайцы в своей демке сделали какой-нить примитив который кроме как для зажигания светодиодов ни для чего не годится. Видно только, что отдельного модуля поддержки CGI у них в сорсах нет, а значит придется многое дописывать самим юзерам по обработке HTTP запросов
|
|
|
|
|
Apr 12 2011, 09:45
|
Местный
  
Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868

|
Цитата(AlexandrY @ Apr 12 2011, 12:39)  Ну из мануала ссылку на который вы дали действительно не понять как они предлагают управлять чем-то. Реализовали ли они это способом Get или способом Post или у них вообще поддержка CGI не организована. Не удивлюсь если китайцы в своей демке сделали какой-нить примитив который кроме как для зажигания светодиодов ни для чего не годится. Видно только, что отдельного модуля поддержки CGI у них в сорсах нет, а значит придется многое дописывать самим юзерам по обработке HTTP запросов Хоть они и корейцы, но действительно ничего мне пока не ясно. Может порекомендуете что-то подобное с большей степенью ясности? Насколько сложно будет что-то дописывать? Они для примера дают вот такой проект для mega128, что на борту. Может прояснит что. Я совершеннейший новичок в этих делах (ethernet-tcp/ip). Нужны подсказки и советы.
ex03_webserver.rar ( 1.79 мегабайт )
Кол-во скачиваний: 141
Сообщение отредактировал skyled - Apr 12 2011, 09:57
|
|
|
|
|
Apr 12 2011, 10:04
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(skyled @ Apr 12 2011, 13:45)  Хоть они и корейцы, но действительно ничего мне пока не ясно. Может порекомендуете что-то подобное с большей степенью ясности? Насколько сложно будет что-то дописывать? Они для примера дают вот такой проект для mega128, что на борту. Может прояснит что. Я совершеннейший новичок в этих делах (ethernet-tcp/ip). Нужны подсказки и советы.
ex03_webserver.rar ( 1.79 мегабайт )
Кол-во скачиваний: 141Написали уже, с чего начать. С изучения основ HTTP и HTML. написать в блокноте <HTML> <HEAD> <TITLE>Заголовок хелловорда</TITLE> </HEAD> <BODY> Хелловорд </BODY> </HTML> , поиграться немного. Это нулевой уровень. Дальше разбираться с кишками парсера HTTP из вашего примера, искать похожие буквы.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Apr 12 2011, 10:08
|
Местный
  
Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868

|
Цитата(MrYuran @ Apr 12 2011, 13:04)  Написали уже, с чего начать. С изучения основ HTTP и HTML. написать в блокноте <HTML> <HEAD> <TITLE>Заголовок хелловорда</TITLE> </HEAD> <BODY> Хелловорд </BODY> </HTML> , поиграться немного. Это нулевой уровень. Дальше разбираться с кишками парсера HTTP из вашего примера, искать похожие буквы. А где кишки искать? Ну положим я разберусь с языком HTML - HTTP. Ну напишу в блокноте и все получится. Что толку если сама идея взаимосвязи HTTP - Mega128 мне пока непонятна. Да и из-за преобразования в rom-файл наверняка все усложнится.
Сообщение отредактировал skyled - Apr 12 2011, 10:17
|
|
|
|
|
Apr 12 2011, 10:19
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(skyled @ Apr 12 2011, 14:08)  А где кишки искать? Ну положим я разберусь с языком HTML - HTTP. Ну напишу в блокноте и все получится. Что толку если сама идея взаимосвязи HTTP - Mega128 мне пока непонятна. А идея в том, что в ваше устройство приходит 2 типа запросов - Get или Post. По какому-то из существующих каналов связи (UART/Eth/Etc). Из большого количества буков вы выковыриваете небольшой кусочек информации - что именно от вас хочет пользователь. И генерируете для него ответную страницу, примерно как я написал, но посложнее, конечно. В простейшем случае можно заготовить несколько шаблонов ответов, а в нужные "клеточки" вписывать нужные значения. Но для начала всё-таки поиграйтесь со статическими страничками на компе, или на narod.ru попробуйте что-нибудь сваять. Всёж немного понятнее станет.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Apr 12 2011, 11:02
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(skyled @ Apr 12 2011, 12:45)  Хоть они и корейцы, но действительно ничего мне пока не ясно. Может порекомендуете что-то подобное с большей степенью ясности? Насколько сложно будет что-то дописывать? Они для примера дают вот такой проект для mega128, что на борту. Может прояснит что. Я совершеннейший новичок в этих делах (ethernet-tcp/ip). Нужны подсказки и советы.
ex03_webserver.rar ( 1.79 мегабайт )
Кол-во скачиваний: 141Начинайте анализ со строки 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 запросы и откуда прога будет брать для них память. Также при синхронном стиле выполнения процедур отправка в порт будет тормозить прикладной стек. Ну и неясно как разруливать аутентификацию и доступ нескольких пользователей одновременно.
|
|
|
|
|
Apr 12 2011, 11:27
|
Местный
  
Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868

|
Цитата Мутными здесь остаются моменты насколько объемными могут быть POST запросы и откуда прога будет брать для них память. Также при синхронном стиле выполнения процедур отправка в порт будет тормозить прикладной стек. Ну и неясно как разруливать аутентификацию и доступ нескольких пользователей одновременно. Пользователь может быть только один. Приложение будет индивидуального использования. Ресурсы - на плате есть внешняя память (ОЗУ и флеш). На счет тормозов прикладного стека так я понимаю W5300, что на плате, должна разруливать это дело. Весь ethernet на ней держится (как я понимаю, а иначе зачем она там). P.S. Спасибо за подсказки. Пытаюсь разобраться, хотя пока мало что понятно. Иерархию взаимоотношений в программе пока не вижу толком.
Сообщение отредактировал skyled - Apr 12 2011, 11:29
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|