Difference between revisions of "Blog 13"

From BitWizard WIKI
Jump to: navigation, search
(Scroll Menu)
(Scroll Menu)
Line 68: Line 68:
 
  Numb3=$((Numb2 + 1))
 
  Numb3=$((Numb2 + 1))
  
Will read the numbers that should later be displayed on the display.  
+
Will read the numbers that should later be displayed on the display. The given numbers will get a +1, because otherwise the menu will start with 0 instead of 1.
+
This is of course the same with the second line. That also has to be 1 more.
 +
 
 +
The given numbers will be printed at the beginning with "$Numb2"at the first row and "$Numb2" at the second row.
 +
After that it will print the names on the name Array. ( Narray ) with after that the number and the second number ( Numb2 ) which says which names of the array should be displayed.
 +
 
 
  bw_tool -I -D /dev/i2c-1 -a 94 -W 11:00
 
  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 -t "$Numb2""."${Narray[$Number]}

Revision as of 09:32, 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 numbers that are given as result for pressing the button, will than be send to the last part of the script.

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

Will read the numbers that should later be displayed on the display. The given numbers will get a +1, because otherwise the menu will start with 0 instead of 1. This is of course the same with the second line. That also has to be 1 more.

The given numbers will be printed at the beginning with "$Numb2"at the first row and "$Numb2" at the second row. After that it will print the names on the name Array. ( Narray ) with after that the number and the second number ( Numb2 ) which says which names of the array should be displayed.

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]}



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