4足歩行ロボットの脚に対応したスライダーを操作してポーズを決め、
その時点のコマンドを任意のファイルに書き出すgtkdialog使用のシェルスクリプト。
#!/bin/bash
export test00='
echo $USER
'
export SERVO0='50'
export SERVO1='50'
export SERVO2='50'
export SERVO3='50'
export SERVO4='50'
export SERVO5='50'
export SERVO6='50'
export SERVO7='50'
export MAIN_DIALOG='
<window>
<vbox>
<hbox>
<vbox>
<hbox>
<frame サーボ5(%)>
<vscale height-request="200" range-min="10" range-max="90" range-step="1">
<default>50</default>
<variable>SERVO5</variable>
<action>bash -c "echo 5="$SERVO5"% > /dev/servoblaster"</action>
<action type="refresh">TEXT5</action>
</vscale>
</frame>
<frame サーボ4(%)>
<vscale height-request="200" range-min="10" range-max="90" range-step="1">
<default>50</default>
<variable>SERVO4</variable>
<action>bash -c "echo 4="$SERVO4"% > /dev/servoblaster"</action>
<action type="refresh">TEXT4</action>
</vscale>
</frame>
</hbox>
<hbox>
<frame サーボ7(%)>
<vscale height-request="200" range-min="10" range-max="90" range-step="1" inverted="true">
<default>50</default>
<variable>SERVO7</variable>
<action>bash -c "echo 7="$SERVO7"% > /dev/servoblaster"</action>
<action type="refresh">TEXT7</action>
</vscale>
</frame>
<frame サーボ6(%)>
<vscale height-request="200" range-min="10" range-max="90" range-step="1">
<default>50</default>
<variable>SERVO6</variable>
<action>bash -c "echo 6="$SERVO6"% > /dev/servoblaster"</action>
<action type="refresh">TEXT6</action>
</vscale>
</frame>
</hbox>
</vbox>
<vbox>
<hbox>
<button>
<label>ボタン 1</label>
<action>echo $LANG</action>
</button>
<vbox>
<button>
<label>前進</label>
<action>bash -c "$test00"</action>
</button>
<button>
<label>後退</label>
</button>
</vbox>
<button>
<label>ボタン4</label>
</button>
</hbox>
<vbox>
<frame>
<text>
<variable>TEXT0</variable>
<input>echo "echo 0="$SERVO0"% > /dev/servoblaster"</input>
</text>
<text>
<variable>TEXT1</variable>
<input>echo "echo 1="$SERVO1"% > /dev/servoblaster"</input>
</text>
<text>
<variable>TEXT2</variable>
<input>echo "echo 2="$SERVO2"% > /dev/servoblaster"</input>
</text>
<text>
<variable>TEXT3</variable>
<input>echo "echo 3="$SERVO3"% > /dev/servoblaster"</input>
</text>
<text>
<variable>TEXT4</variable>
<input>echo "echo 4="$SERVO4"% > /dev/servoblaster"</input>
</text>
<text>
<variable>TEXT5</variable>
<input>echo "echo 5="$SERVO5"% > /dev/servoblaster"</input>
</text>
<text>
<variable>TEXT6</variable>
<input>echo "echo 6="$SERVO6"% > /dev/servoblaster"</input>
</text>
<text>
<variable>TEXT7</variable>
<input>echo "echo 7="$SERVO7"% > /dev/servoblaster"</input>
</text>
</frame>
</vbox>
<entry>
<variable>FILE0</variable>
<default>"./temp.txt"</default>
</entry>
<button>
<label>Write</label>
<action>echo "echo 0="$SERVO0"% > /dev/servoblaster" > $FILE0</action>
<action>echo "echo 1="$SERVO1"% > /dev/servoblaster" >> $FILE0</action>
<action>echo "echo 2="$SERVO2"% > /dev/servoblaster" >> $FILE0</action>
<action>echo "echo 3="$SERVO3"% > /dev/servoblaster" >> $FILE0</action>
<action>echo "echo 4="$SERVO4"% > /dev/servoblaster" >> $FILE0</action>
<action>echo "echo 5="$SERVO5"% > /dev/servoblaster" >> $FILE0</action>
<action>echo "echo 6="$SERVO6"% > /dev/servoblaster" >> $FILE0</action>
<action>echo "echo 7="$SERVO7"% > /dev/servoblaster" >> $FILE0</action>
</button>
</vbox>
<vbox>
<hbox>
<frame サーボ0(%)>
<vscale height-request="200" range-min="10" range-max="90" range-step="1" inverted="true">
<default>50</default>
<variable>SERVO0</variable>
<action>bash -c "echo 0="$SERVO0"% > /dev/servoblaster"</action>
<action type="refresh">TEXT0</action>
</vscale>
</frame>
<frame サーボ1(%)>
<vscale height-request="200" range-min="10" range-max="90" range-step="1" inverted="true">
<default>50</default>
<variable>SERVO1</variable>
<action>bash -c "echo 1="$SERVO1"% > /dev/servoblaster"</action>
<action type="refresh">TEXT1</action>
</vscale>
</frame>
</hbox>
<hbox>
<frame サーボ2(%)>
<vscale height-request="200" range-min="10" range-max="90" range-step="1" inverted="true">
<default>50</default>
<variable>SERVO2</variable>
<action>bash -c "echo 2="$SERVO2"% > /dev/servoblaster"</action>
<action type="refresh">TEXT2</action>
</vscale>
</frame>
<frame サーボ3(%)>
<vscale height-request="200" range-min="10" range-max="90" range-step="1">
<default>50</default>
<variable>SERVO3</variable>
<action>bash -c "echo 3="$SERVO3"% > /dev/servoblaster"</action>
<action type="refresh">TEXT3</action>
</vscale>
</frame>
</hbox>
</vbox>
</hbox>
</vbox>
</window>
'
gtkdialog -p MAIN_DIALOG -c
というわけで、中央上部のボタンは前回同様飾り。
使い道の無かったシェルスクリプトに、多少は意味を持たせてみた。

0 件のコメント :
コメントを投稿