|
Веб сервер, управление и индикация |
|
|
|
Jan 10 2012, 08:48
|
Знающий
   
Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464

|
Имеется ARM9 с Debian Linux на борту. Всё функционирует отлично. Хочется создать страницу, которая отображала бы значение некоторой переменной(например с АЦП) и позволяла бы по нажатию на странице кнопки менять логическое состояние GPIO на ARM9. Подскажите как реализуются подобные вещи. С линуксом знаком поверхностно, с веб не работал вообще. Незнаю откуда зайти
Сообщение отредактировал Zelepuk - Jan 10 2012, 08:55
|
|
|
|
|
 |
Ответов
|
Jan 10 2012, 16:58
|
Знающий
   
Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464

|
Цитата(am1808 @ Jan 10 2012, 19:40)  да что вы парню голову морочите и усложняете ему задачу  на си пишешь простой сервер, который слушает 80 порт, по GET || POST запросу от броузера вываливаешь ему (клиенту, тобишь броузеру) необходимые значения переменных, в виде простейшего html, вот и все решение( 100-150 строк кода ) можете немного подробнее, пока что сложновато звучит Цитата(uriy @ Jan 10 2012, 18:06)  Изучите что такое cgi. cgi скрипты обычно находятся в папке cgi-bin вебсервера. Для работы скриптов с железом пишите программу на си. помещаете ее в папку cgi-bin. Из броузера методом get или post отправляете запросы в ваш cgi скрипт. Они туда приходят так же как если бы вы запускали эту программу из консоли с параметрами. Параметры и есть ваш запрос из броузера. В ответ скрипт выдает инфу, делает это обычным printf ом. Я использовал вебвервер boa. давно не поддерживается, но мне был нужен под ucLinux. Сделано управление/чтение пинов, обвноление ПО, запись параметров в файл. вот тут более подробно, если я правильно понял, вы имеете ввиду шлюз.
Сообщение отредактировал Zelepuk - Jan 10 2012, 16:59
|
|
|
|
|
Jan 10 2012, 17:01
|
Частый гость
 
Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337

|
Цитата(Zelepuk @ Jan 10 2012, 20:58)  можете немного подробнее, пока что сложновато звучит например, посмотрите вот тут http://www.paulgriffiths.net/program/c/webserv.phpили гуглите "simple web server on c" Цитата(Zelepuk @ Jan 10 2012, 20:58)  вот тут более подробно, если я правильно понял, вы имеете ввиду шлюз. тут имеется ввиду какой либо веб-сервер
|
|
|
|
|
Jan 10 2012, 19:56
|
Знающий
   
Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464

|
Цитата(am1808 @ Jan 10 2012, 21:01)  например, посмотрите вот тут http://www.paulgriffiths.net/program/c/webserv.phpили гуглите "simple web server on c" тут имеется ввиду какой либо веб-сервер а если у меня уже стоит Apache? так наверное и придётся php курить...
|
|
|
|
|
Jan 11 2012, 04:58
|
Частый гость
 
Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337

|
Цитата(Zelepuk @ Jan 10 2012, 23:56)  а если у меня уже стоит Apache? так наверное и придётся php курить... вы же сами написали что вам нужно: Цитата(Zelepuk @ Jan 10 2012, 23:56)  нужно вот что: 1) вывести некую цифру, отображающую значение переменной. 2) кнопочка, по нажатии которой зажигается лампочка" отсюда вывод такой: проще написать самописный серверок под ваши нужды, из которого вы "более проще достучитесь до системы" а выбирать как делать, смотрите сами, как именно вам проще
|
|
|
|
|
Jan 11 2012, 09:42
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(am1808 @ Jan 11 2012, 08:58)  отсюда вывод такой: проще написать самописный серверок под ваши нужды, из которого вы "более проще достучитесь до системы" а выбирать как делать, смотрите сами, как именно вам проще До GPIO как раз проще достучаться из шелла и haserl который тут уже советовали очень удобен, вот пример из CGI: Код <% if test "$FORM_system" = "audio_on"; then %> <% echo "1" > /sys/class/gpio/gpio50/value %> <% fi %>
<% if test "$FORM_system" = "audio_off"; then %> <% echo "0" > /sys/class/gpio/gpio50/value %> <% fi %>
|
|
|
|
|
Jan 11 2012, 10:01
|
Частый гость
 
Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337

