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…
Reference in a new issue