merge master

This commit is contained in:
Peli de Halleux 2019-10-31 10:26:50 -07:00
commit 668d814559
8 changed files with 69 additions and 15 deletions

View File

@ -1,3 +1,3 @@
{ {
"appref": "v1.2.22" "appref": "v1.2.26"
} }

View File

@ -388,12 +388,12 @@
} }
function downloadWin64() { function downloadWin64() {
// TODO: Keep this link up-to-date with the desired release version // 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" }); tickEvent("offlineapp.download", { "target": "ev3", "platform": "win64" });
} }
function downloadMac64() { function downloadMac64() {
// TODO: Keep this link up-to-date with the desired release version // 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" }); tickEvent("offlineapp.download", { "target": "ev3", "platform": "mac64" });
} }
</script> </script>

3
docs/stable-ref.json Normal file
View File

@ -0,0 +1,3 @@
{
"appref": "v1.2"
}

View File

@ -179,6 +179,22 @@ namespace sensors {
return this.getNumber(NumberFormat.UInt8LE, 0) 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. * Get the current raw rgb values as an array from the color sensor.
* @param sensor the color sensor to query the request * @param sensor the color sensor to query the request

View File

@ -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)

View File

@ -293,7 +293,8 @@ void cUiUpdatePower(void)
if (newConn == sensorInfo.connType if (newConn == sensorInfo.connType
&& sensorInfo.sensor && sensorInfo.sensor
&& sensorInfo.sensor.isActive()) { && sensorInfo.sensor.isActive()) {
// control.dmesg(`connection unchanged ${newConn} at ${sensorInfo.port}`) if (newConn == DAL.CONN_INPUT_UART)
uartSensors.push(sensorInfo);
continue; continue;
} }
numChanged++ numChanged++
@ -324,7 +325,8 @@ void cUiUpdatePower(void)
for (const sensorInfo of uartSensors) { for (const sensorInfo of uartSensors) {
let uinfo = readUartInfo(sensorInfo.port, 0) let uinfo = readUartInfo(sensorInfo.port, 0)
sensorInfo.devType = uinfo[TypesOff.Type] 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) { function uartClearChange(port: number) {
control.dmesg(`UART clear change`); control.dmesg(`UART clear change`);
const UART_DATA_READY = 8
const UART_PORT_CHANGED = 1
while (true) { while (true) {
let status = getUartStatus(port) let status = getUartStatus(port)
if (port < 0) break if (port < 0) break
@ -559,7 +559,7 @@ void cUiUpdatePower(void)
} }
function setUartModes() { function setUartModes() {
control.dmesg(`UART set modes`) control.dmesg(`UART set modes 0x${devcon.toHex()}`)
uartMM.ioctl(IO.UART_SET_CONN, devcon) uartMM.ioctl(IO.UART_SET_CONN, devcon)
const ports: number[] = []; const ports: number[] = [];
for (let port = 0; port < DAL.NUM_INPUTS; ++port) { for (let port = 0; port < DAL.NUM_INPUTS; ++port) {
@ -572,21 +572,25 @@ void cUiUpdatePower(void)
const port = ports.pop(); const port = ports.pop();
const status = waitNonZeroUartStatus(port) const status = waitNonZeroUartStatus(port)
control.dmesg(`UART status ${status} at ${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) { 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.Connection + port, DAL.CONN_INPUT_UART)
devcon.setNumber(NumberFormat.Int8LE, DevConOff.Type + port, 33) devcon.setNumber(NumberFormat.Int8LE, DevConOff.Type + port, 33)
devcon.setNumber(NumberFormat.Int8LE, DevConOff.Mode + port, mode) devcon.setNumber(NumberFormat.Int8LE, DevConOff.Mode + port, mode)
} }
const UART_PORT_CHANGED = 1
const UART_DATA_READY = 8
function setUartMode(port: number, mode: number) { function setUartMode(port: number, mode: number) {
const UART_PORT_CHANGED = 1
while (true) { while (true) {
if (port < 0) return if (port < 0) return
updateUartMode(port, mode); updateUartMode(port, mode);
control.dmesg(`UART set mode 0x${devcon.toHex()}`)
uartMM.ioctl(IO.UART_SET_CONN, devcon) uartMM.ioctl(IO.UART_SET_CONN, devcon)
let status = waitNonZeroUartStatus(port) let status = waitNonZeroUartStatus(port)
if (status & UART_PORT_CHANGED) { if (status & UART_PORT_CHANGED) {
@ -594,7 +598,8 @@ void cUiUpdatePower(void)
uartClearChange(port) uartClearChange(port)
} else { } else {
control.dmesg(`UART status ${status}`); control.dmesg(`UART status ${status}`);
break; if (status & UART_DATA_READY)
break;
} }
pause(10) pause(10)
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "pxt-ev3", "name": "pxt-ev3",
"version": "1.4.7", "version": "1.4.8",
"description": "LEGO MINDSTORMS EV3 for Microsoft MakeCode", "description": "LEGO MINDSTORMS EV3 for Microsoft MakeCode",
"private": false, "private": false,
"keywords": [ "keywords": [
@ -45,8 +45,8 @@
"@types/web-bluetooth": "0.0.4" "@types/web-bluetooth": "0.0.4"
}, },
"dependencies": { "dependencies": {
"pxt-common-packages": "6.16.10", "pxt-common-packages": "6.16.18",
"pxt-core": "5.25.13" "pxt-core": "5.28.8"
}, },
"scripts": { "scripts": {
"test": "node node_modules/pxt-core/built/pxt.js travis" "test": "node node_modules/pxt-core/built/pxt.js travis"

View File

@ -27,6 +27,6 @@
"Tutorial Videos": "videos" "Tutorial Videos": "videos"
}, },
"electronManifest": { "electronManifest": {
"latest": "v1.2.22" "latest": "v1.2.26"
} }
} }