Difference between revisions of "Blog 10"
Line 21: | Line 21: | ||
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 ) |
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: |
So the things I had to remove from the scripts were: |
||
while true |
while true; do |
||
done |
done |
||
echo |
echo |
||
Line 96: | Line 96: | ||
5. Wind at weather station |
5. Wind at weather station |
||
6. ui |
6. ui |
||
Print=ui |
|||
bw_tool -I -D /dev/i2c-1 -a 94 -w 10:00 |
|||
The first list can delete the and only turn on 1 of them. |
The first list can delete the and only turn on 1 of them. |
||
Line 101: | Line 104: | ||
I found out this later, but left the others there because I thought maybe some people would like to start with an other one. |
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) |
It directly removes everything from display. (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 |
|||
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 it will directly remove the previous text. Because at the beginning it wil if not 00 is pressed with !=. So, it will directly remove the previous text when pressed. |
When pressed it will directly remove the previous text. Because at the beginning it wil if not 00 is pressed with !=. So, it will directly remove the previous text when pressed. |
||
if [ $Button = "20" ]; then |
|||
Print=showtemp2 |
|||
fi |
|||
Then it will start the while loop. ( while true; do) |
Then it will start the while loop. ( while true; do) |
||
Line 114: | Line 129: | ||
) |
) |
||
Press the number you want to know and press the button. |
Press the number you want to know and press the button. |
||
bw_tool -I -D /dev/i2c-1 -a 94 -w 11:00 |
|||
At the end it says it has to place on the line 11:00 ( If you remove that part, it paste the text without the previous one, while refreshing.) |
At the end it says it has to place on the line 11:00 ( If you remove that part, it paste the text without the previous one, while refreshing.) |
||
and with ./$print he that finally print the every second the one information from the button pressed. |
and with ./$print he that finally print the every second the one information from the button pressed. |
||
sleep 1 |
|||
Thanks to the sleep you now have to wait a second to recognize the different button you pressed. Because it has to go trough that list again in that 1 sec. |
Thanks to the sleep you now have to wait a second to recognize the different button you pressed. Because it has to go trough that list again in that 1 sec. |
Revision as of 15:30, 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 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:
#!/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 final 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 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 can delete the and only turn on 1 of them. If you remove it, it wouldn't be a problem on the display but a error. 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 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 pressed it will directly remove the previous text. Because at the beginning it wil if not 00 is pressed with !=. So, it will directly remove the previous text when pressed.
if [ $Button = "20" ]; then Print=showtemp2 fi
Then it will start the while loop. ( while true; do) When started it will first look if it detects which button is pressed.
After that I made 6 if statements to check of that button is pressed. ( to detect which button gives which number:
bw_tool -I -D /dev/i2c-1 -a 94 -R 30:b 01
) Press the number you want to know and press the button.
bw_tool -I -D /dev/i2c-1 -a 94 -w 11:00
At the end it says it has to place on the line 11:00 ( If you remove that part, it paste the text without the previous one, while refreshing.) and with ./$print he that finally print the every second the one information from the button pressed.
sleep 1
Thanks to the sleep you now have to wait a second to recognize the different button you pressed. Because it has to go trough that list again in that 1 sec.
I hope this can also be useful for your own use.