diff --git a/docs/index-ref.json b/docs/index-ref.json index 55f7f6a2..7621d242 100644 --- a/docs/index-ref.json +++ b/docs/index-ref.json @@ -1,3 +1,3 @@ { - "appref": "v1.2.22" + "appref": "v1.2.26" } diff --git a/docs/offline-app.html b/docs/offline-app.html index c0a2ae11..6565b0ed 100644 --- a/docs/offline-app.html +++ b/docs/offline-app.html @@ -388,12 +388,12 @@ } function downloadWin64() { // TODO: Keep this link up-to-date with the desired release version - window.open("https://makecode.com/api/release/ev3/v1.2.22/win64"); + window.open("https://makecode.com/api/release/ev3/v1.2.26/win64"); tickEvent("offlineapp.download", { "target": "ev3", "platform": "win64" }); } function downloadMac64() { // TODO: Keep this link up-to-date with the desired release version - window.open("https://makecode.com/api/release/ev3/v1.2.22/mac64"); + window.open("https://makecode.com/api/release/ev3/v1.2.26/mac64"); tickEvent("offlineapp.download", { "target": "ev3", "platform": "mac64" }); } diff --git a/docs/stable-ref.json b/docs/stable-ref.json new file mode 100644 index 00000000..8c795df2 --- /dev/null +++ b/docs/stable-ref.json @@ -0,0 +1,3 @@ +{ + "appref": "v1.2" +} diff --git a/libs/color-sensor/color.ts b/libs/color-sensor/color.ts index 90105692..9883b0d8 100644 --- a/libs/color-sensor/color.ts +++ b/libs/color-sensor/color.ts @@ -179,6 +179,22 @@ namespace sensors { return this.getNumber(NumberFormat.UInt8LE, 0) } + /** + * Checks the color is being detected + * @param color the color to detect + */ + //% help=sensors/color-sensor/is-color-detected + //% block="is **color sensor** %this|detected|%color=colorEnumPicker" + //% blockId=colorisColorDetectedDetected + //% parts="colorsensor" + //% blockNamespace=sensors + //% this.fieldEditor="ports" + //% weight=99 blockGap=8 + //% group="Color Sensor" + isColorDetected(color: number) { + return this.color() == color; + } + /** * Get the current raw rgb values as an array from the color sensor. * @param sensor the color sensor to query the request diff --git a/libs/color-sensor/docs/reference/sensors/color-sensor/is-color-detected.md b/libs/color-sensor/docs/reference/sensors/color-sensor/is-color-detected.md new file mode 100644 index 00000000..0fe7d900 --- /dev/null +++ b/libs/color-sensor/docs/reference/sensors/color-sensor/is-color-detected.md @@ -0,0 +1,30 @@ +# Is Color Detected + +Checks the color is detected + +```sig +let b = sensors.color1.isColorDetected(ColorSensorColor.Blue) +``` + +The [color](/reference/sensors/color) you choose to look for is one of the colors that the sensor can detect. If you want to use colors for tracking, it's best to use a color that is the same or very close to the ones the sensor detects. + +## Parameters + +* **color**: the [color](/reference/sensors/color) to watch for. + +## Example + +Wait for the sensor to see ``blue``. Then, show an expression on the screen. + +```blocks +brick.showString("Waiting for blue", 1) +while(!sensors.color1.isColorDetected(ColorSensorColor.Blue)) { + pause(20) +} +brick.clearScreen() +brick.showImage(images.expressionsSick) +``` + +## See also + +[on color detected](/reference/sensors/color-sensor/on-color-detected), [color](/reference/sensors/color) \ No newline at end of file diff --git a/libs/core/input.ts b/libs/core/input.ts index 558ae35d..e09a632c 100644 --- a/libs/core/input.ts +++ b/libs/core/input.ts @@ -293,7 +293,8 @@ void cUiUpdatePower(void) if (newConn == sensorInfo.connType && sensorInfo.sensor && sensorInfo.sensor.isActive()) { - // control.dmesg(`connection unchanged ${newConn} at ${sensorInfo.port}`) + if (newConn == DAL.CONN_INPUT_UART) + uartSensors.push(sensorInfo); continue; } numChanged++ @@ -324,7 +325,8 @@ void cUiUpdatePower(void) for (const sensorInfo of uartSensors) { let uinfo = readUartInfo(sensorInfo.port, 0) sensorInfo.devType = uinfo[TypesOff.Type] - control.dmesg(`UART type ${sensorInfo.devType}`) + const mode = uinfo[TypesOff.Mode]; + control.dmesg(`UART type ${sensorInfo.devType} mode ${mode}`) } } @@ -537,8 +539,6 @@ void cUiUpdatePower(void) function uartClearChange(port: number) { control.dmesg(`UART clear change`); - const UART_DATA_READY = 8 - const UART_PORT_CHANGED = 1 while (true) { let status = getUartStatus(port) if (port < 0) break @@ -559,7 +559,7 @@ void cUiUpdatePower(void) } function setUartModes() { - control.dmesg(`UART set modes`) + control.dmesg(`UART set modes 0x${devcon.toHex()}`) uartMM.ioctl(IO.UART_SET_CONN, devcon) const ports: number[] = []; for (let port = 0; port < DAL.NUM_INPUTS; ++port) { @@ -572,21 +572,25 @@ void cUiUpdatePower(void) const port = ports.pop(); const status = waitNonZeroUartStatus(port) control.dmesg(`UART status ${status} at ${port}`); + if (!(status & UART_DATA_READY)) + setUartMode(port, devcon[DevConOff.Mode + port]); } } function updateUartMode(port: number, mode: number) { - control.dmesg(`UART set mode to ${mode} at ${port}`) + control.dmesg(`UART update mode to ${mode} at ${port}`) devcon.setNumber(NumberFormat.Int8LE, DevConOff.Connection + port, DAL.CONN_INPUT_UART) devcon.setNumber(NumberFormat.Int8LE, DevConOff.Type + port, 33) devcon.setNumber(NumberFormat.Int8LE, DevConOff.Mode + port, mode) } + const UART_PORT_CHANGED = 1 + const UART_DATA_READY = 8 function setUartMode(port: number, mode: number) { - const UART_PORT_CHANGED = 1 while (true) { if (port < 0) return updateUartMode(port, mode); + control.dmesg(`UART set mode 0x${devcon.toHex()}`) uartMM.ioctl(IO.UART_SET_CONN, devcon) let status = waitNonZeroUartStatus(port) if (status & UART_PORT_CHANGED) { @@ -594,7 +598,8 @@ void cUiUpdatePower(void) uartClearChange(port) } else { control.dmesg(`UART status ${status}`); - break; + if (status & UART_DATA_READY) + break; } pause(10) } diff --git a/package.json b/package.json index 1c370819..478e57d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pxt-ev3", - "version": "1.4.7", + "version": "1.4.8", "description": "LEGO MINDSTORMS EV3 for Microsoft MakeCode", "private": false, "keywords": [ @@ -45,8 +45,8 @@ "@types/web-bluetooth": "0.0.4" }, "dependencies": { - "pxt-common-packages": "6.16.10", - "pxt-core": "5.25.13" + "pxt-common-packages": "6.16.18", + "pxt-core": "5.28.8" }, "scripts": { "test": "node node_modules/pxt-core/built/pxt.js travis" diff --git a/targetconfig.json b/targetconfig.json index aaa01a00..c2fdaf7d 100644 --- a/targetconfig.json +++ b/targetconfig.json @@ -27,6 +27,6 @@ "Tutorial Videos": "videos" }, "electronManifest": { - "latest": "v1.2.22" + "latest": "v1.2.26" } }