Expand description
The UI-free operations core of the bacnet tool, shared by its one-shot
commands, its terminal UI and its MCP server (#2064).
Everything here works on a BACnetClient
and plain data, with no terminal, no ratatui and no MCP dependency, so
every front end reads targets, values and devices the same way and
obeys the same request limits:
bbmd: B/IP broadcast management tables as plain data, the survey that follows them and the consistency check over them;class: what each command does to a device (read, write or device management), the table the front ends’ safety levels share;targetanddestination: the target grammar (192.168.1.10,1234,2:1234,bip6:0x0004D2,mstp:5, …) and how a target becomes a service destination, routed when it must be;parse: the object, property and value grammar (ai:1,present-value[3],72.5@8);formatandlabel: values as display text, and how objects, properties and priorities are named;limits: the global request-rate cap, the one-request-per-device gate, rates per network and per-caller accounts;decode: frames, NPDUs and APDUs decoded into summaries and field trees, with no traffic;engine: the read operations (properties, the object list, a device summary, trend log pages and alarms), Who-Is and the BBMD table reads over those limits;watch: the watch hub, one managed COV subscription or poller per point however many listeners share it, holding the latest values;safety: the write-safety core the TUI and the MCP server share: levels, tiers, previews, the ledger, the audit log, the workspace lock and the engine half of a write (#2068).
Modules§
- bbmd
- B/IP broadcast management (Annex J) as plain data: BBMD table rows, what
reading a table gave, the breadth-first survey that follows each BDT to
the BBMDs it lists, and the consistency matrix over the tables read
(
matrix). The TUI’s Network screen and the MCP server’s network map share it;Enginereads the tables. - class
- What each command does to a device: read, write or device management (#972). One table serves the one-shot commands and the TUI’s safety levels (#964), so a command can’t be guarded in one front end and not in another.
- decode
- BACnet frames decoded for people: what the TUI’s capture screen and the
MCP server’s
bacnet_decodetool show, with no network traffic. - destination
- Turn a
Targetinto a service destination. - engine
- The read operations every front end shares, over one client and one set of request limits.
- format
- The one value formatter the TUI, the one-shot CLI and the MCP server
share: property values as read, turned into the text the browser, the
watch list, the write previews and the CLI’s tables show, and into the
typed
Datumthe CLI’s JSON carries. - label
- How objects, properties and command priorities are named in text, the
same in every front end: enumerations in kebab case, objects as
analog-input 1(decision D4 of #1887). - limits
- The session’s request limits.
- parse
- Object/property shorthand parsing for integrators.
- safety
- The write-safety core every front end shares (#964, #2068;
docs/design/tui.mdsection 5,docs/design/mcp.mdsection 7): session levels, confirmation tiers, previews, the ledger, the audit log and the workspace lock, with the engine half of a write. - target
- The target grammar shared by the one-shot commands and the TUI, and the way each transport’s MAC addresses are shown so they read back.
- watch
- The watch hub (#2067): one managed BACnet subscription or poller per point, however many listeners share it.