The public bus operates on channel -9999999, and is received by a wide range of Nanite Systems products, including ARES, Companion controllers, and Clockwork systems. To some extent it is also known to be parsed by third-party platforms, including the Kocore KOR and Obedientia ex Machina OeM operating systems.
Commands sent over the public and private channels
The primary use of the public bus is to send system commands, and under Companion, these can also be sent under the private bus channel, which is the negative integer corresponding to the unit's serial number. For example, if the unit's serial number is 100-00-0001 then its private bus channel is -100000001. Using the private command channel is no longer recommended, as it is not supported by ARES, and may not be available when dealing with third-party systems.
System commands sent using either channel are interpreted as being from the agent that owns the sending object. The method for sending a command on behalf of another user varies by platform:
- Under Companion and Clockwork, use the internal active message over the light bus.
- Under ARES, use the command active message over the light bus.
- For third-party platforms, consult the vendor.
The following commands do not function over this method:
@boot and @on | Only available directly to the unit while it is powered down; on Companion, triggers start_task(SEC_POWER_SWITCH, "on", id) ; under ARES, invokes @power system on
|
start, stop, wait, disable, enable, set, randset, unset, ifeq, ifexists, evar, report, broadcast | These are Arabesque language statements only |
commands starting with ! and . | Cortex commands must be prefixed with relay |
say | Arabesque language statement equivalent to relay command; attempting to use this over public or private bus will activate the Chorus API instead |
safeword | Only possible via direct command-line input |
Public bus protocols
The public bus also carries a number of messages that are exclusive to it. These are specified below.
navigate
<event>
(Companion only)
The navigate command has several sub-messages not included in the command reference. They are intended to be sent by navigation nodes rather than users. These are arrive, seek
<next-node-UUID>
, warp <next-node-UUID>
, and wait <seconds>
.
sxdwm
<...>
(Companion only)
trigger
<event>
(Companion only)
charge
<amount>
<amount>
kilojoules of battery power. Not all units will receive charged battery power with perfect efficiency (see chassis specification settings), and larger amounts will cause overheating under ATOS. Amounts over 100 kJ require consent or they will be rejected.If
<amount>
is negative, then the unit will respond with a positive charge message of the same format.
ping
<response-channel>
<response-channel>
. The message will contain the following:<serial>
<OS>
<owner>
<controller-model>
<authority>
Under Companion, the
<owner>
field will usually be populated with the unit's first user that has rank 2.If the unit's authority tag contains spaces, then
<authority>
will replace these characters with underscores.Known
<OS>
values are as follows:- Companion (before 8.3.0): version number only, e.g. "8.2.11"
- ATOS/CX: ATOS/
<version>
, e.g. "ATOS/12.1.0" (previous versions of this document incorrectly reported the format was ATOS/CX_<version>
. This is only used for identification messages.)- Companion (after 8.3.0), Clockwork, ARES, KOR, OeM:
<OS>
/<version>
, e.g. "Companion/8.6.4", "Clockwork/8.6.3", "ARES/0.4.0", "KOR/24.03.08", "OeM/4.0".