serialTerminal.com
serialTerminal.com copied to clipboard
Suggestions to add hardware flow control and XML escape
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 '<';
case '>': return '>';
case '&': return '&';
case '\'': return ''';
case '"': return '"';
}
});
}
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));