Skip to content

Keys, commands and flags

Keys are case-sensitive: w writes and W arms a write session. Text fields (filters, forms, editors and the command bar) take printable characters, so there q types a q. A test checks this page against the TUI’s key map.

Key Action
Ctrl-C Close a dialog, or cancel the running Who-Is or connection attempt. A second Ctrl-C within 2 s quits
? Help overlay
q Quit. With changes still in the ledger, the exit guard asks first
L Show or hide the log pane
: The command bar
W Arm a write session, or disarm the armed one
u The session ledger
p The profile dialog
c Connect again, or retry a failed connection

The number keys switch screens: 1 the devices, 2 Browse (the browser of the device you opened, as you left it; with none open it stays on the devices and says so), 3 the watch list, 4 Network, 5 BACnet/SC, 6 MS/TP, 7 Capture. The status bar’s strip numbers the screens that apply to the session, with the one shown in brackets: 1 Devices 2 Browse [3 Watch] 4 Network 7 Capture, or 1 2 [3 Watch] 4 7 in a narrow terminal. Network appears once a session is connected, BACnet/SC for SC, and MS/TP with a serial port; the keys work on every session. 1 hides an open browser without closing it; Esc in the browser closes it.

The help overlay (?) lists these keys, then the screen’s own and the command bar’s commands.

Key Action
d Devices: the Who-Is form
Enter Browse the selected device; in the browser, read the selected object
Esc Devices: clear the filter, or a notice. Browser: clear the filter, then close the browser and go back to the devices (1 only hides it, keeping it as it was)
/ Filter the devices, or in the browser the objects
s Devices: sort by the next column
S Devices: reverse the sort order
Tab Browser: the next pane. Below 120 columns a commandable object’s priority array is a pane of its own
Shift-Tab Browser: the previous pane
r Browser: read the open object again
a Browser: watch the open object’s Present_Value
w Browser, in a write session: write a property of the open object
n Browser, in a write session: relinquish a priority slot
p The profile dialog
c Connect, or reconnect
x Disconnect, or cancel a connection attempt
Up, Down, k, j Move
PgUp, PgDn Move a page
Home, End, g, G First or last row
1, 2, 3, 4, 5, 6, 7 Switch screens
W, u, :, ?, L, q As everywhere
Key Action
x, Delete Stop watching the selected row and cancel its subscription
Up, Down, k, j, PgUp, PgDn, Home, End, g, G Move
Esc, 1 Back to the devices
2 Browse, the open device’s browser
4, 5, 6, 7 Network, BACnet/SC, MS/TP, Capture
W, u, :, ?, L, q As everywhere
Key Action
Tab, Shift-Tab Next or previous tab: BDT, FDT, Matrix, Networks; from 160 columns wide, the next pane
r Read the BBMD’s tables again; on the Networks tab, ask the routers
m Survey every BBMD the tables lead to, for the matrix
x Disconnect
Esc, 1 Back to the devices
2 Browse, the open device’s browser
3, 5, 6, 7 Watch list, BACnet/SC, MS/TP, Capture
W, u, :, ?, L, q As everywhere
Key Action
Tab, Shift-Tab Next or previous view: hub certificates, doctor, my credentials; from 160 columns the credentials view shows the hub’s chain on its left
p The profile dialog
c Reconnect
x Disconnect
Esc, 1 Back to the devices
2 Browse, the open device’s browser
3, 4, 6, 7 Watch list, Network, MS/TP, Capture
W, u, :, ?, L, q As everywhere
Key Action
Tab, Shift-Tab Monitor: next or previous view (stations, token ring, findings, errors, scan)
J Monitor: start the safe join
Up Safe join: propose the previous free MAC; on the Scan view, select the previous baud row for its error breakdown
Down Safe join: propose the next free MAC; on the Scan view, select the next baud row for its error breakdown
+, = Safe join: propose the next free MAC
- Safe join: propose the previous free MAC
Enter Safe join: review the proposal in the join confirmation
z Count from now
Space Pause the screen, or follow again
p The profile dialog
c Reconnect, or confirm a join again
x Disconnect, or stop the monitor
Esc Back
1, 2, 3, 4, 5, 7 Devices, Browse, watch list, Network, BACnet/SC, Capture
W, u, :, ?, L, q As everywhere
Key Action
Space Pause the list, or follow the newest frame again
Tab, Shift-Tab Next or previous pane: list, decode tree, hex view
Enter In the list, open the frame’s decode tree; in the tree, open or close the node
Left, Right In the tree or hex view: close or open the node
/ Filter the frames; Enter applies it
e, E Export the frames the filter keeps to pcap: B/IP as Ethernet, or as raw IPv4
z Forget every frame
Up, Down, k, j, PgUp, PgDn, Home, End, g, G Move in the focused pane
p The profile dialog
c Reconnect
x Disconnect
Esc Clear the filter, then back to the devices
1, 2, 3, 4, 5, 6 Devices, Browse, watch list, Network, BACnet/SC, MS/TP
W, u, :, ?, L, q As everywhere
Key Action
y Join the trunk
Up, Down, k, j Choose the serial port
Esc, n, q Cancel

In the list and the preview:

Key Action
Up, Down, k, j, Tab, Shift-Tab Choose a profile
Enter Preview the profile; in a preview, connect
a Attest to first use, save the authorization and connect
y Accept the credential warnings shown
c Connect
e Edit the profile
r Reload from disk and check again
p Back to the list
n, s, m New B/IP, BACnet/SC or MS/TP profile
x Disconnect the live session
Esc Close the dialog
q Quit

