Serialisation

DMPACK supports the following data serialisation formats:

Atom XML

Export of log messages in Atom Syndication Format (RFC 4287), with optional XSLT style sheet.

Block

Export of observation responses as X/Y data points in ASCII block format, consisting of time stamp (ISO 8601) and real value.

CSV

Export and import of beat, log, node, observation, sensor, and target data, with custom field separator and quote character. A CSV header is added optionally.

GeoJSON

Export of node, sensor, and target data as GeoJSON feature points.

HDF5

Export and import of node, observation, sensor, and target data as HDF5 compound data types.

JSON

Export of beat, log, node, observation, sensor, and target data as JSON objects or JSON arrays.

JSON Lines

Export of beat, log, node, observation, sensor, and target data in JSON Lines/Newline Delimited JSON format.

Lua

Converting observations from and to Lua tables: import of observations from Lua file or stack-based data exchange between Fortran and Lua. plain text format

MessagePack

Serialisation and deserialisation of types beat, dp, log, node, observation, sensor, and target in MessagePack format.

Namelist

Import from and export to Fortran 95 Namelist (NML) format of single beat, log, node, observation, sensor, and target types. The syntax is case-insensitive, line-breaks are optional. Default values are assumed for omitted attributes of data in Namelist format.

Text

Status messages of the HTTP-RPC API are returned as key–value pairs in plain text format.

The JSON Lines format equals the JSON format, except that multiple records are separated by new line. All string attributes of the derived types are 8 bit only and limited to the ASCII character set, UUIDv4 identifiers and date-time strings in ISO 8601 format are always 32 characters long.

API Status

Derived Type

Attribute Type Size Description
version string 32 Server version.
dmpack string 32 DMPACK library version.
host string 32 Server host name.
server string 32 Server software (web server).
timestamp string 32 Server date and time in ISO 8601.
message string 32 Server status message.
error integer 4 Error code.

JSON

{
  "version": "1.0.0",
  "dmpack": "1.0.0",
  "host": "localhost",
  "server": "lighttpd/1.4.70",
  "timestamp": "1970-01-01T00:00:00.000000+00:00",
  "message": "online",
  "error": 0
}

Text

version=1.0.0
dmpack=1.0.0
host=localhost
server=lighttpd/1.4.70
timestamp=1970-01-01T00:00:00.000000+00:00
message=online
error=0

Beat

Derived Type

Attribute Type Size Description
node_id string 32 Node id (-0-9A-Z_a-z).
address string 45 IPv4/IPv6 address of client.
client string 32 Client software name and version.
time_sent string 32 Date and time heartbeat was sent (ISO 8601).
time_recv string 32 Date and time heartbeat was received (ISO 8601).
error integer 4 Last client connection error.
interval integer 4 Emit interval in seconds.
uptime integer 4 Client uptime in seconds.

CSV

Column Attribute Description
1 node_id Node id.
2 address IP address of client.
3 client Client software name and version.
4 time_sent Date and time heartbeat was sent.
5 time_recv Date and time heartbeat was received.
6 error Error code.
7 interval Emit interval in seconds.
8 uptime Client uptime in seconds.

JSON

{
  "node_id": "dummy-node",
  "address": "127.0.0.1",
  "client": "dmbeat 1.0.0 (DMPACK 1.0.0)",
  "time_sent": "1970-01-01T00:00:00.000000+00:00",
  "time_recv": "1970-01-01T00:00:00.000000+00:00",
  "error": 0,
  "interval": 60,
  "uptime": 3600
}

MessagePack

Array Element Type Attribute
1 fixstr, str8 node_id
2 fixstr, str8 address
3 fixstr, str8 client
4 str8 time_sent
5 str8 time_recv
6 int32 error
7 int32 interval
8 int32 uptime

Namelist

&DMBEAT
BEAT%NODE_ID="dummy-node",
BEAT%ADDRESS="127.0.0.1",
BEAT%CLIENT="dmbeat 1.0.0 (DMPACK 1.0.0)",
BEAT%TIME_SENT="1970-01-01T00:00:00.000000+00:00",
BEAT%TIME_RECV="1970-01-01T00:00:00.000000+00:00",
BEAT%ERROR=0,
BEAT%INTERVAL=60,
BEAT%UPTIME=3600,
/

Data Point

Derived Type

Attribute Type Size Description
x string 32 X value (ISO 8601).
y double 8 Y value.

Block

1970-01-01T00:00:00.000000+00:00               0.00000000

CSV

Column Attribute Description
1 x X value.
2 y Y value.

JSON

{
  "x": "1970-01-01T00:00:00.000000+00:00",
  "y": 0.0
}

MessagePack

Array Element Type Attribute
1 str8 x
2 float64 y

Image

Derived Type

Attribute Type Size Description
id string 32 Image id (UUIDv4).
node_id string 32 Node id (-0-9A-Z_a-z).
sensor_id string 32 Sensor id (-0-9A-Z_a-z).
target_id string 32 Target id (-0-9A-Z_a-z).
timestamp string 32 Date and time (ISO 8601).
mime string 48 MIME type (image/jpeg, image/png).
width integer 4 Image width in pixels.
height integer 4 Image height in pixels.
size integer 8 Image size in bytes.

Namelist

&DMIMAGE
IMAGE%ID="26462d27d7ff4ef1b10e0a2e921e638b",
IMAGE%NODE_ID="dummy-node",
IMAGE%SENSOR_ID="dummy-sensor",
IMAGE%TARGET_ID="dummy-target",
IMAGE%TIMESTAMP="1970-01-01T00:00:00.000000+00:00",
IMAGE%MIME="image/jpeg",
IMAGE%WIDTH=800,
IMAGE%HEIGHT=600,
IMAGE%SIZE=2048,
/

Log

Log level enumerators
Level Parameter Parameter String Description
1 LL_DEBUG debug Debug.
2 LL_STATUS status System status update.
3 LL_INFO info Hint or information.
4 LL_WARNING warning Warning.
5 LL_ERROR error Non-critical error.
6 LL_CRITICAL critical Critical error.
7 LL_USER1 user1 User-defined log level (1).
8 LL_USER2 user2 User-defined log level (2).

Derived Type

Attribute Type Size Description
id string 32 Log id (UUIDv4).
level integer 4 Log level.
error integer 4 Error code.
timestamp string 32 Date and time (ISO 8601).
node_id string 32 Node id (optional).
sensor_id string 32 Sensor id (optional).
target_id string 32 Target id (optional).
observ_id string 32 Observation id (optional).
source string 32 Log source (optional).
message string 512 Log message (ASCII).

Atom XML

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<generator version="1.0">DMPACK</generator>
<title>DMPACK Logs</title>
<subtitle>Log Messages Feed</subtitle>
<id>urn:uuid:a6baaf1a-43b7-4e59-a18c-653e6ee61dfa</id>
<updated>1970-01-01T00:00:00.000000+00:00</updated>
<entry>
<title>DEBUG: dummy log message</title>
<id>urn:uuid:26462d27-d7ff-4ef1-b10e-0a2e921e638b</id>
<published>1970-01-01T00:00:00.000000+00:00</published>
<updated>1970-01-01T00:00:00.000000+00:00</updated>
<summary>DEBUG: dummy log message</summary>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<table>
<tbody>
<tr><th>ID</th><td><code>26462d27d7ff4ef1b10e0a2e921e638b</code></td></tr>
<tr><th>Timestamp</th><td>1970-01-01T00:00:00.000000+00:00</td></tr>
<tr><th>Level</th><td>DEBUG (1)</td></tr>
<tr><th>Error</th><td>dummy error (2)</td></tr>
<tr><th>Node ID</th><td>dummy-node</td></tr>
<tr><th>Sensor ID</th><td>dummy-sensor</td></tr>
<tr><th>Target ID</th><td>dummy-target</td></tr>
<tr><th>Observation ID</th><td><code>9bb894c779e544dab1bd7e7a07ae507d</code></td></tr>
<tr><th>Source</th><td>dummy</td></tr>
<tr><th>Message</th><td>dummy log message</td></tr>
</tbody>
</table>
</div>
</content>
<author>
<name>dummy</name>
</author>
</entry>
</feed>

CSV

Column Attribute Description
1 id Log id.
2 level Log level.
3 error Error code.
4 timestamp Date and time.
5 node_id Node id.
6 sensor_id Sensor id.
7 target_id Target id.
8 observ_id Observation id.
9 source Log source.
10 message Log message.

JSON

{
  "id": "26462d27d7ff4ef1b10e0a2e921e638b",
  "level": 1,
  "error": 2,
  "timestamp": "1970-01-01T00:00:00.000000+00:00",
  "node_id": "dummy-node",
  "sensor_id": "dummy-sensor",
  "target_id": "dummy-target",
  "observ_id": "9bb894c779e544dab1bd7e7a07ae507d",
  "source": "dummy",
  "message": "dummy log message"
}

MessagePack

Array Element Type Attribute
1 str8 id
2 int32 level
3 int32 error
4 str8 timestamp
5 fixstr, str8 node_id
6 fixstr, str8 sensor_id
7 fixstr, str8 target_id
8 str8 observ_id
9 fixstr, str8 source
10 fixstr, str8, str16 message

Namelist

&DMLOG
LOG%ID="26462d27d7ff4ef1b10e0a2e921e638b",
LOG%LEVEL=1,
LOG%ERROR=2,
LOG%TIMESTAMP="1970-01-01T00:00:00.000000+00:00",
LOG%NODE_ID="dummy-node",
LOG%SENSOR_ID="dummy-sensor",
LOG%TARGET_ID="dummy-target",
LOG%OBSERV_ID="9bb894c779e544dab1bd7e7a07ae507d",
LOG%SOURCE="dummy",
LOG%MESSAGE="dummy log message",
/

Node

Derived Type

Attribute Type Size Description
id string 32 Node id (-0-9A-Z_a-z).
name string 32 Node name.
meta string 32 Node description (optional).
x double 8 Node local x (optional).
y double 8 Node local y (optional).
z double 8 Node local z (optional).
longitude double 8 Node longitude (optional).
latitude double 8 Node latitude (optional).
elevation double 8 Node elevation (optional).

CSV

Column Attribute Description
1 id Node id.
2 name Node name.
3 meta Node description.
4 x Node local x.
5 y Node local y.
6 z Node local z.
7 longitude Node longitude.
8 latitude Node latitude.
9 elevation Node elevation.

GeoJSON

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [ 0.0, 0.0, 0.0 ]
  },
  "properties": {
    "type": "node",
    "properties": {
      "id": "dummy-node",
      "name": "Dummy Node",
      "meta": "Description",
      "x": 0.0,
      "y": 0.0,
      "z": 0.0,
      "longitude": 0.0,
      "latitude": 0.0,
      "elevation": 0.0
    }
  }
}

HDF5

DATASET "node_type" {
  DATATYPE H5T_COMPOUND {
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "id";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "name";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "meta";
    H5T_IEEE_F64LE "x";
    H5T_IEEE_F64LE "y";
    H5T_IEEE_F64LE "z";
    H5T_IEEE_F64LE "longitude";
    H5T_IEEE_F64LE "latitude";
    H5T_IEEE_F64LE "elevation";
  }
  DATASPACE SIMPLE { ( 8 ) / ( 8 ) }
}

JSON

{
  "id": "dummy-node",
  "name": "Dummy Node",
  "meta": "Description",
  "x": 0.0,
  "y": 0.0,
  "z": 0.0,
  "longitude": 0.0,
  "latitude": 0.0,
  "elevation": 0.0
}

MessagePack

Array Element Type Attribute
1 str8 id
2 fixstr, str8 name
3 fixstr, str8 meta
4 float64 x
5 float64 y
6 float64 z
7 float64 longitude
8 float64 latitude
9 float64 elevation

Namelist

&DMNODE
NODE%ID="dummy-node",
NODE%NAME="Dummy Node",
NODE%META="Description",
NODE%X=0.0,
NODE%Y=0.0,
NODE%Z=0.0,
NODE%LONGITUDE=0.0,
NODE%LATITUDE=0.0,
NODE%ELEVATION=0.0
/

Observation

Response value types
Value Name Description
0 RESPONSE_TYPE_REAL64 8-byte signed real.
1 RESPONSE_TYPE_REAL32 4-byte signed real.
2 RESPONSE_TYPE_INT64 8-byte signed integer.
3 RESPONSE_TYPE_INT32 4-byte signed integer.
4 RESPONSE_TYPE_LOGICAL 1-byte boolean.
5 RESPONSE_TYPE_BYTE Byte.
6 RESPONSE_TYPE_STRING Byte string.

Derived Type

Observation derived type (5444 byte)
Attribute Type Size Description
id string 32 Observation id (UUIDv4).
group_id string 32 Group id (UUIDv4).
node_id string 32 Node id (-0-9A-Z_a-z).
sensor_id string 32 Sensor id (-0-9A-Z_a-z).
target_id string 32 Target id (-0-9A-Z_a-z).
timestamp string 32 Date and time of observation (ISO 8601).
name string 32 Observation name (-0-9A-Z_a-z).
source string 32 Name of origin (-0-9A-Z_a-z).
device string 32 Device (TTY/PTY path, IP address).
request string 512 Raw request to sensor. Non-printable characters have to be escaped.
response string 512 Raw response of sensor. Non-printable characters will be escaped.
delimiter string 8 Request delimiter. Non-printable characters have to be escaped.
pattern string 512 Regular expression pattern that describes the raw response using named groups.
delay integer 4 Delay in mseconds to wait after the request.
error integer 4 Request error code.
mode integer 4 Request mode (unused, for future additions).
retries integer 4 Number of performed retries.
state integer 4 Request state (unused, for future additions).
timeout integer 4 Request timeout in mseconds.
nresponses integer 4 Number of sensor responses (0 to 64).
responses array 64 × 56 Array of responses (64).
Response derived type of an observation
Attribute Type Size Description
name string 32 Response name (-0-9A-Z_a-z).
unit string 8 Response unit.
type integer 4 Response value type.
error integer 4 Response error code.
value double 8 Response value.

CSV

Column Attribute Description
1 id Observation id.
2 group_id Group id.
3 node_id Node id.
4 sensor_id Sensor id.
5 target_id Target id.
6 timestamp Date and time of observation.
7 name Observation name.
8 source Observation source.
9 device Device (TTY/PTY path).
10 request Raw request to sensor.
11 response Raw response of sensor.
12 delimiter Request delimiter.
13 pattern Regular expression pattern that describes the raw response.
14 delay Delay in mseconds to wait after the request.
15 error Error code.
16 mode Request mode.
17 retries Number of retries performed.
18 state Request state.
19 timeout Request timeout in mseconds.
20 nresponses Number of sensor responses (0 to 64).
21 – 340 responses Array of responses (64).
21 – 25 response Response 1.
21 name Response 1 name.
22 unit Response 1 unit.
23 type Response 1 value type.
24 error Response 1 error.
25 value Response 1 value.
26 – 30 response Response 2.
31 – 35 response Response 3.
36 – 40 response Response 4.
41 – 45 response Response 5.
46 – 50 response Response 6.
51 – 55 response Response 7.
56 – 60 response Response 8.
61 – 65 response Response 9.
66 – 70 response Response 10.
71 – 75 response Response 11.
76 – 80 response Response 12.
81 – 85 response Response 13.
86 – 90 response Response 14.
91 – 95 response Response 15.
96 – 100 response Response 16.
101 – 105 response Response 17.
106 – 110 response Response 18.
111 – 115 response Response 19.
116 – 120 response Response 20.
121 – 125 response Response 21.
126 – 130 response Response 22.
131 – 135 response Response 23.
136 – 140 response Response 24.
141 – 145 response Response 25.
146 – 150 response Response 26.
151 – 155 response Response 27.
156 – 160 response Response 28.
161 – 165 response Response 29.
166 – 170 response Response 30.
171 – 175 response Response 31.
176 – 180 response Response 32.
181 – 185 response Response 33.
186 – 190 response Response 34.
191 – 195 response Response 35.
196 – 200 response Response 36.
201 – 205 response Response 37.
206 – 210 response Response 38.
211 – 215 response Response 39.
216 – 220 response Response 40.
221 – 225 response Response 41.
226 – 230 response Response 42.
231 – 235 response Response 43.
236 – 240 response Response 44.
241 – 245 response Response 45.
246 – 250 response Response 46.
251 – 255 response Response 47.
256 – 260 response Response 48.
261 – 265 response Response 49.
266 – 270 response Response 50.
271 – 275 response Response 51.
276 – 280 response Response 52.
281 – 285 response Response 53.
286 – 290 response Response 54.
291 – 295 response Response 55.
296 – 300 response Response 56.
301 – 305 response Response 57.
306 – 310 response Response 58.
311 – 315 response Response 59.
316 – 320 response Response 60.
321 – 325 response Response 61.
326 – 330 response Response 62.
331 – 335 response Response 63.
336 – 340 response Response 64.

HDF5

The HDF5 format description for observations is omitted due to length. You can output the format from command-line. For example, if the file observ.hdf5 contains DMPACK observations:

$ h5dump -H -A 0 observ.hdf5

JSON

{
  "id": "9273ab62f9a349b6a4da6dd274ee83e7",
  "group_id": "5fa2e37c759343c6b44adf8edce95afa",
  "node_id": "dummy-node",
  "sensor_id": "dummy-sensor",
  "target_id": "dummy-target",
  "timestamp": "1970-01-01T00:00:00.000000+00:00",
  "name": "dummy-observ",
  "source": "dmdummy",
  "device": "/dev/null",
  "request": "?\\n",
  "response": "10.0\\n",
  "delimiter": "\\n",
  "pattern": "(?<sample>[-+0-9\\.]+)",
  "delay": 0,
  "error": 0,
  "mode": 0,
  "retries": 0,
  "state": 0,
  "timeout": 0,
  "nresponses": 1,
  "responses": [
    {
      "name": "sample",
      "unit": "none",
      "type": 0,
      "error": 0,
      "value": 10.0
    }
  ]
}

Lua

{
  id = "9273ab62f9a349b6a4da6dd274ee83e7",
  group_id = "5fa2e37c759343c6b44adf8edce95afa",
  node_id = "dummy-node",
  sensor_id = "dummy-sensor",
  target_id = "dummy-target",
  timestamp = "1970-01-01T00:00:00.000000+00:00",
  name = "dummy-observ",
  source = "dmdummy",
  device = "/dev/null",
  request = "?\\n",
  response = "10.0\\n",
  pattern = "(?<sample>[-+0-9\\.]+)",
  delimiter = "\\n",
  delay = 0,
  error = 0,
  mode = 0,
  retries = 0,
  state = 0,
  timeout = 0,
  nresponses = 1,
  responses = {
    {
      name = "sample",
      unit = "none",
      type = 0,
      error = 0,
      value = 10.0
    }
  }
}

Namelist

&DMOBSERV
OBSERV%ID="9273ab62f9a349b6a4da6dd274ee83e7",
OBSERV%GROUP_ID="5fa2e37c759343c6b44adf8edce95afa",
OBSERV%NODE_ID="dummy-node",
OBSERV%SENSOR_ID="dummy-sensor",
OBSERV%TARGET_ID="dummy-target",
OBSERV%TIMESTAMP="1970-01-01T00:00:00.000000+00:00",
OBSERV%NAME="dummy-observ",
OBSERV%SOURCE="dmdummy",
OBSERV%DEVICE="/dev/null",
OBSERV%REQUEST="?\n",
OBSERV%RESPONSE="10.0\n",
OBSERV%DELIMITER="\n",
OBSERV%PATTERN="(?<sample>[-+0-9\.]+)",
OBSERV%DELAY=0,
OBSERV%ERROR=0,
OBSERV%MODE=0,
OBSERV%RETRIES=0,
OBSERV%STATE=0,
OBSERV%TIMEOUT=0,
OBSERV%NRESPONSES=1,
OBSERV%RESPONSES(1)%NAME="sample",
OBSERV%RESPONSES(1)%UNIT="none",
OBSERV%RESPONSES(1)%TYPE=0,
OBSERV%RESPONSES(1)%ERROR=0,
OBSERV%RESPONSES(1)%VALUE=10.00000000000000,
/

Sensor

Sensor types
Value Name Description
0 none Unknown sensor type.
1 virtual Virtual sensor.
2 system Operating system.
3 fs File system.
4 process Process or service.
5 network Network-based sensor (Ethernet, HTTP).
6 multi Multi-sensor system.
7 relay Relay.
8 rtd Resistance Temperature Detector (RTD).
9 meteo Meteorological sensor.
10 rts Robotic Total Station (RTS).
11 gnss GNSS receiver.
12 level Level sensor.
13 mems MEMS sensor.
14 transducer Transducer.
15 camera IP camera or webcam.
16 mppt Maximum Power Point Tracking (MPPT) controller.
17 shunt Battery shunt.
18 battery Battery.

Derived Type

Attribute Type Size Description
id string 32 Sensor id (-0-9A-Z_a-z).
node_id string 32 Node id (-0-9A-Z_a-z).
name string 32 Sensor name.
sn string 32 Sensor serial number (optional).
meta string 32 Sensor description (optional).
type integer 4 Sensor type.
x double 8 Sensor x or easting (optional).
y double 8 Sensor y or northing (optional).
z double 8 Sensor z or elevation (optional).
longitude double 8 Sensor longitude (optional).
latitude double 8 Sensor latitude (optional).
elevation double 8 Sensor elevation (optional).

CSV

Column Attribute Description
1 id Sensor id.
2 node_id Node id.
3 name Sensor name.
4 sn Sensor serial number.
5 meta Sensor description.
6 type Sensor type.
7 x Sensor x or easting.
8 y Sensor y or northing.
9 z Sensor z or elevation.
10 longitude Sensor longitude.
11 latitude Sensor latitude.
12 elevation Sensor elevation.

GeoJSON

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [ 0.0, 0.0, 0.0 ]
  },
  "properties": {
    "type": "sensor",
    "properties": {
      "id": "dummy-sensor",
      "node_id": "dummy-node",
      "name": "Dummy Sensor",
      "sn": "00000",
      "meta": "Description",
      "type": 3,
      "x": 0.0,
      "y": 0.0,
      "z": 0.0,
      "longitude": 0.0,
      "latitude": 0.0,
      "elevation": 0.0
    }
  }
}

HDF5

DATASET "sensor_type" {
  DATATYPE H5T_COMPOUND {
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "id";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "node_id";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "name";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "sn";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "meta";
    H5T_STD_I32LE "type";
    H5T_IEEE_F64LE "x";
    H5T_IEEE_F64LE "y";
    H5T_IEEE_F64LE "z";
    H5T_IEEE_F64LE "longitude";
    H5T_IEEE_F64LE "latitude";
    H5T_IEEE_F64LE "elevation";
  }
  DATASPACE SIMPLE { ( 8 ) / ( 8 ) }
}

JSON

{
  "id": "dummy-sensor",
  "node_id": "dummy-node",
  "name": "Dummy Sensor",
  "sn": "00000",
  "meta": "Description",
  "type": 3,
  "x": 0.0,
  "y": 0.0,
  "z": 0.0,
  "longitude": 0.0,
  "latitude": 0.0,
  "elevation": 0.0
}

MessagePack

Array Element Type Attribute
1 fixstr, str8 id
2 fixstr, str8 node_id
3 fixstr, str8 name
4 fixstr, str8 sn
5 fixstr, str8 meta
6 int32 type
7 float64 x
8 float64 y
9 float64 z
10 float64 longitude
11 float64 latitude
12 float64 elevation

Namelist

&DMSENSOR
SENSOR%ID="dummy-sensor",
SENSOR%NODE_ID="dummy-node",
SENSOR%NAME="Dummy Sensor",
SENSOR%SN="00000",
SENSOR%META="Description",
SENSOR%TYPE=3,
SENSOR%X=0.0,
SENSOR%Y=0.0,
SENSOR%Z=0.0,
SENSOR%LONGITUDE=0.0,
SENSOR%LATITUDE=0.0,
SENSOR%ELEVATION=0.0
/

Target

Target states
Value Name Description
0 none No special target state.
1 removed Target has been removed.
2 missing Target is missing.
3 invalid Target is invalid.
4 ignore Target should be ignored.
5 obsolete Target is obsolete.
6 user User-defined target state.

Derived Type

Attribute Type Size Description
id string 32 Target id (-0-9A-Z_a-z).
name string 32 Target name.
meta string 32 Target description (optional).
state integer 4 Target state (optional).
x double 8 Target x or easting (optional).
y double 8 Target y or northing (optional).
z double 8 Target z or elevation (optional).
longitude double 8 Target longitude (optional).
latitude double 8 Target latitude (optional).
elevation double 8 Target elevation (optional).

CSV

Column Attribute Description
1 id Target id.
2 name Target name.
3 meta Target description.
4 state Target state.
5 x Target x or easting.
6 y Target y or northing.
7 z Target z or elevation.
8 longitude Target longitude.
9 latitude Target latitude.
10 elevation Target elevation.

GeoJSON

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [ 0.0, 0.0, 0.0 ]
  },
  "properties": {
    "type": "target",
    "properties": {
      "id": "dummy-target",
      "name": "Dummy Target",
      "meta": "Description",
      "state": 0,
      "x": 0.0,
      "y": 0.0,
      "z": 0.0,
      "longitude": 0.0,
      "latitude": 0.0,
      "elevation": 0.0
    }
  }
}

HDF5

DATASET "target_type" {
  DATATYPE H5T_COMPOUND {
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "id";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "name";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "meta";
    H5T_STD_I32LE "state";
    H5T_IEEE_F64LE "x";
    H5T_IEEE_F64LE "y";
    H5T_IEEE_F64LE "z";
    H5T_IEEE_F64LE "longitude";
    H5T_IEEE_F64LE "latitude";
    H5T_IEEE_F64LE "elevation";
  }
  DATASPACE SIMPLE { ( 8 ) / ( 8 ) }
}

JSON

{
  "id": "dummy-target",
  "name": "Dummy Target",
  "meta": "Description",
  "state": 0,
  "x": 0.0,
  "y": 0.0,
  "z": 0.0,
  "longitude": 0.0,
  "latitude": 0.0,
  "elevation": 0.0
}

MessagePack

Array Element Type Attribute
1 fixstr, str8 id
2 fixstr, str8 name
3 fixstr, str8 meta
4 int32 state
5 float64 x
6 float64 y
7 float64 z
8 float64 longitude
9 float64 latitude
10 float64 elevation

Namelist

&DMTARGET
TARGET%ID="dummy-target",
TARGET%NAME="Dummy Target",
TARGET%META="Description",
TARGET%STATE=0,
TARGET%X=0.0,
TARGET%Y=0.0,
TARGET%Z=0.0,
TARGET%LONGITUDE=0.0,
TARGET%LATITUDE=0.0,
TARGET%ELEVATION=0.0
/

Transfer

Transfer types
Value Name Description
0 TRANSFER_TYPE_NONE No type (invalid).
1 TRANSFER_TYPE_BLOB Arbitrary binary object.
2 TRANSFER_TYPE_IMAGE Image type (image_type from dm_image).
Transfer states
Value Name Description
0 TRANSFER_STATE_NONE Unprepared transfer (invalid).
1 TRANSFER_STATE_CREATED Transfer is initialised.
2 TRANSFER_STATE_ACTIVE Transfer is running.
3 TRANSFER_STATE_FAILED Transfer failed.
4 TRANSFER_STATE_DONE Transfer finished.

Derived Type

Attribute Type Size Description
id string 32 Image id (UUIDv4).
node_id string 32 Node id (-0-9A-Z_a-z).
type_id string 32 Type id (UUIDv4).
timestamp string 32 Date and time (ISO 8601).
address string 45 IPv4 or IPv6 address of client.
type integer 4 Type enumerator.
state integer 4 State enumerator.
error integer 4 Error code.
size integer 8 Type size in bytes.