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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Управление устройством из WEB-браузера, Как устроено оно и что почитать?
skyled
сообщение Apr 12 2011, 08:42
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



На основе WIZ200WEB хочу иметь доступ к управлению устройством посредством WEB-браузера, в т.ч. с мобильного. В ту платку нужно загрузить rom-файл. Программа для его конвертации есть. Чтобы с ее помощью получить rom-файл нужно написать саму web-страничку. Вот теперь и возник главный вопрос как и в чем можно написать эту страничку? А как сделать так чтобы я на страничке ткнул в надпись, а плата отправила по USART нужную последовательность? Что можно почитать чтобы понять идею? Спасибо.
Прикрепленный файл  WIZ_EmbeddedWebServser_User_Manual_V1_0_2.pdf ( 2.47 мегабайт ) Кол-во скачиваний: 293
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Apr 12 2011, 09:29
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 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-страниц.
Go to the top of the page
 
+Quote Post
skyled
сообщение Apr 12 2011, 09:35
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Мне пока совсем не понятно как установить взаимосвязь между нажатием кнопки на страничке и конкретным действием МК на плате. Даже идеи не представляю пока.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Apr 12 2011, 09:39
Сообщение #4


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 запросов
Go to the top of the page
 
+Quote Post
skyled
сообщение Apr 12 2011, 09:45
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 12 2011, 10:04
Сообщение #6


Беспросветный оптимист
******

Группа: Свой
Сообщений: 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 =)
Go to the top of the page
 
+Quote Post
skyled
сообщение Apr 12 2011, 10:08
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 12 2011, 10:19
Сообщение #8


Беспросветный оптимист
******

Группа: Свой
Сообщений: 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 =)
Go to the top of the page
 
+Quote Post
skyled
сообщение Apr 12 2011, 10:35
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Меня на первое время вполне бы устроило только знать куда нажал пользователь на страничке. Что бы такое почитать чтобы понять как и откуда выковыривается то, что мне нужно?
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 12 2011, 10:52
Сообщение #10


Беспросветный оптимист
******

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



Цитата(skyled @ Apr 12 2011, 14:35) *
Меня на первое время вполне бы устроило только знать куда нажал пользователь на страничке. Что бы такое почитать чтобы понять как и откуда выковыривается то, что мне нужно?

http://ru.wikipedia.org/wiki/HTTP
Обычно в этом случае отправляют запрос Post


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Apr 12 2011, 11:02
Сообщение #11


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 запросы и откуда прога будет брать для них память.
Также при синхронном стиле выполнения процедур отправка в порт будет тормозить прикладной стек.
Ну и неясно как разруливать аутентификацию и доступ нескольких пользователей одновременно.
Go to the top of the page
 
+Quote Post
skyled
сообщение Apr 12 2011, 11:27
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



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

Сообщение отредактировал skyled - Apr 12 2011, 11:29
Go to the top of the page
 
+Quote Post
Слесарь
сообщение Apr 12 2011, 12:10
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 884
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Я управляю устройствами по WEB с помощью PIC18F67J60. Этот контроллер уже содержит модуль Ethernet.
Микрочип предлагает библиотеку TCP/IP Stack, в библионеке есть все необходимое для работы с HTTP протоколом. Так же есть, для удобства виндовс прога конвертор заранее заготовленных HTML страничек с ссылками эдитами, кнопками и картинками, в специальный С код для подключения к проекту на языке С, к другим С файлам программы контроллера.
Go to the top of the page
 
+Quote Post
uriy
сообщение Apr 12 2011, 12:19
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



думаю для начала вам стоит установить web сервер под винду или линукс, на вашу рабочую машину. Чтобы понять как это все работает. Далее начать изучать html, потом навалять свой cgi скрипт, а потом javascript и ajax.
Go to the top of the page
 
+Quote Post
Слесарь
сообщение Apr 12 2011, 12:35
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 884
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Цитата(uriy @ Apr 12 2011, 16:19) *
думаю для начала вам стоит установить web сервер под винду или линукс, на вашу рабочую машину. Чтобы понять как это все работает. Далее начать изучать html, потом навалять свой cgi скрипт, а потом javascript и ajax.

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

Ведь для управления устройством по WEB достаточно поверхностного знания HTML и боле-менее HTTP, совсем чуть-чуть TCP/IP.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:22
Рейтинг@Mail.ru


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