Zelepuk 0 10 января, 2012 Опубликовано 10 января, 2012 (изменено) · Жалоба Имеется ARM9 с Debian Linux на борту. Всё функционирует отлично. Хочется создать страницу, которая отображала бы значение некоторой переменной(например с АЦП) и позволяла бы по нажатию на странице кнопки менять логическое состояние GPIO на ARM9. Подскажите как реализуются подобные вещи. С линуксом знаком поверхностно, с веб не работал вообще. :laughing: Незнаю откуда зайти Изменено 10 января, 2012 пользователем Zelepuk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Idle 0 10 января, 2012 Опубликовано 10 января, 2012 · Жалоба 1. сервер - apache/встроенный в busybox/google 'embedded http server' 2. "выполнялка скриптов" - php/haserl/самописный бинарник/google 'embedded php' 3. скрипт на языке этой выполнялки, который выполняет нужные действия и генерирует html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 10 января, 2012 Опубликовано 10 января, 2012 · Жалоба .. Подскажите как реализуются подобные вещи...Незнаю откуда зайти с зади :))) 1) вы должны чётко понимать что должен получить броузер клиента (явно написанный текст в HTML). 2) необходимо научить скрипт отрабатывающий на стороне сервака генерить необходимый HTML в зависимости от переменных сервака. 3) провести локальные переменные сервака до скрипта работающего на сервере. например. вы хотите подсветить в зависимости от даты некий текст на страничке. 1) смотрим как меняется цвет в HTML 2) находим место и вставляем в скрипт (как пример php) HTML код который должен высылаться клиенту. 3) смотрим реализацию функции типа гэт дата локально на сервере самим пых-пых... удачи вам (круглый) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zelepuk 0 10 января, 2012 Опубликовано 10 января, 2012 · Жалоба нужно вот что: 1) вывести некую цифру, отображающую значение переменной. 2) кнопочка, по нажатии которой зажигается лампочка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 10 января, 2012 Опубликовано 10 января, 2012 · Жалоба Изучите что такое cgi. cgi скрипты обычно находятся в папке cgi-bin вебсервера. Для работы скриптов с железом пишите программу на си. помещаете ее в папку cgi-bin. Из броузера методом get или post отправляете запросы в ваш cgi скрипт. Они туда приходят так же как если бы вы запускали эту программу из консоли с параметрами. Параметры и есть ваш запрос из броузера. В ответ скрипт выдает инфу, делает это обычным printf ом. Я использовал вебвервер boa. давно не поддерживается, но мне был нужен под ucLinux. Сделано управление/чтение пинов, обвноление ПО, запись параметров в файл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
am1808 0 10 января, 2012 Опубликовано 10 января, 2012 (изменено) · Жалоба да что вы парню голову морочите и усложняете ему задачу на си пишешь простой сервер, который слушает 80 порт, по GET || POST запросу от броузера вываливаешь ему (клиенту, тобишь броузеру) необходимые значения переменных, в виде простейшего html, вот и все решение( 100-150 строк кода ) Изменено 10 января, 2012 пользователем am1808 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zelepuk 0 10 января, 2012 Опубликовано 10 января, 2012 (изменено) · Жалоба да что вы парню голову морочите и усложняете ему задачу на си пишешь простой сервер, который слушает 80 порт, по GET || POST запросу от броузера вываливаешь ему (клиенту, тобишь броузеру) необходимые значения переменных, в виде простейшего html, вот и все решение( 100-150 строк кода ) можете немного подробнее, пока что сложновато звучит Изучите что такое cgi. cgi скрипты обычно находятся в папке cgi-bin вебсервера. Для работы скриптов с железом пишите программу на си. помещаете ее в папку cgi-bin. Из броузера методом get или post отправляете запросы в ваш cgi скрипт. Они туда приходят так же как если бы вы запускали эту программу из консоли с параметрами. Параметры и есть ваш запрос из броузера. В ответ скрипт выдает инфу, делает это обычным printf ом. Я использовал вебвервер boa. давно не поддерживается, но мне был нужен под ucLinux. Сделано управление/чтение пинов, обвноление ПО, запись параметров в файл. вот тут более подробно, если я правильно понял, вы имеете ввиду шлюз. Изменено 10 января, 2012 пользователем Zelepuk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
am1808 0 10 января, 2012 Опубликовано 10 января, 2012 · Жалоба можете немного подробнее, пока что сложновато звучит например, посмотрите вот тут http://www.paulgriffiths.net/program/c/webserv.php или гуглите "simple web server on c" вот тут более подробно, если я правильно понял, вы имеете ввиду шлюз. тут имеется ввиду какой либо веб-сервер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zelepuk 0 10 января, 2012 Опубликовано 10 января, 2012 · Жалоба например, посмотрите вот тут http://www.paulgriffiths.net/program/c/webserv.php или гуглите "simple web server on c" тут имеется ввиду какой либо веб-сервер а если у меня уже стоит Apache? так наверное и придётся php курить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
am1808 0 11 января, 2012 Опубликовано 11 января, 2012 · Жалоба а если у меня уже стоит Apache? так наверное и придётся php курить... вы же сами написали что вам нужно: нужно вот что: 1) вывести некую цифру, отображающую значение переменной. 2) кнопочка, по нажатии которой зажигается лампочка" отсюда вывод такой: проще написать самописный серверок под ваши нужды, из которого вы "более проще достучитесь до системы" а выбирать как делать, смотрите сами, как именно вам проще Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 11 января, 2012 Опубликовано 11 января, 2012 · Жалоба отсюда вывод такой: проще написать самописный серверок под ваши нужды, из которого вы "более проще достучитесь до системы" а выбирать как делать, смотрите сами, как именно вам проще До 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 %> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
am1808 0 11 января, 2012 Опубликовано 11 января, 2012 · Жалоба До 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 11 января, 2012 Опубликовано 11 января, 2012 · Жалоба опять же, веб сервер сконфигурить надо, ему придется разбраться с тем же cgi, php и прочей лабудой, времени он потратит больше, нежели, чем он напишет простой серверок с использованием сокетов за пару часов, не забивая голову лишним PHP тут не нужен а с html ознакомиться в любом случае придется. Писать сервак хоть и простой в то время как существуют готовые решения глупо - это сейчас нужно одну переменную вывести а потом развивать систему попросту умаешься, правда я не понял про какие переменные идет речь. Для GPIO если не использовать стандартный интерфейс sysfs нужно мапить регистры переиферии в юзерспейс, при этом фактически нужно давать доступ программе ко всей физической памяти системы (/dev/mem), выставлять эту возможность в Интеренет - это вообще безумие. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 11 января, 2012 Опубликовано 11 января, 2012 · Жалоба опять же, веб сервер сконфигурить надо, ему придется разбраться с тем же cgi, php и прочей лабудой, времени он потратит больше, нежели, чем он напишет простой серверок с использованием сокетов за пару часов, не забивая голову лишним, и просто и легко выплюнет клиенту необходимую системную инфу или подергает ножками на GPIO.Чушь я не верю что вы сможете написать вебсервер с поддержкой cgi и выдачей картинок даже за месяц! У автора уже есть готовый Apache, все настройки можно оставить по дефолту. Использовать php для доступа к железу на мой взгляд крайне не удачная затея. ну для этого ему еще надо ядро пересобрать(если этот интерфей не поддерживается у него)Думаю Apache по дефолту поддерживает shell скрипты и другие исполняемы файлы. Если и не поддерживает то ядро точно пересобирать не надо, надо будет лишь сам сервер перекомпилить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
am1808 0 11 января, 2012 Опубликовано 11 января, 2012 · Жалоба Чушь я не верю что вы сможете написать вебсервер с поддержкой cgi и выдачей картинок даже за месяц! У автора уже есть готовый Apache, все настройки можно оставить по дефолту. Использовать php для доступа к железу на мой взгляд крайне не удачная затея. я вам за день такой сервер напишу, это так, к слову. почитайте про socket Berkley, для вашего же блага, это два cgi не нужен - это три Думаю Apache по дефолту поддерживает shell скрипты и другие исполняемы файлы. Если и не поддерживает то ядро точно пересобирать не надо, надо будет лишь сам сервер перекомпилить. ядро и апач никак не связаны по большому счету, ядро, я упоминал, необходимо пересобрать для поддержки /sys/class/gpio для работы из userspace Для GPIO если не использовать стандартный интерфейс sysfs нужно мапить регистры переиферии в юзерспейс, при этом фактически нужно давать доступ программе ко всей физической памяти системы (/dev/mem), выставлять эту возможность в Интеренет - это вообще безумие. есть модули ядра, ТС правильнее под его задачи написать драйвер и взаимодействовать из юсерспейса(из сервера) с этим модулем. конечно, только безумный будет мапить физ. память из юсерспейса Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться