Difference between revisions of "Blog 13"

From BitWizard Wiki
Jump to navigation Jump to search
Line 47: Line 47:


This parts check if the button is pressed. If the button is pressed it will
This parts check if the button is pressed. If the button is pressed it will

if [ $BDetect = "02" ]; then
Number=$(((Number + 10) % 12 )) # can be changed to 11 if you want it to get 1 down
fi
if [ $BDetect = "01" ]; then
Number=$(((Number + 2) % 12 )) #can be changed to 1 if you want to get it up by 1 / I did 2 because I think that is more functional.
fi

In this part it counts up or down with which the button is pressed. With button 2 is counts down an with button 1 it counts up.
It counts down and up with 2. So that every time 2 new options gets showed on the display. Because in the array there are 12 menu's, I used %12 that when counting up or down it will continue at the top or the beginning. ( so that you not have to go all back for option 1-2 when you are at option 11-12. )
I also explained this in [[blog 12]]:
With % it shares the number before it with the number after it and will give as result the number that couldn't get shared trough it.
So simple examples:
12%5 (12:5)=2 | 2 times 5 | 2*5=10 | 12-10 = 2
14%12 (14:12)=1 | 1 time 12 | 1*12=12 | 14-12 = 2





Revision as of 09:17, 21 October 2015

Scroll Menu

Scroll Menu with multiple functions, where with every functions you can set up certain things. Example: Changing Alarm Time Changing volume

The reason I made this, is because I don't want to use the raspberry pi only for just 1 thing. I want to use it for multiple script and don't want to use a command section to get the other script to work. Here I can also put all my future projects in.


First mission is to make it possible that it goes up and down in the menu and than choose a certain function.

  • 1. Select option 1
  • 2. Select option 2
  • 3. go to the begin of the menu
  • 4. Go to the End of the menu
  • 5. Going down in the menu
  • 6. Going up in the menu

For this script I used some techniques from previous scripts. That you can see in blog 10(PushMenu) and blog 12(AlarmMenu).

array=( pushmenu2 AlarmMenu Jaap Tim Martin Koos Willem Bas Luuk Richard Nick Alex)
# Element 0       1         2    3   4      5    6      7   8    9       10   11

An array is a list names that are put together and you can find with typing it's number. The number counting begins with 0 and ends until you stopped giving names. For this I used 2 names of previous scripts and 10 other random names.

Narray=( "Temp Menu" "Alarm Menu" Settings "Board menu" "Fries Menu" "Banana Menu" "vega burger" "wc menu" Bananaphone "2001:ABC" "ghost server" "My  name is...")
# Element 0           1           2         3            4            5             6             7        8            9          10             11

This is the second script and I called it Narray. (Names Array. You can of course call it what ever you want ) This array I made to print this text out. As you can see some of them don't use quotation marks. I only did that to say that you only really need to put them if you want to print a text with a space in it. And also here I gave the other 10 random names.

if [ $BDetect  = "20" ]; then
   ./${array[$Number]}
fi
if [ $BDetect  = "10" ]; then
  ./${array[$Numb2]}
fi

This parts check if the button is pressed. If the button is pressed it will

if [ $BDetect  = "02" ]; then
  Number=$(((Number + 10) % 12 )) # can be changed to 11 if you want it to get 1 down
fi
 
if [ $BDetect  = "01" ]; then
  Number=$(((Number + 2) % 12 )) #can be changed to 1 if you want to get it up by 1 / I did 2 because I think that is more functional.
fi

In this part it counts up or down with which the button is pressed. With button 2 is counts down an with button 1 it counts up. It counts down and up with 2. So that every time 2 new options gets showed on the display. Because in the array there are 12 menu's, I used %12 that when counting up or down it will continue at the top or the beginning. ( so that you not have to go all back for option 1-2 when you are at option 11-12. ) I also explained this in blog 12: With % it shares the number before it with the number after it and will give as result the number that couldn't get shared trough it. So simple examples:

12%5 (12:5)=2   | 2 times 5  | 2*5=10  | 12-10 = 2
14%12 (14:12)=1 | 1 time  12 | 1*12=12 | 14-12 = 2 


The final script all together:

#!/bin/bash
bw_tool -I -D /dev/i2c-1 -a 94 -W 10:00

while true; do
BDetect=`bw_tool -I -D /dev/i2c-1 -a 94 -R 30:b`

array=( pushmenu2 AlarmMenu Jaap Tim Martin Koos Willem Bas Luuk Richard Nick Alex)
# Element 0       1         2    3   4      5    6      7   8    9       10   11

Narray=( "Temp Menu" "Alarm Menu" Settings "Board menu" "Fries Menu" "Banana Menu" "vega burger" "wc menu" Bananaphone "2001:ABC" "ghost server" "My  name is...")
# Element 0           1           2         3            4            5             6             7        8            9          10             11

 if [ $BDetect  != "00" ]; then
    bw_tool -I -D /dev/i2c-1 -a 94 -W 10:00
 fi

 if [ $BDetect  = "20" ]; then
    ./${array[$Number]}
 fi

 if [ $BDetect  = "10" ]; then
   ./${array[$Numb2]}
 fi

 if [ $BDetect  = "08" ]; then
    Number=0
 fi

 if [ $BDetect  = "04" ]; then
    Number=10
 fi

 if [ $BDetect  = "02" ]; then
    Number=$(((Number + 10) % 12 )) # can be changed to 11 if you want it to get 1 down
 fi

 if [ $BDetect  = "01" ]; then
    Number=$(((Number + 2) % 12 )) #can be changed to 1 if you want to get it up by 1 / I did 2 because I think that is more functional.
 fi

Numb2=$((Number + 1))
Numb3=$((Numb2 + 1))

bw_tool -I -D /dev/i2c-1 -a 94 -W 11:00
bw_tool -I -D /dev/i2c-1 -a 94 -t "$Numb2""."${Narray[$Number]}
bw_tool -I -D /dev/i2c-1 -a 94 -W 11:20
bw_tool -I -D /dev/i2c-1 -a 94 -t "$Numb3""."${Narray[$Numb2]}

sleep 1

done