Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.01.2015, 20:15   #1
SergeS3
Banned
 
Регистрация: 05.01.2015
Сообщений: 18
Вес репутации: 0
SergeS3 is an unknown quantity at this point
По умолчанию Re: GL-iNet - вопросы начинающего

Поигрался еще немного с cgi shell скриптами и html, если кому интересно - ниже код для управления с вебстранички двумя leds на gl-inet, по аналогии легко делается на большее (у gl-inet еще, кроме led, есть пять GPIO на штырьках) или меньшее :-) число пинов. Управление с обратной связью, то есть сначала устанавливается требуемое значение пина, а потом читается реальное его состояния, после чего генерируется страничка с картинками и линками. В начале каждой секции есть четыре переменные, две из которых указывают на картинки, их конечно лучше заменить на желаемые вами картинки, лучше - расположенные локально, прямо на роутере, ну и за дизайн картинок не бейте :-), нарисовал в пейнте за пару минут... Файл называется two-leds.cgi, лежит в /www/cgi-bin/, права на исполнение должны быть дадены.

Если вызвать страничку без параметров: http://<IP>/cgi-bin/two-leds.cgi, то просто показываются состояния светодиодов.
А если с параметрами, то можно сразу светодиодами управлять, например: http://<IP>/cgi-bin/two-leds.cgi?green-led=off&red-led=off выключит оба светодиода, http://<IP>/cgi-bin/two-leds.cgi?red-led=on - включит только красный, не тронув зеленый. Ну и конечно картинки для управления кликабельные. Для удобства форматирования все это завернул в таблицу, если таблица таки не нужна - все "табличные" тэги (table, tr, td) можно удалить, они в работе не участвуют, только оформление.

Ну и сам файл:
PHP код:
#!/bin/sh
echo "Content-type: text/html; charset=utf-8"
echo
echo 
"<html>"
echo "<head> <title>Two LEDs on GL-iNet</title> </head>"
echo "<body>"
echo " <table border="0">"
#--------------------------------------------------
############ first button ##########
# variables
var_Btn_Name='green-led' #IMPORTANT: must be uniq!
var_ONpict='http://sergeskor.no-ip.org/Files/Tech/Green_LED_On.png'
var_OFFpict='http://sergeskor.no-ip.org/Files/Tech/Green_LED_Off.png'
var_TextLabel='Green LED Control'
############ set pin ############
if echo "$QUERY_STRINGegrep -"$var_Btn_Name=on"then
  
echo > /sys/devices/platform/leds-gpio/leds/gl-connect\:green\:lan/brightness
elif 
echo "$QUERY_STRINGegrep -"$var_Btn_Name=off"then
  
echo > /sys/devices/platform/leds-gpio/leds/gl-connect\:green\:lan/brightness
fi
############ end of set pin ############
echo "  <tr>" #start new table row
############ read pin ############
if cat /sys/devices/platform/leds-gpio/leds/gl-connect\:green\:lan/brightness egrep -"1"then
  
echo "   <td> <a href='$SCRIPT_NAME?$var_Btn_Name=off'> <img src='$var_ONpict' alt='$var_TextLabel'> </a> </td>"
else
  echo 
"   <td> <a href='$SCRIPT_NAME?$var_Btn_Name=on'> <img src='$var_OFFpict'  alt='$var_TextLabel'> </a> </td>"
fi
############ end of read pin ############
echo "   <td>$var_TextLabel</td>"
echo "  </tr>" #close table row
#--------------------------------------------------
############ second button ##########
#variables
var_Btn_Name='red-led'  #IMPORTANT: must be uniq!
var_ONpict='http://sergeskor.no-ip.org/Files/Tech/Red_LED_On.png'
var_OFFpict='http://sergeskor.no-ip.org/Files/Tech/Red_LED_Off.png'
var_TextLabel='Red LED Control'
############ set pin ############
if echo "$QUERY_STRINGegrep -"$var_Btn_Name=on"then
  
echo > /sys/devices/platform/leds-gpio/leds/gl-connect\:red\:wlan/brightness
elif 
echo "$QUERY_STRINGegrep -"$var_Btn_Name=off"then
  
echo > /sys/devices/platform/leds-gpio/leds/gl-connect\:red\:wlan/brightness
fi
############ end of set pin ############
echo "  <tr>" #start new table row
############ read pin ############
if cat /sys/devices/platform/leds-gpio/leds/gl-connect\:red\:wlan/brightness egrep -"1"then
  
echo "   <td> <a href='$SCRIPT_NAME?$var_Btn_Name=off'> <img src='$var_ONpict'  alt='$var_TextLabel'> </a> </td>"
else
  echo 
"   <td> <a href='$SCRIPT_NAME?$var_Btn_Name=on'> <img src='$var_OFFpict'  alt='$var_TextLabel'> </a> </td>"
fi
############ end of read pin ############
echo "   <td>$var_TextLabel</td>"
echo "  </tr>" #close table row
#--------------------------------------------------
### close all tags #
echo " </table>"
echo "</body>"
echo "</html>" 
Всем помогшим - спасибо за помощь, было интересно поиграться с роутером и cgi shell скриптами - никогда раньше не пробовал. Теперь буду думать, зачем оно мне надо и куда его всунуть :-)
SergeS3 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:12. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика