merge master
This commit is contained in:
commit
668d814559
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"appref": "v1.2.22"
|
"appref": "v1.2.26"
|
||||||
}
|
}
|
||||||
|
@ -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
3
docs/stable-ref.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"appref": "v1.2"
|
||||||
|
}
|
@ -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
|
||||||
|
@ -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)
|
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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"
|
||||||
|
@ -27,6 +27,6 @@
|
|||||||
"Tutorial Videos": "videos"
|
"Tutorial Videos": "videos"
|
||||||
},
|
},
|
||||||
"electronManifest": {
|
"electronManifest": {
|
||||||
"latest": "v1.2.22"
|
"latest": "v1.2.26"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user