|
Цитата(sasamy @ Jan 11 2012, 13:42)  До GPIO как раз проще достучаться из шелла и haserl который тут уже советовали очень удобен, вот пример из CGI: Код <% if test "$FORM_system" = "audio_on"; then %> <% echo "1" > /sys/class/gpio/gpio50/value %> <% fi %>
<% if test "$FORM_system" = "audio_off"; then %> <% echo "0" > /sys/class/gpio/gpio50/value %> <% fi %> ну для этого ему еще надо ядро пересобрать(если этот интерфей не поддерживается у него), во - первых, во - вторых, да, с GPIO, так же как и с /proc без разницы как работать(так же как и с любым другим файлом), при условии, если ему нужно вывалить клиенту какую то текущую инфу из файла или записать что то в файл. ну а если ему значения переменных выводить, то тут ему нужно каким-то образом, опять же, например, через файлы взаимодействовать, или же, через тот же /proc, /sysfs, если у него работает какой-то модуль, или, чтобы узнать внутренние значения переменных из модуля. опять же, веб сервер сконфигурить надо, ему придется разбраться с тем же cgi, php и прочей лабудой, времени он потратит больше, нежели, чем он напишет простой серверок с использованием сокетов за пару часов, не забивая голову лишним, и просто и легко выплюнет клиенту необходимую системную инфу или подергает ножками на GPIO.
|
|
|
|
|
Jan 11 2012, 10:37
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(am1808 @ Jan 11 2012, 14:01)  опять же, веб сервер сконфигурить надо, ему придется разбраться с тем же cgi, php и прочей лабудой, времени он потратит больше, нежели, чем он напишет простой серверок с использованием сокетов за пару часов, не забивая голову лишним PHP тут не нужен а с html ознакомиться в любом случае придется. Писать сервак хоть и простой в то время как существуют готовые решения глупо - это сейчас нужно одну переменную вывести а потом развивать систему попросту умаешься, правда я не понял про какие переменные идет речь. Для GPIO если не использовать стандартный интерфейс sysfs нужно мапить регистры переиферии в юзерспейс, при этом фактически нужно давать доступ программе ко всей физической памяти системы (/dev/mem), выставлять эту возможность в Интеренет - это вообще безумие.
|
|
|
|
Сообщений в этой теме
Zelepuk Веб сервер Jan 10 2012, 08:48 Idle 1. сервер - apache/встроенный в busybox/google ... Jan 10 2012, 09:56 kolobok0 Цитата(Zelepuk @ Jan 10 2012, 12:48) .. П... Jan 10 2012, 10:57 Zelepuk нужно вот что:
1) вывести некую цифру, отображающу... Jan 10 2012, 12:27 am1808 да что вы парню голову морочите и усложняете ему з... Jan 10 2012, 15:40 uriy Цитатаопять же, веб сервер сконфигурить надо, ему ... Jan 11 2012, 13:30 am1808 Цитата(uriy @ Jan 11 2012, 17:30) Чушь я ... Jan 11 2012, 14:31  sasamy Цитата(am1808 @ Jan 11 2012, 18:31) ядро,... Jan 11 2012, 18:29   am1808 Цитата(sasamy @ Jan 11 2012, 22:29) Писат... Jan 11 2012, 18:40    sasamy Цитата(am1808 @ Jan 11 2012, 22:40) это в... Jan 11 2012, 19:15 uriy Цитатая вам за день такой сервер напишу, это так, ... Jan 11 2012, 18:18 am1808 Цитата(uriy @ Jan 11 2012, 22:18) Я вас з... Jan 11 2012, 18:23 uriy Я думаю уже все поняли что am1808 не способен напи... Jan 12 2012, 05:08 Idle Цитата(uriy @ Jan 12 2012, 08:08) Я думаю... Jan 12 2012, 06:06  sasamy Цитата(Idle @ Jan 12 2012, 10:06) я не по... Jan 12 2012, 06:58   Idle Цитата(sasamy @ Jan 12 2012, 09:58) Ну и ... Jan 12 2012, 08:09 am1808 Цитата(uriy @ Jan 12 2012, 09:08) Я думаю... Jan 12 2012, 06:11 uriy Не надо php! Для cgi нужен си и shell с ними р... Jan 12 2012, 09:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|