Nanite Systems has developed a large number of communications protocols for various specialized interfaces. Many of these are open protocols with public documentation. These protocols are documented here.
Space-separated: The majority of NS communications protocols use spaces to separate tokens. This makes them easier to read and adopt, and usually means that parsing is trivially done using llParseString2List(message, [" "]) to split a message into single words, and llDumpList2String(tokens, " ") to rejoin it into a single string again.
JSON: Some newer NS protocols, like CAPS, use JSON for communications. This allows for named arguments and grouping of tokens containing spaces. See JSON usage in LSL from the Second Life Wiki for more information. Note that CAPS, HUDware, and ORIX messages all include a fixed header string that must be clipped off before parsing the JSON payload.
CSV: The ACS protocol uses commas to separate tokens. It can be parsed by drawing an analogy to the space-separated method described above. Note that LSL also provides special functions for this procedure, llCSV2List() and llList2CSV(), which correctly handle embedded vectors and quaternions, but the known parts of the ACS protocol do not use this feature. Aside from these angle-bracket datatypes, the built-in functions do not provide escaping of commas (e.g. by using double quotation marks).
| Protocol | Channel(s) | Syntax | Description |
|---|---|---|---|
| Light Bus | variable, based on UUID | space-separated | Main communication protocol between NS control units and devices |
| Public Bus | -9999999, -9999998 | space-separated | Primary access method for remotely sending commands to NS control units |
| ATOS Arena | -9990009 | space-separated | Reports events and configures rules for regulated ATOS combat |
| Local Command Access | 1 | space-separated (uses prefixing) | Secondary access method for sending commands to nearby NS control units |
| NS Meterological Service | -78838783 | space-separated | Used to transmit weather information |
| CAPS | 411 | JSON | Capabilities Assessment and Provisioning Service; provides a standard interface for discovering what protocols a device supports, and what HUDs are available for automatic attachment onto an avatar |
| Facet | 5200 | space-separated | Configuration HUD that provides a simple alternative to dialog menus |
| PDS | 5201 | space-separated supports linebreaks for multiple messages | Distributes and tracks electricity levels in a power grid simulation |
| HUDware | -82104 | JSON | Generic scriptable HUD presentation system for objects without their own configuration UIs |
| PHASE (obsolete) | 1608011905 | space-separated | File transfer protocol; replaced by PATH |
| PATH | 1608011905 | space-separated | File transfer protocol |
| Property Tracking System | 16711784 | mainly space-separated, some JSON | Used to securely attach and configure transponders to slaves, migrant workers, parolees, etc. |
| TESI Control | -9999969 | space-separated | Sent from TESI furniture and anatomy to report arousal status, fluid transfer, etc. |
| TESI Effects | -1010101 | space-separated | Sent from TESI host to peripherals to produce sounds, droplets, etc |
This is not a complete list of all protocols used by all Nanite Systems products, as many are kept closed for business reasons.
External Protocols
For interoperability reasons, Nanite Systems products implement a number of protocols developed by outside parties. These are considered open or partially open, and are documented here for completeness.
| Protocol | Channel(s) | Syntax | Description |
|---|---|---|---|
| ACS | 360, plus private side channels | CSV | Autonomy Control Systems protocol used by ACS-powered constructs; only the charging functions are officially documented |
| ORIX | devices send on -15180924 or 9360 devices receive on -15180925 | JSON | Open Robot Interface (eXtensible), designed by ACS, used mainly by OeM |
| Unknown Alteran Stargate Utility Protocol | -900000 | pipe-separated | Only partially documented |