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.
Everywhere
Section titled “Everywhere”| 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.
Devices and the browser
Section titled “Devices and the browser”| 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 |
Watch list
Section titled “Watch list”| 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 |
Network screen
Section titled “Network screen”| 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 |
BACnet/SC screen
Section titled “BACnet/SC screen”| 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 |
MS/TP screen
Section titled “MS/TP screen”| 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 |
Capture screen
Section titled “Capture screen”| 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 |
MS/TP join confirmation
Section titled “MS/TP join confirmation”| Key | Action |
|---|---|
y |
Join the trunk |
Up, Down, k, j |
Choose the serial port |
Esc, n, q |
Cancel |
Profile dialog
Section titled “Profile dialog”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 |
Interface picker
Section titled “Interface picker”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 |
Who-Is form
Section titled “Who-Is form”| 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 |
Filters
Section titled “Filters”| Key | Action |
|---|---|
Enter |
Keep the filter |
Esc |
Clear it |
Backspace |
Erase |
Up, Down |
Move through the matches |
Write dialogs
Section titled “Write dialogs”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 |
Help overlay
Section titled “Help overlay”| 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 |
Command bar
Section titled “Command bar”: 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".
MS/TP baud scan
Section titled “MS/TP baud scan”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.
Device management commands
Section titled “Device management commands”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.
Sources and release scope
Section titled “Sources and release scope”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