Difference between revisions of "Blog 10"
Line 29: | Line 29: | ||
Note! |
Note! |
||
You shouldn't delete 11:20, because the script from pushmenu isn't made |
You shouldn't delete 11:20, because the script from pushmenu isn't made to also remove the second line. It only cleans first row with 11:00. |
||
Example from the 'Time with load averages'(./time_load) has to look like after removing everything that is not needed: |
Example from how the 'Time with load averages'(./time_load) has to look like after removing everything that is not needed: |
||
#!/bin/bash |
#!/bin/bash |
||
Line 41: | Line 41: | ||
$DISPL -t $load |
$DISPL -t $load |
||
Now the |
Now the script itself: |
||
#!/bin/bash |
#!/bin/bash |
||
Line 90: | Line 90: | ||
done |
done |
||
All the 6 buttons reference to 6 scripts: |
All the 6 buttons reference to the 6 scripts: |
||
*1. Temperature |
*1. Temperature |
||
*2. Time |
*2. Time |
||
Line 101: | Line 101: | ||
bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 |
bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 |
||
The first list can |
The first list with #'s can be deleted, but I made it so that I can change it to my preferences. |
||
If you remove |
If you remove Print=ui, the display will start with an empty screen. (What isn't a problem, but you will get error messages on the terminal.) |
||
The 10:00 will at the start-up it remove everything from display. |
|||
I found out this later, but left the others there because I thought maybe some people would like to start with an other one. |
|||
It directly removes everything from display. (10:00) |
|||
while true; do |
while true; do |
||
Line 113: | Line 112: | ||
fi |
fi |
||
First it will look if there is a button pressed. If there is no button pressed it will be 00 and then it will be just refresh the last one. |
First it will look if there is a button pressed. If there is no button pressed it will be 00, and then it will be just refresh the last one. |
||
When pressed |
When a button is pressed 10 will directly remove the previous text. Because at the beginning of the code it will check: |
||
If 30:b doesn't check a number that isn't(with !=) 00 it will refresh the display. |
|||
So everything will be removed when the button is pressed. |
|||
if [ $Button = "20" ]; then |
if [ $Button = "20" ]; then |
||
Line 120: | Line 121: | ||
fi |
fi |
||
Then it checks with 6 times if there is a button pressed with the number given in the if statements. |
|||
Then it will start the while loop. ( while true; do) |
|||
When then for example someone presses button 1 -> 20. |
|||
When started it will first look if it detects which button is pressed. |
|||
Then it says Print=Showtemp2. |
|||
After that I made 6 if statements to check of that button is pressed. |
|||
( to detect which button gives which number: |
( to detect which button gives which number: |
||
bw_tool -I -D /dev/i2c-1 -a 94 -R 30:b |
bw_tool -I -D /dev/i2c-1 -a 94 -R 30:b |
||
01 |
01 |
||
) |
) |
||
Press the number you want to know and press the button. |
|||
bw_tool -I -D /dev/i2c-1 -a 94 -w 11:00 |
bw_tool -I -D /dev/i2c-1 -a 94 -w 11:00 |
||
Line 134: | Line 136: | ||
It says it has to place on the line 11:00. ( If you remove that part, it paste the text with the previous one, while refreshing.) |
It says it has to place on the line 11:00. ( If you remove that part, it paste the text with the previous one, while refreshing.) |
||
With ./$print he then finally prints every second the information from the button pressed that was last pressed. |
With ./$print he then finally prints every second the information from the button pressed that was last pressed. So it would then print out the information from showtemp2. |
||
sleep 1 |
sleep 1 |
Revision as of 16:08, 24 September 2015
Hello, this time I am finally going to put together what I wanted. I am going to use previous scripts:
- 1. Temperature (From blog 05)
- 2. Time with load averages (From blog 04)
- 3. CPU + GPU (From blog 08)
- 4. Temperature at weather station (From blog 09)
- 5. Wind a weather station (From blog 09)
- 6. Defining Temperature ( not visible on display! ) (From blog 05)
And put them all together in a push button menu. So that I can show the information from the script on the display and use the pushbuttons to control it.
I still had to modify the scripts. But I didn't want to change them so I made a copy from some: Example:
cp timer > time_load
I made the scripts more basics, so that they only print the information on screen. ( If I wouldn't do this it will make the screen refresh too much or ignore me pushing the button ) So the things I had to remove from the scripts were:
- while true; do
- done
- echo
- 10:00
- 11:00
- sleep
Note! You shouldn't delete 11:20, because the script from pushmenu isn't made to also remove the second line. It only cleans first row with 11:00.
Example from how the 'Time with load averages'(./time_load) has to look like after removing everything that is not needed:
#!/bin/bash DISPL="bw_tool -I -D /dev/i2c-1 -a 94" load=`cut -d' ' -f-3 /proc/loadavg` $DISPL -t `date +%H:%M:%S` $DISPL -W 11:20:b $DISPL -t $load
Now the script itself:
#!/bin/bash #Print=showtemp2 #Print=time_load #Print=DIAMoscow2 #Print=cgpu2 #Print=DIAMWind Print=ui bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 while true; do Button=`bw_tool -I -D /dev/i2c-1 -a 94 -R 30:b` if [ $Button != "00" ]; then bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 fi if [ $Button = "20" ]; then Print=showtemp2 fi if [ $Button = "10" ]; then Print=time_load fi if [ $Button = "08" ]; then Print=cgpu2 fi if [ $Button = "04" ]; then Print=DIAMoscow fi if [ $Button = "02" ]; then Print=DIAMWind fi if [ $Button = "01" ]; then Print=ui fi bw_tool -I -D /dev/i2c-1 -a 94 -w 11:00 ./$Print sleep 1 done
All the 6 buttons reference to the 6 scripts:
- 1. Temperature
- 2. Time
- 3. CPU + GPU
- 4. Temperature at weather station
- 5. Wind at weather station
- 6. ui
Print=ui bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00
The first list with #'s can be deleted, but I made it so that I can change it to my preferences. If you remove Print=ui, the display will start with an empty screen. (What isn't a problem, but you will get error messages on the terminal.) The 10:00 will at the start-up it remove everything from display.
while true; do Button=`bw_tool -I -D /dev/i2c-1 -a 94 -R 30:b` if [ $Button != "00" ]; then bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 fi
First it will look if there is a button pressed. If there is no button pressed it will be 00, and then it will be just refresh the last one. When a button is pressed 10 will directly remove the previous text. Because at the beginning of the code it will check: If 30:b doesn't check a number that isn't(with !=) 00 it will refresh the display. So everything will be removed when the button is pressed.
if [ $Button = "20" ]; then Print=showtemp2 fi
Then it checks with 6 times if there is a button pressed with the number given in the if statements. When then for example someone presses button 1 -> 20. Then it says Print=Showtemp2.
( to detect which button gives which number:
bw_tool -I -D /dev/i2c-1 -a 94 -R 30:b 01
)
bw_tool -I -D /dev/i2c-1 -a 94 -w 11:00 ./$Print
It says it has to place on the line 11:00. ( If you remove that part, it paste the text with the previous one, while refreshing.) With ./$print he then finally prints every second the information from the button pressed that was last pressed. So it would then print out the information from showtemp2.
sleep 1
Thanks to the sleep you now have to wait a second for the refresh of the screen but also for the code to scan which button has been pressed.
I hope this can also be useful for your own use!