In the editor:

Key Action
Tab, Down Next field
Shift-Tab, Up Previous field
Backspace Erase
Enter Save without connecting
Esc Discard the draft

A flags-only B/IP session without -i asks which interface to bind.

Key Action
Up, Down, k, j Choose
1 to 9 Choose by number
Enter Bind it
Esc, q Quit
Key Action
Tab, Down Next field
Shift-Tab, Up Previous field
Left, Right, Space Change the scope
Backspace Erase
Enter Send; past a warning, press it again
Esc Close
Key Action
Enter Keep the filter
Esc Clear it
Backspace Erase
Up, Down Move through the matches

The arm dialog, the write and relinquish forms, the previews, the ledger and the exit guard.

Key Action
Tab, Down Next field
Shift-Tab, Up Previous field
Backspace Erase
Enter Arm, preview, or send a T1 write; send a T3 write after the instance is typed
y Send a T2 write; in the ledger, confirm a revert
R Ledger: revert everything
r, k Exit guard: revert and quit, or keep and quit
Esc Cancel or decline; nothing is sent
Key Action
?, Esc Close the help
Up, Down, k, j Scroll a line
PgUp, PgDn Scroll a page
Home, End, g, G The top or the end
q Quit

: opens it on the footer line. Enter runs the line, Esc closes it and Backspace erases. While you type, the footer shows the syntax of the commands that match, such as watch DEVICE OBJECT [PROPERTY] after wa. An unknown command shows the list below in the footer.

Command What it does
watch DEVICE OBJECT [PROPERTY] Watch a property; w is short for it. DEVICE is a device from the device table: its instance, DNET:instance for a routed one, or the routed station the table shows, such as 2:0x05. PROPERTY defaults to Present_Value
csv on Log every watched value to a CSV file in the profile’s workspace
csv off Stop logging
writem DEVICE OBJECT PROPERTY VALUE[@P] ... Several writes to one device in one WritePropertyMultiple, previewed and confirmed at T2 or above; needs an armed session
bbmd [ADDRESS] Show and read that BBMD’s tables on the Network screen (ip or ip:port); with no address, go back to the tables of the BBMD you register with
find NAME Broadcast a Who-Has for the object named NAME and list the answers
find Close the Who-Has panel
mstp rotation MS Monitor: flag token rotations longer than this
mstp hold MS Monitor: flag token holds longer than this
mstp listen SECS Monitor: how long the safe join listens before it proposes

Single or double quotes group words, and a backslash makes a following quote, whitespace character or backslash plain text. A quote left open shows an error instead of running the line. In writem, a quoted or escaped value is a character string; a quoted number, such as '72.5', is a string too, so a numeric property refuses it. find takes the rest of the line as typed, and unwraps a name that is one quoted word, such as find "Zone Temp".

These run from a live monitor. See Scan: find the baud rate.

Command What it does
mstp scan SECS Measure six baud rates from a live receive-only monitor; 1..3600 whole seconds per rate
mstp scan cancel Stop the scan, keep what it measured so far, and go back to the monitor’s original baud rate

On the Scan view, Up and Down or + and - select the row whose error counts are broken down. A suggestion never applies a rate, joins the trunk or changes a profile.

See DCC and reinitialize. Both go to the device open in Browse or selected on the Devices screen, ask for a masked password, and confirm at T3. They need an armed session on a profile with dangerous = true.

Command What it does
dcc enable DeviceCommunicationControl: let the device communicate again. control is the same command
dcc disable-initiation [MINUTES] Stop the device starting conversations for MINUTES (1 to 65535), 15 by default
dcc disable [MINUTES] The deprecated full disable, which current devices refuse; the confirmation warns
dcc disable-initiation forever The same with no time limit: it lasts until a dcc enable or a restart
dcc disable forever The deprecated full disable with no time limit
reinit coldstart ReinitializeDevice: a cold start
reinit warmstart ReinitializeDevice: a warm start
reinit STATE The other states: start-backup, end-backup, start-restore, end-restore, abort-restore or activate-changes

bacnet tui takes these, as well as the global network flags. Plain bacnet uses their defaults; name tui to set them.

Flag Default What it does
--profile NAME Preview this B/IP, BACnet/SC or MS/TP profile
--no-profile Use flags only, with no profile or workspace
--passive Listen on B/IP and transmit nothing; :find searches overheard I-Haves
--mstp-monitor PORT Listen to an MS/TP trunk on this port without transmitting
--fps N 20 Redraws a second, 1 to 60. An idle screen isn’t redrawn
--log-file FILE Also append log lines to this file
--max-rate N 20 Confirmed requests a second across the browser and the watch list; 0 for no cap
--cov-lifetime SECS 300 Lifetime of the watch list’s COV subscriptions, 10 to 28800
--poll-interval SECS 10 Least time between two polls of a watched point, 1 to 3600
--capture-ring N 50000 Frames the Capture screen keeps, 1 to 1000000; the oldest go first
--capture-device DEVICE Also capture B/IP on the -p port from this network device with libpcap (the pcap feature)

-v and -vv raise the log level to debug and trace. --no-tui, or BACNET_NO_TUI set to anything but empty or 0, stops plain bacnet from opening the TUI.

These pages describe v0.15.0.

Key map · Command bar · Terminal UI reference.

CONTINUETroubleshoot the terminal UITerminal size, colour, SSH and tmux, and where the logs are.

Release v0.15.0 ·Build and integrate. Pre-1.0 APIs; partial conformance.Support & limitations