This repository contain code for processing and presenting sensor data from RV Gunnerus
Any executable file within here will be run as an unprivileged userr:
- MQTT data will be piped into STDIN
- Output on STDOUT will be posted as MQTT data
- Output on STDERR will be posted as MQTT data with topic gunnerus/STDERR/processes/relative-path-of-your-code
The MQTT data is composed of the topic and message separated by a single space. The topics subscribed to STDIN may be selected by including one or more magic strings like "#[MQTT-SUBSCRIBE:topic]" in the code, typically as a comment or a constant. Default topic is "local/NULL", but may be subject to change.
Please observe the following
- Select an intuitive names for your processes folder and packages files
- By convention the messages starts with a timestamp followed by a single space and the payload of the message. The timestamp is UTC, either in unix or ISO-8601 format. The timestamp is recorded as close to the sensors as posible. Please reatin it whenever possible.
- No binary data or newlines in the messages. Stick to pure ascii.
- Be spesific on the "#[MQTT-SUBSCRIBE:topic]" to avoid excessive load on the infrastructure.
- Avoid message loops by posting messages you subscribe to, directly or indirectly.
- No whitespace in topics, timestamps or code paths.
- Keep STDERR quiet. Monitor STDERR for your process and resolv any errors/warnings.
- Be modest. Heavy analysis belongs on dedicated servers.
- Anything matching topic gunnerus/# will be sendt ashore. Consider the bandwidth.
Files with package names to install. .pip3 for phyton3 packages, .pkg for apt.
Document the data you inject into the stream.
NTNU-IT collect data from the different sensors. This is delivered ad MQTT in the following way:
Raw ethernet frames in hexidecimal captured on the sensor networks. NB! This cover all data to and from on the interface, including broadcasts, but not communication between other hosts.
- ethernet/hemos - RR hemos network with the some Modbus and MQTT traffic
- ethernet/survey - Survey network with several UDP broadcast sources
- ethernet/olex - link network to the OLEX computer
UDP pacages is reposted with the header expanded into UDP/network/ethsrc/ipsrc/udpspt/ethdst/ipdst/udpdpt by processes/ntnu-it/ethernet2udp.pl
The following modbus sources is provided as integers to gunnerus/modbus/source/port/unit/register int:
- gunnerus/modbus/crane1/502/36/67-72 - Crane data
- gunnerus/modbus/engines/502/0/0-32 - Engine data
NMEA data is found provided as NMEA/host/port:
- NMEA/192.168.1.122/4001 - Miros Wavesystem