Skip to content

Suggestions to add hardware flow control and XML escape #8

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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