2014-12-01 4 views
0

У меня есть скрипт в cgi-bin, который генерирует эту страницу. Целью которого является обслуживание в качестве интерфейса для камеры панорамирования, которую я построил. Камера, делает кастрюлю, затем быстро возвращается в центральное положение. Я понял, что это потому, что каждый раз, когда загружается страница, все скрипты вызывается последовательно, заканчивая z.py. Как я могу исправить эту программу, чтобы сценарии не запускались до тех пор, пока не произойдет выбор? Как бы то ни было, все работает, когда загружается страница, , поэтому он всегда возвращается в центр.Требуется помощь в программировании скриптов CGI

#! /bin/sh 
echo "content-type: text/html" 
echo 
echo "<!DOCTYPE html><html><head><title>pan camera</title></head>" 
echo "<body>" 

echo "<form action=\"g.pt1\" method=\"get\">" 
echo "<select name=\"letter\" onchange=\"submit();\">" 
echo " <option value=\"w\">w</option>" 
echo " <option value=\"a\">a</option>" 
echo " <option value=\"s\">s</option>" 
echo " <option value=\"d\">d</option>" 
echo " <option value=\"z\">z</option>" 
i=0 
for i in a s d w z 
     do 
       echo " $i $(./$i.py)" 
     done 
echo "</select></form>" 
echo "<iframe src=\"localhost:8888/?action=stream\" width=\"330\" height=\"260\">" 
echo " <p>Your browser does not support iframes.</p>" 
echo "</iframe>" 
echo "</body></html>" 
+0

Я не думаю, что «все работает», как вы говорите. Оператор for/do/echo перечисляет кучу символов и предлагает файл Python, но это просто эхом и не запускается. Все, что я вижу здесь, заключается в том, что при изменении поля выбора «g.pt1» вызывается через CGI. Предположительно, эта вещь должна подобрать, выбрали ли w, a, s, d или z и переместили камеру. Если камера движется назад, я думаю, что это происходит из-за того, что делает 'g.pt1'. –

+0

$() является подстановкой команд, поэтому вы можете выполнять через echo. У меня также есть разрешение BS для доступа к группе www-data/dev/ttyACM0 –

ответ

0

Примечание - не «веб-программиста ...

Является ли сценарий выше 'все'? (или только выход?)

Кроме того, для этого типа использования вы можете захотеть использовать «здесь документ», чтобы избежать «экранирования» всех кавычек.

ЗАПРЕЩАЕТСЯ с помощью эхо-линии в «середине», «каждый раз» загружается страница.

$ (./$ i.py) будет работать, для того, a.py, затем s.py, ... а затем z.py

Снимите петлю и изменить эту логику «получить пользовательский ввод», и вам должно быть хорошо идти.

Смежные вопросы