bringing back show ports (#377)
* bringing back show ports * added firmware links in docs * updated color rendering * better rendering of touch/ultra/ir * better data per sensor
This commit is contained in:
		@@ -9,9 +9,9 @@ let screen = image.create(DAL.LCD_WIDTH, DAL.LCD_HEIGHT)
 | 
			
		||||
 | 
			
		||||
namespace _screen_internal {
 | 
			
		||||
    //% shim=pxt::updateScreen
 | 
			
		||||
    function updateScreen(img: Image): void {}
 | 
			
		||||
    function updateScreen(img: Image): void { }
 | 
			
		||||
    //% shim=pxt::updateStats
 | 
			
		||||
    function updateStats(msg: string): void {}
 | 
			
		||||
    function updateStats(msg: string): void { }
 | 
			
		||||
 | 
			
		||||
    control.setupScreenRefresh(() => updateScreen(screen))
 | 
			
		||||
 | 
			
		||||
@@ -63,7 +63,7 @@ namespace brick {
 | 
			
		||||
    //% line.min=1 line.max=10
 | 
			
		||||
    export function showValue(name: string, value: number, line: number) {
 | 
			
		||||
        value = Math.round(value * 1000) / 1000;
 | 
			
		||||
        showString((name ? name + ": " : "") + value, line);        
 | 
			
		||||
        showString((name ? name + ": " : "") + value, line);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -78,6 +78,43 @@ namespace brick {
 | 
			
		||||
        screen.drawImage(image, 0, 0)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
    * Display the sensor and motor states attached to ports   
 | 
			
		||||
    */
 | 
			
		||||
    //% blockId=brickShowPorts block="show ports"
 | 
			
		||||
    //% help=brick/show-ports blockGap=8
 | 
			
		||||
    //% weight=10 group="Screen"
 | 
			
		||||
    export function showPorts() {
 | 
			
		||||
        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;
 | 
			
		||||
            screen.print("ABCD"[i], x, brick.LINE_HEIGHT)
 | 
			
		||||
            screen.print(`${scale(data.actualSpeed)}%`, x, 2* brick.LINE_HEIGHT)
 | 
			
		||||
            screen.print(`${scale(data.count)}>`, 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 inf = si._info();
 | 
			
		||||
            screen.print(si.port() + "", x, 8 * brick.LINE_HEIGHT)
 | 
			
		||||
            screen.print(inf, x, 9 * brick.LINE_HEIGHT)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * An image
 | 
			
		||||
     * @param image the image
 | 
			
		||||
@@ -96,7 +133,7 @@ namespace brick {
 | 
			
		||||
     */
 | 
			
		||||
    //% blockId=screen_clear_screen block="clear screen"
 | 
			
		||||
    //% weight=90 group="Screen"
 | 
			
		||||
    //% help=brick/clear-screen
 | 
			
		||||
    //% help=brick/clear-screen weight=1
 | 
			
		||||
    export function clearScreen() {
 | 
			
		||||
        screen.fill(0)
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user