From 3c76e86cefc918a643adce433e39c56122c762c1 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Tue, 15 Mar 2016 13:05:11 -0700 Subject: [PATCH] added radio transmit power --- libs/microbit-radio/radio.ts | 12 ++++++++++++ sim/libmbit.ts | 3 +++ sim/state.ts | 9 ++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/libs/microbit-radio/radio.ts b/libs/microbit-radio/radio.ts index 7c763a53..f7833af3 100644 --- a/libs/microbit-radio/radio.ts +++ b/libs/microbit-radio/radio.ts @@ -82,4 +82,16 @@ namespace radio { //% blockId=radio_set_group block="set group %ID" export function setGroup(id: number) : void { } + + /** + * Change the output power level of the transmitter to the given value. + * @param power a value in the range 0..7, where 0 is the lowest power and 7 is the highest, eg: 7 + */ + //% help=/functions/set-transmit-power + //% shim=micro_bit::setTransmitPower + //% weight=9 + //% blockId=radio_set_transmit_power block="set transmit power %power" + export function setTransmitPower(power:number) { + + } } diff --git a/sim/libmbit.ts b/sim/libmbit.ts index 6bd0fb49..e8301050 100644 --- a/sim/libmbit.ts +++ b/sim/libmbit.ts @@ -445,6 +445,9 @@ namespace ks.rt.micro_bit { board().radio.setGroup(id); } + export function setTransmitPower(power: number) : void { + board().radio.setTransmitPower(power); + } export function datagramSendNumbers(value0 : number, value1: number, value2: number, value3: number) : void { board().radio.datagram.send([value0, value1, value2, value3]); diff --git a/sim/state.ts b/sim/state.ts index 53bbfbf0..4bfaeb77 100644 --- a/sim/state.ts +++ b/sim/state.ts @@ -98,6 +98,7 @@ namespace ks.rt.micro_bit { export class RadioBus { // uint8_t radioDefaultGroup = MICROBIT_RADIO_DEFAULT_GROUP; groupId = 0; // todo + power = 0; datagram: RadioDatagram; constructor(private runtime: Runtime) { @@ -107,13 +108,19 @@ namespace ks.rt.micro_bit { setGroup(id: number) { this.groupId = id & 0xff; // byte only } + + setTransmitPower(power: number) { + this.power = Math.max(0, Math.min(7, power)); + } broadcast(msg: number) { let ens = enums(); Runtime.postMessage({ type: 'eventbus', id: ens.MES_BROADCAST_GENERAL_ID, - eventid: msg + eventid: msg, + power: this.power, + group: this.groupId }) } }