이 페이지를 생성하는 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>"
당신이 말하는 것처럼 "모든 것이 실행됩니다"라고 생각하지 않습니다. for/do/echo 문은 일련의 문자를 나열하고 파이썬 파일을 제안하지만, 단지 에코되고 실행되지 않습니다. 여기서 볼 수 있듯이 선택 상자를 변경하면 CGI를 통해 g.pt1이 호출됩니다. 아마도 w, a, s, d 또는 z가 선택되었는지 여부와 카메라를 이동해야 할 것입니다. 카메라가 뒤로 움직이면'g.pt1'이 무엇을 하던지에 기인한다고 생각합니다. –
$()는 명령 대체이므로 echo를 통해 exec 할 수 있습니다. 또한/dev/ttyACM0에 액세스 할 수 있도록 www 데이터 그룹에 대한 일부 BS 권한이 있습니다. –