40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
|
|
||
|
# Print Ports
|
||
|
|
||
|
```typescript
|
||
|
/**
|
||
|
* Print the port states on the screen
|
||
|
*/
|
||
|
//% blockId=brickPrintPorts block="print ports"
|
||
|
//% help=brick/print-ports
|
||
|
//% weight=1 group="Screen"
|
||
|
function printPorts() {
|
||
|
const col = 44;
|
||
|
clearScreen();
|
||
|
|
||
|
function scale(x: number) {
|
||
|
if (Math.abs(x) > 1000) return Math.round(x / 100) / 10 + "k";
|
||
|
return ("" + (x >> 0));
|
||
|
}
|
||
|
|
||
|
// motors
|
||
|
const datas = motors.getAllMotorData();
|
||
|
for(let i = 0; i < datas.length; ++i) {
|
||
|
const data = datas[i];
|
||
|
if (!data.actualSpeed && !data.count) continue;
|
||
|
const x = i * col;
|
||
|
print(`${scale(data.actualSpeed)}%`, x, brick.LINE_HEIGHT)
|
||
|
print(`${scale(data.count)}>`, x, 2 * brick.LINE_HEIGHT)
|
||
|
print(`${scale(data.tachoCount)}|`, x, 3 * brick.LINE_HEIGHT)
|
||
|
}
|
||
|
|
||
|
// sensors
|
||
|
const sis = sensors.internal.getActiveSensors();
|
||
|
for(let i =0; i < sis.length; ++i) {
|
||
|
const si = sis[i];
|
||
|
const x = (si.port() - 1) * col;
|
||
|
const v = si._query();
|
||
|
print(`${scale(v)}`, x, 9 * brick.LINE_HEIGHT)
|
||
|
}
|
||
|
}
|
||
|
```
|