scratch like broadcast api (#1358)
* scratch like broadcast api * always register handler * adding docs * added icon * updated block name * adding DAL support "radio.raiseEvent" * typo * implemented using radiobus * adding docs * adding raise event block * updated shims * updated pxt
This commit is contained in:
38
libs/radio-broadcast/radio-broadcast.ts
Normal file
38
libs/radio-broadcast/radio-broadcast.ts
Normal file
@ -0,0 +1,38 @@
|
||||
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..."
|
||||
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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user