From 3815d2fd3b46bc25e8514013a4040c0009a14281 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 11 Jan 2018 13:43:11 -0800 Subject: [PATCH] simplifiying brick light api (#231) --- libs/core/_locales/core-jsdoc-strings.json | 6 +-- libs/core/_locales/core-strings.json | 24 +++++------ libs/core/buttons.ts | 47 +++++++++------------- libs/core/test.ts | 4 +- 4 files changed, 33 insertions(+), 48 deletions(-) diff --git a/libs/core/_locales/core-jsdoc-strings.json b/libs/core/_locales/core-jsdoc-strings.json index 0c65f727..8c63777e 100644 --- a/libs/core/_locales/core-jsdoc-strings.json +++ b/libs/core/_locales/core-jsdoc-strings.json @@ -1,4 +1,5 @@ { + "BrickLight": "Patterns for lights under the buttons.", "ButtonEvent": "User interaction on buttons", "Draw": "Drawing modes", "Image.buffer": "Returns the underlaying Buffer object.", @@ -6,7 +7,6 @@ "Image.draw": "Draw an image on the screen.", "Image.height": "Returns the height of an image.", "Image.width": "Returns the width of an image.", - "LightsPattern": "Patterns for lights under the buttons.", "MMap.getNumber": "Read a number in specified format from the buffer.", "MMap.ioctl": "Perform ioctl(2) on the underlaying file", "MMap.length": "Returns the length of a Buffer object.", @@ -28,11 +28,9 @@ "brick.buttonRight": "Right button on the EV3 Brick.", "brick.buttonUp": "Up button on the EV3 Brick.", "brick.clearScreen": "Clears the screen", - "brick.lightPattern": "Pattern block.", - "brick.lightPattern|param|pattern": "the lights pattern to use. eg: LightsPattern.Green", "brick.printPorts": "Prints the port states on the screen", "brick.setLight": "Set lights.", - "brick.setLight|param|pattern": "the lights pattern to use.", + "brick.setLight|param|pattern": "the lights pattern to use. eg: BrickLight.Orange", "brick.showImage": "Shows an image on screen", "brick.showImage|param|image": "image to draw", "brick.showNumber": "Shows a number on the screen", diff --git a/libs/core/_locales/core-strings.json b/libs/core/_locales/core-strings.json index cb480eca..34b89842 100644 --- a/libs/core/_locales/core-strings.json +++ b/libs/core/_locales/core-strings.json @@ -1,17 +1,17 @@ { + "BrickLight.GreenFlash|block": "green flash", + "BrickLight.GreenPulse|block": "green pulse", + "BrickLight.Green|block": "green", + "BrickLight.Off|block": "off", + "BrickLight.OrangeFlash|block": "orange flash", + "BrickLight.OrangePulse|block": "orange pulse", + "BrickLight.Orange|block": "orange", + "BrickLight.RedFlash|block": "red flash", + "BrickLight.RedPulse|block": "red pulse", + "BrickLight.Red|block": "red", "ButtonEvent.Click|block": "click", "ButtonEvent.Down|block": "down", "ButtonEvent.Up|block": "up", - "LightsPattern.GreenFlash|block": "Flashing Green", - "LightsPattern.GreenPulse|block": "Pulsing Green", - "LightsPattern.Green|block": "Green", - "LightsPattern.Off|block": "Off", - "LightsPattern.OrangeFlash|block": "Flashing Orange", - "LightsPattern.OrangePulse|block": "Pulsing Orange", - "LightsPattern.Orange|block": "Orange", - "LightsPattern.RedFlash|block": "Flashing Red", - "LightsPattern.RedPulse|block": "Pulsing Red", - "LightsPattern.Red|block": "Red", "MoveUnit.Degrees|block": "degrees", "MoveUnit.MilliSeconds|block": "milliseconds", "MoveUnit.Rotations|block": "rotations", @@ -36,9 +36,8 @@ "brick.buttonRight|block": "button right", "brick.buttonUp|block": "button up", "brick.clearScreen|block": "clear screen", - "brick.lightPattern|block": "%pattern", "brick.printPorts|block": "print ports", - "brick.setLight|block": "set light to %pattern=led_pattern", + "brick.setLight|block": "set light to %pattern", "brick.showImage|block": "show image %image=screen_image_picker", "brick.showNumber|block": "show number %name|at line %line", "brick.showString|block": "show string %text|at line %line", @@ -93,7 +92,6 @@ "{id:category}Serial": "Serial", "{id:group}Buttons": "Buttons", "{id:group}Counters": "Counters", - "{id:group}Light": "Light", "{id:group}More": "More", "{id:group}Move": "Move", "{id:group}Screen": "Screen", diff --git a/libs/core/buttons.ts b/libs/core/buttons.ts index b9a3af97..fb0d485a 100644 --- a/libs/core/buttons.ts +++ b/libs/core/buttons.ts @@ -2,35 +2,35 @@ /** * Patterns for lights under the buttons. */ -const enum LightsPattern { - //% block=Off enumval=0 +const enum BrickLight { + //% block=off enumval=0 //% blockIdentity=brick.lightPattern Off = 0, - //% block=Green enumval=1 + //% block=green enumval=1 //% blockIdentity=brick.lightPattern Green = 1, - //% block=Red enumval=2 + //% block=red enumval=2 //% blockIdentity=brick.lightPattern Red = 2, - //% block=Orange enumval=3 + //% block=orange enumval=3 //% blockIdentity=brick.lightPattern Orange = 3, - //% block="Flashing Green" enumval=4 + //% block="green flash" enumval=4 //% blockIdentity=brick.lightPattern GreenFlash = 4, - //% block="Flashing Red" enumval=5 + //% block="red flash" enumval=5 //% blockIdentity=brick.lightPattern RedFlash = 5, - //% block="Flashing Orange" enumval=6 + //% block="orange flash" enumval=6 //% blockIdentity=brick.lightPattern OrangeFlash = 6, - //% block="Pulsing Green" enumval=7 + //% block="green pulse" enumval=7 //% blockIdentity=brick.lightPattern GreenPulse = 7, - //% block="Pulsing Red" enumval=8 + //% block="red pulse" enumval=8 //% blockIdentity=brick.lightPattern RedPulse = 8, - //% block="Pulsing Orange" enumval=9 + //% block="orange pulse" enumval=9 //% blockIdentity=brick.lightPattern OrangePulse = 9, } @@ -252,32 +252,21 @@ namespace control { } namespace brick { - let currPattern: LightsPattern + // the brick starts with the red color + let currPattern: BrickLight = BrickLight.Red; /** * Set lights. - * @param pattern the lights pattern to use. + * @param pattern the lights pattern to use. eg: BrickLight.Orange */ - //% blockId=setLights block="set light to %pattern=led_pattern" + //% blockId=setLights block="set light to %pattern" //% weight=100 group="Buttons" - export function setLight(pattern: number): void { + export function setLight(pattern: BrickLight): void { if (currPattern === pattern) return - currPattern = pattern - let cmd = output.createBuffer(2) + currPattern = pattern; + const cmd = output.createBuffer(2) cmd[0] = pattern + 48 brick.internal.getBtnsMM().write(cmd) } - - - /** - * Pattern block. - * @param pattern the lights pattern to use. eg: LightsPattern.Green - */ - //% blockId=led_pattern block="%pattern" - //% shim=TD_ID colorSecondary="#6e9a36" group="Light" - //% blockHidden=true useEnumVal=1 pattern.fieldOptions.decompileLiterals=1 - export function lightPattern(pattern: LightsPattern): number { - return pattern; - } } diff --git a/libs/core/test.ts b/libs/core/test.ts index 648cc6f8..516462b3 100644 --- a/libs/core/test.ts +++ b/libs/core/test.ts @@ -2,7 +2,7 @@ screen.clear() brick.print("PXT!", 10, 30, Draw.Quad) brick.drawRect(40, 40, 20, 10, Draw.Fill) -brick.setLight(LightsPattern.Orange) +brick.setLight(BrickLight.Orange) brick.heart.doubled().draw(100, 50, Draw.Double | Draw.Transparent) @@ -12,7 +12,7 @@ brick.buttonEnter.onEvent(ButtonEvent.Click, () => { brick.buttonLeft.onEvent(ButtonEvent.Click, () => { brick.drawRect(10, 70, 20, 10, Draw.Fill) - brick.setLight(LightsPattern.Red) + brick.setLight(BrickLight.Red) brick.setFont(brick.microbitFont()) })