39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
|
namespace radio {
|
||
|
/**
|
||
|
* Gets the message code
|
||
|
*/
|
||
|
//% blockHidden=1 shim=ENUM_GET
|
||
|
//% blockId=radioMessageCode block="$msg" enumInitialMembers="message1"
|
||
|
//% enumName=RadioMessage enumMemberName=msg enumPromptHint="e.g. Start, Stop, Jump..."
|
||
|
//% enumIsHash=1
|
||
|
export function __message(msg: number): number {
|
||
|
return msg;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Broadcasts a message over radio
|
||
|
* @param msg
|
||
|
*/
|
||
|
//% blockId=radioBroadcastMessage block="radio send $msg"
|
||
|
//% msg.shadow=radioMessageCode draggableParameters
|
||
|
//% weight=200
|
||
|
//% blockGap=8
|
||
|
//% help=radio/send-message
|
||
|
export function sendMessage(msg: number): void {
|
||
|
// 0 is MICROBIT_EVT_ANY, shifting by 1
|
||
|
radio.raiseEvent(DAL.MES_BROADCAST_GENERAL_ID, msg + 1);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Registers code to run for a particular message
|
||
|
* @param msg
|
||
|
* @param handler
|
||
|
*/
|
||
|
//% blockId=radioOnMessageReceived block="on radio $msg received"
|
||
|
//% msg.shadow=radioMessageCode draggableParameters
|
||
|
//% weight=199
|
||
|
//% help=radio/on-received-message
|
||
|
export function onReceivedMessage(msg: number, handler: () => void) {
|
||
|
control.onEvent(DAL.MES_BROADCAST_GENERAL_ID, msg + 1, handler);
|
||
|
}
|
||
|
}
|