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 件のコメント :
コメントを投稿