From 5d40750542732d05b2c5823fe4bee92f373059e2 Mon Sep 17 00:00:00 2001 From: Michal Moskal Date: Sat, 2 Apr 2016 20:47:27 -0700 Subject: [PATCH] Add missing control stuff --- libs/microbit/control.cpp | 3 +-- sim/libmbit.ts | 11 ++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/libs/microbit/control.cpp b/libs/microbit/control.cpp index ad9dd3c9..9451cf48 100644 --- a/libs/microbit/control.cpp +++ b/libs/microbit/control.cpp @@ -157,7 +157,6 @@ namespace control { //% weight=20 blockGap=8 blockId="control_on_event" block="on event|from %src=control_event_source|with value %value=control_event_value" //% blockExternalInputs=1 blockStatement=1 void onEvent(int src, int value, Action handler) { - // not exposed yet - // bitvm::registerWithDal(src, value, handler); + registerWithDal(src, value, handler); } } diff --git a/sim/libmbit.ts b/sim/libmbit.ts index 71bf51c2..57ff3fa2 100644 --- a/sim/libmbit.ts +++ b/sim/libmbit.ts @@ -221,6 +221,15 @@ namespace ks.rt.control { export function reset() { U.userError("reset not implemented in simulator yet") } + + export function onEvent(id: number, evid: number, handler: RefAction) { + kindscript.registerWithDal(id, evid, handler) + } + + export function raiseEvent(id: number, evid: number, mode: number) { + // TODO mode? + board().bus.queue(id, evid) + } } namespace ks.rt.kindscript { @@ -469,7 +478,7 @@ namespace ks.rt.pins { export function analogSetPitchPin(pinId: number) { let pin = getPin(pinId); - if (!pin) return; + if (!pin) return; board().pins.filter(p => !!p).forEach(p => p.pitch = false); pin.pitch = true; }