Owns the live serial port sessions of one node, keyed by connection id. More...
| Header: | #include <SerialSessionManager> |
| Since: | 1.0 |
| Inherits: | QObject |
A session opens on a stored SerialConnection. It stays open until a caller closes it or the device detaches. A session does not belong to a UI tab: tabs and OPAL tasks attach to the same session through the signals of the manager, and when the last viewer closes, the port stays open. Each session keeps a rolling 1 MiB receive buffer, which readTail() reads, and at most one drip-feed LineStreamRun. A manual write is refused while a drip-feed runs.
SerialSessionService creates the manager and keeps it for its own life, and Node::serialSessions() returns it. When the node leaves NodeActive, the service closes every session. The manager and its ports live on the UI thread. The public methods are Q_INVOKABLE, so an OPAL worker thread can call them through a blocking queued connection, as SerialOpalContext does.