mirror of
				https://github.com/buzz-lightsnack-2007/MicroBit_QuickPager.git
				synced 2024-08-14 23:56:25 +00:00 
			
		
		
		
	Update main.ts, main.py
This commit is contained in:
		
							parent
							
								
									ea70643c34
								
							
						
					
					
						commit
						638d65845f
					
				
					 2 changed files with 294 additions and 0 deletions
				
			
		
							
								
								
									
										148
									
								
								main.py
									
										
									
									
									
								
							
							
						
						
									
										148
									
								
								main.py
									
										
									
									
									
								
							|  | @ -1 +1,149 @@ | |||
| # the communicator data | ||||
| communicator_data = { | ||||
|     'radio': { | ||||
|         'groupID': 1.0, | ||||
|         'receivedSignal': 0 | ||||
|     }, | ||||
|     'mode': { | ||||
|         'changeChannelMode': False | ||||
|     }, | ||||
|     'received': { | ||||
|         'ID': 0 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| # sound effects | ||||
| communicator_sounds = { | ||||
|     'beep': { | ||||
|         'tone': Note.C5, | ||||
|         'speed': music.beat(BeatFraction.EIGHTH) | ||||
|     }, | ||||
|     'call': { | ||||
|         'tone': Note.G | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| def changeChannelMode(adjustIncrement = 0): | ||||
|     """ | ||||
|         changeChannelMode allows the changing of radio channels. | ||||
| 
 | ||||
|         Parameters: | ||||
|             adjustIncrement: (integer) how much to adjust | ||||
|         Returns: | ||||
|             groupID: (integer) the current channel ID | ||||
|     """ | ||||
| 
 | ||||
|     # Enable the change channel and ID mode. | ||||
|     communicator_data['mode']['changeChannelMode'] = True | ||||
| 
 | ||||
|     # The groupID variable includes the channel number (integer) and the device's identifier (non-integer).  | ||||
|     if (adjustIncrement): | ||||
|         if (adjustIncrement >= 1): | ||||
|             # Increase the selected ID number! | ||||
|             communicator_data['radio']['groupID'] += 0.1 | ||||
|         elif (adjustIncrement <= -1) and (communicator_data['radio']['groupID'] > 1): | ||||
|             # Decrease the selected ID number! | ||||
|             communicator_data['radio']['groupID'] = communicator_data['radio']['groupID'] - 0.1 | ||||
|          | ||||
|         # Get device channel only.  | ||||
|         device_groupID = str(communicator_data['radio']['groupID']) | ||||
|         device_channelNumber = int(device_groupID.split('.')[0]) | ||||
| 
 | ||||
|         # Set the group number properly.  | ||||
|         radio.set_group(device_channelNumber) | ||||
|      | ||||
|     # Stop the animation and show the number.  | ||||
|     led.stop_animation() | ||||
|     basic.show_number(communicator_data['radio']['groupID']) | ||||
| 
 | ||||
| def message_send():  | ||||
|     """ | ||||
|         Send the message.  | ||||
| 
 | ||||
|         Parameters: none | ||||
|         Returns: none | ||||
|     """ | ||||
| 
 | ||||
|     # Convert | ||||
|     device_groupID = str(communicator_data['radio']['groupID']) | ||||
| 
 | ||||
|     # Get the device number only.  | ||||
|     device_number = int((device_groupID.split("."))[1]) | ||||
| 
 | ||||
|     # Broadcast the message.  | ||||
|     radio.send_number(device_number) | ||||
| 
 | ||||
| def message_receive(): | ||||
|     """ | ||||
|         Display the received message.  | ||||
| 
 | ||||
|         Parameters: none | ||||
|         Returns: none | ||||
|     """ | ||||
| 
 | ||||
|     # Get the device number only. | ||||
|     device_receive_number = communicator_data['received']['ID'] | ||||
| 
 | ||||
|     # Display the device number.  | ||||
|     basic.show_number(device_receive_number) | ||||
| 
 | ||||
|     # Ring. | ||||
|     music.ring_tone(communicator_sounds['call']['tone']) | ||||
| 
 | ||||
|     # Pause.  | ||||
|     basic.pause(5000) | ||||
| 
 | ||||
|     # Stop.  | ||||
|     basic.clear_screen() | ||||
|     music.stop_all_sounds() | ||||
| 
 | ||||
| def on_button_pressed_ab(): | ||||
|     # Play the button clicked sound. | ||||
|     music.play_tone(communicator_sounds['beep']['tone'], communicator_sounds['beep']['speed']) | ||||
|      | ||||
|     # Stop the animation.  | ||||
|     led.stop_animation() | ||||
|      | ||||
|     # allow the toggling of channel changing | ||||
|     if not(communicator_data['mode']['changeChannelMode']): | ||||
|         changeChannelMode() | ||||
|      | ||||
|     else: | ||||
|         communicator_data['mode']['changeChannelMode'] = False | ||||
|         basic.clear_screen() | ||||
| 
 | ||||
| def on_button_pressed_a(): | ||||
|     # Play the button clicked sound. | ||||
|     music.play_tone(communicator_sounds['beep']['tone'], communicator_sounds['beep']['speed']) | ||||
|      | ||||
|     # Stop the animation. | ||||
|     led.stop_animation() | ||||
|     | ||||
|     if (communicator_data['mode']['changeChannelMode']): | ||||
|         changeChannelMode(-1) | ||||
|     else: | ||||
|         # A button is mapped to short sounds. | ||||
|         message_send() | ||||
| 
 | ||||
| def on_button_pressed_b(): | ||||
|     # Play the button clicked sound. | ||||
|     music.play_tone(communicator_sounds['beep']['tone'], communicator_sounds['beep']['speed']) | ||||
|          | ||||
|     # Stop the animation. | ||||
|     led.stop_animation() | ||||
|      | ||||
|     if (communicator_data['mode']['changeChannelMode']): | ||||
|         changeChannelMode(1) | ||||
|     else: | ||||
|         # B button is mapped to the longer sound | ||||
|         message_send() | ||||
| 
 | ||||
| input.on_button_pressed(Button.AB, on_button_pressed_ab) | ||||
| input.on_button_pressed(Button.A, on_button_pressed_a) | ||||
| input.on_button_pressed(Button.B, on_button_pressed_b) | ||||
| 
 | ||||
| def on_received_number(receivedNumber): | ||||
|     communicator_data['received']['ID'] = receivedNumber | ||||
|     message_receive() | ||||
| 
 | ||||
| radio.on_received_number(on_received_number) | ||||
							
								
								
									
										146
									
								
								main.ts
									
										
									
									
									
								
							
							
						
						
									
										146
									
								
								main.ts
									
										
									
									
									
								
							|  | @ -1 +1,147 @@ | |||
| //  the communicator data
 | ||||
| let communicator_data = { | ||||
|     "radio" : { | ||||
|         "groupID" : 1.0, | ||||
|         "receivedSignal" : 0, | ||||
|     } | ||||
|     , | ||||
|     "mode" : { | ||||
|         "changeChannelMode" : false, | ||||
|     } | ||||
|     , | ||||
|     "received" : { | ||||
|         "ID" : 0, | ||||
|     } | ||||
|     , | ||||
| } | ||||
| 
 | ||||
| //  sound effects
 | ||||
| let communicator_sounds = { | ||||
|     "beep" : { | ||||
|         "tone" : Note.C5, | ||||
|         "speed" : music.beat(BeatFraction.Eighth), | ||||
|     } | ||||
|     , | ||||
|     "call" : { | ||||
|         "tone" : Note.G, | ||||
|     } | ||||
|     , | ||||
| } | ||||
| 
 | ||||
| function changeChannelMode(adjustIncrement: number = 0) { | ||||
|     let device_groupID: string; | ||||
|     let device_channelNumber: number; | ||||
|     /**  | ||||
|         changeChannelMode allows the changing of radio channels. | ||||
| 
 | ||||
|         Parameters: | ||||
|             adjustIncrement: (integer) how much to adjust | ||||
|         Returns: | ||||
|             groupID: (integer) the current channel ID | ||||
|      | ||||
|  */ | ||||
|     //  Enable the change channel and ID mode.
 | ||||
|     communicator_data["mode"]["changeChannelMode"] = true | ||||
|     //  The groupID variable includes the channel number (integer) and the device's identifier (non-integer). 
 | ||||
|     if (adjustIncrement) { | ||||
|         if (adjustIncrement >= 1) { | ||||
|             //  Increase the selected ID number!
 | ||||
|             communicator_data["radio"]["groupID"] += 0.1 | ||||
|         } else if (adjustIncrement <= -1 && communicator_data["radio"]["groupID"] > 1) { | ||||
|             //  Decrease the selected ID number!
 | ||||
|             communicator_data["radio"]["groupID"] = communicator_data["radio"]["groupID"] - 0.1 | ||||
|         } | ||||
|          | ||||
|         //  Get device channel only. 
 | ||||
|         device_groupID = "" + communicator_data["radio"]["groupID"] | ||||
|         device_channelNumber = parseInt(_py.py_string_split(device_groupID, ".")[0]) | ||||
|         //  Set the group number properly. 
 | ||||
|         radio.setGroup(device_channelNumber) | ||||
|     } | ||||
|      | ||||
|     //  Stop the animation and show the number. 
 | ||||
|     led.stopAnimation() | ||||
|     basic.showNumber(communicator_data["radio"]["groupID"]) | ||||
| } | ||||
| 
 | ||||
| function message_send() { | ||||
|     /**  | ||||
|         Send the message.  | ||||
| 
 | ||||
|         Parameters: none | ||||
|         Returns: none | ||||
|      | ||||
|  */ | ||||
|     //  Convert
 | ||||
|     let device_groupID = "" + communicator_data["radio"]["groupID"] | ||||
|     //  Get the device number only. 
 | ||||
|     let device_number = parseInt(_py.py_string_split(device_groupID, ".")[1]) | ||||
|     //  Broadcast the message. 
 | ||||
|     radio.sendNumber(device_number) | ||||
| } | ||||
| 
 | ||||
| function message_receive() { | ||||
|     /**  | ||||
|         Display the received message.  | ||||
| 
 | ||||
|         Parameters: none | ||||
|         Returns: none | ||||
|      | ||||
|  */ | ||||
|     //  Get the device number only.
 | ||||
|     let device_receive_number = communicator_data["received"]["ID"] | ||||
|     //  Display the device number. 
 | ||||
|     basic.showNumber(device_receive_number) | ||||
|     //  Ring.
 | ||||
|     music.ringTone(communicator_sounds["call"]["tone"]) | ||||
|     //  Pause. 
 | ||||
|     basic.pause(5000) | ||||
|     //  Stop. 
 | ||||
|     basic.clearScreen() | ||||
|     music.stopAllSounds() | ||||
| } | ||||
| 
 | ||||
| input.onButtonPressed(Button.AB, function on_button_pressed_ab() { | ||||
|     //  Play the button clicked sound.
 | ||||
|     music.playTone(communicator_sounds["beep"]["tone"], communicator_sounds["beep"]["speed"]) | ||||
|     //  Stop the animation. 
 | ||||
|     led.stopAnimation() | ||||
|     //  allow the toggling of channel changing
 | ||||
|     if (!communicator_data["mode"]["changeChannelMode"]) { | ||||
|         changeChannelMode() | ||||
|     } else { | ||||
|         communicator_data["mode"]["changeChannelMode"] = false | ||||
|         basic.clearScreen() | ||||
|     } | ||||
|      | ||||
| }) | ||||
| input.onButtonPressed(Button.A, function on_button_pressed_a() { | ||||
|     //  Play the button clicked sound.
 | ||||
|     music.playTone(communicator_sounds["beep"]["tone"], communicator_sounds["beep"]["speed"]) | ||||
|     //  Stop the animation.
 | ||||
|     led.stopAnimation() | ||||
|     if (communicator_data["mode"]["changeChannelMode"]) { | ||||
|         changeChannelMode(-1) | ||||
|     } else { | ||||
|         //  A button is mapped to short sounds.
 | ||||
|         message_send() | ||||
|     } | ||||
|      | ||||
| }) | ||||
| input.onButtonPressed(Button.B, function on_button_pressed_b() { | ||||
|     //  Play the button clicked sound.
 | ||||
|     music.playTone(communicator_sounds["beep"]["tone"], communicator_sounds["beep"]["speed"]) | ||||
|     //  Stop the animation.
 | ||||
|     led.stopAnimation() | ||||
|     if (communicator_data["mode"]["changeChannelMode"]) { | ||||
|         changeChannelMode(1) | ||||
|     } else { | ||||
|         //  B button is mapped to the longer sound
 | ||||
|         message_send() | ||||
|     } | ||||
|      | ||||
| }) | ||||
| radio.onReceivedNumber(function on_received_number(receivedNumber: number) { | ||||
|     communicator_data["received"]["ID"] = receivedNumber | ||||
|     message_receive() | ||||
| }) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue