Return Message Documentation
Return Messages
SatVUE uses messages to communicate between the SatVUE device and website. Messages can be sent to or from the SatVUE device, this documentation will focus on messages sent from the device, which are know as return messages.
The actual raw data is slightly different to what is decribed below, but SatVUE does some pre-processing of the messages to make the data easier to work with and manipulate.
To reduce the data usage, there are three return message types in SatVUE. Your SatVUE device will send the appropriate message type depending on the data that needs to be transmitted. If both port and modbus sampling is used then your device will send both a port and modbus message at its scheduled message sending time.
- Single Sample Port Message: These are sent when a single sample of the port values are sent.
- Multi-Sample Port Message: These are send when multiple samples of port values are sent.
- Modbus Sample Message: These are send when either single or multiple samples of Modbus values are sent.
Message Processing
When a message is recevied by the SatVUE website, it is processed on a sample by sample basis. When each sample is processed a timestamp for that sample is calculated as well as all the device's fields that are defined. The exception to this is if your field has only once per message set, when this is set the field is only calculated on the last sample for that message.
The only once per message should be used on fields that not multi-sample, an example of this is the TerminalTemperature or SupplyVoltage field. This could also be used for other instances where you do not want the field calculated on every sample of a message.
The message_data array that exposed to the Lua engine as well as used internally in SatVUE provide access to the current sample's data. This array will include all the non-array elements in the message payload (e.g. includes SupplyVoltage but not ModbusSlaves fields). The array message fields contain multi-sample data, these are broken up into individual samples which are processed one by one, each with their own independant message_data array.
The message_data array is not a static array that is supplied to each field when calculating its value. As each device field is calculated it is added to this array, indexed by its name. This allows you access to all previously defined field values, and can reduce duplication of your algorithms when a particular value is required in multple calculations.
Single Sample Port Message
Name | Type | Size | Description |
---|---|---|---|
UTCHour | Unsigned Int | 5 bits | The Time (hour) the message was created, in UTC timezone. |
UTCMinute | Unsigned Int | 6 bits | The Time (minute) the message was created, in UTC timezone. |
UTCSecond | Unsigned Int | 6 bits | The Time (second) the message was created, in UTC timezone. |
Port1Value | Unsigned Int | 12 or 31 bits | The analog (milli-volts) or pulse count value of port 1. |
Port2Value | Unsigned Int | 12 or 31 bits | The analog (milli-volts) or pulse count value of port 2. |
Port3Value | Unsigned Int | 12 or 31 bits | The analog (milli-volts) or pulse count value of port 3. |
Port4Value | Unsigned Int | 12 or 31 bits | The analog (milli-volts) or pulse count value of port 4. |
SupplyVoltage | Unsigned Int | 16 bits | The supply/battery voltage of the SatVUE, in milli-volts. |
TerminalTemperature | Signed Int | 10 bits | The internal temperature of the SatVUE device, in °C. |
SignalStrength | Unsigned Int | 10 bits |
The signal strength of the satillite to the SatVUE, in 10 * dbHz. You must divide this value by 10 to get the dbHz value. |
Multi-Sample Port Message
Name | Type | Size | Description |
---|---|---|---|
UTCHour | Unsigned Int | 5 bits | The Time (hour) the message was created, in UTC timezone. |
UTCMinute | Unsigned Int | 6 bits | The Time (minute) the message was created, in UTC timezone. |
UTCSecond | Unsigned Int | 6 bits | The Time (second) the message was created, in UTC timezone. |
SampleInterval | Unsigned Int | 12 bits | The interval between each sample in the PortValues array, in minutes |
PortValues | Array | up to 1440 Elements |
An array where each element is another array of values. Each element in this sub-array contains, Port1, Port2, Port3, and Port4 fields as unsigned integers. |
SupplyVoltage | Unsigned Int | 16 bits | The supply/battery voltage of the SatVUE, in milli-volts. |
TerminalTemperature | Signed Int | 10 bits | The internal temperature of the SatVUE device, in °C. |
SignalStrength | Unsigned Int | 10 bits |
The signal strength of the satillite to the SatVUE, in 10 * dbHz. You must divide this value by 10 to get the dbHz value. |
Modbus Sample Message
Name | Type | Size | Description |
---|---|---|---|
UTCHour | Unsigned Int | 5 bits | The Time (hour) the message was created, in UTC timezone. |
UTCMinute | Unsigned Int | 6 bits | The Time (minute) the message was created, in UTC timezone. |
UTCSecond | Unsigned Int | 6 bits | The Time (second) the message was created, in UTC timezone. |
SampleInterval | Unsigned Int | 12 bits | The interval between each sample in the PortValues array, in minutes |
ModbusSlaves | Array | up to 1440 Elements |
An array where each element is another array of values. The elements in this sub-array is dependent on the Modbus configuration for this device. Each of your defined registers will appear in this array and can be accessed using the defined registers name. |
SupplyVoltage | Unsigned Int | 16 bits | The supply/battery voltage of the SatVUE, in milli-volts. |
TerminalTemperature | Signed Int | 10 bits | The internal temperature of the SatVUE device, in °C. |
SignalStrength | Unsigned Int | 10 bits |
The signal strength of the satillite to the SatVUE, in 10 * dbHz. You must divide this value by 10 to get the dbHz value. |