The packet parsing/encoding stuff works, so I guess you could use this as the basis for something else, especially UI stuff like APRS.
The Session object is pretty broken, so I wouldn't try to do any connected-mode stuff without basically redoing that.
kissTNC escapes FEND/FESC in outgoing frames and keeps its KISS parser state across serial reads. For MeshTNC it also has:
sendAckMode(id, data)- send a data frame as ACKMODE (0x0C); the TNC's ack arrives as aframeevent with commandkissDefs.ACKMODEand data[id_hi, id_lo], plus a status byte if sending failedenterCLI()- leave KISS mode and get to the TNC's command line; resolves with{ wasKISS, responsive }command(text)- send a CLI command and resolve with the reply text;get(name)resolves with the value ofget <name>enterKISS()- back to KISS mode;assumeKISS()parses input as KISS again without asking the TNCsendRaw(command, data)- any KISS command with a raw bodywakePreamble/wakeIdleMsoptions (orsetWakePreamble(bytes, idleMs)) - for TNCs that sleep between frames: afterwakeIdleMs(default 150) without writing, a KISS frame is preceded bywakePreambleFEND bytes, which wake the TNC and are ignored as empty frames. Off by default- received RX info frames (MeshTNC
set kiss rxinfo on) arrive asframeevents with commandkissDefs.RXINFO