Skip to content

Suggestions to add hardware flow control and XML escape #8

@doingnz

Description

@doingnz

Great terminal application. Nice and simple for quick understanding of the Serial Api.

When testing with my device which that outputs upto 100K xml text, I quickly ran into problems with buffer overruns and lost characters. I turned on hardware flow control as follows as my device supports RTS & CTS handshake. Other samples suggest checkboxes for hardware flow control on/off. For a quick test I was happy to hardcode it.

            await port.open({
                baudRate: document.getElementById("baud").value,
                flowControl: "hardware", rtsCts: true,
                dataBits: 8, stopBits: 1, parity: "none",
                bufferSize: 2560
            });

As my device outputs XML, I had to define

    function escapeXml(unsafe) {
        return unsafe.replace(/[<>&'"]/g, function (c) {
            switch (c) {
            case '<': return '&lt;';
            case '>': return '&gt;';
            case '&': return '&amp;';
            case '\'': return '&apos;';
            case '"': return '&quot;';
            }
        });
    }

and then change append to escape the string being stuffed into the page for all characters to be rendered in a readable form.

// value is a string. escape characters as needed 
appendToTerminal(escapeXml(value));

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions