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

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
}

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
}

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 user User-defined log level.
8 LL_USER2 user User-defined log level.

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",
  "message": "dummy log 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.
7 x Node local x.
8 y Node local y.
9 z Node local z.
4 longitude Node longitude.
5 latitude Node latitude.
6 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
}

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 (5448 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).
priority integer 4 Message queue priority (>= 0).
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 priority Observation priority.
18 retries Number of retries performed.
19 state Request state.
20 timeout Request timeout in mseconds.
21 nresponses Number of sensor responses (0 to 64).
23 – 342 responses Array of responses (64).
23 – 27 response Response 1.
23 name Response 1 name.
24 unit Response 1 unit.
25 type Response 1 value type.
26 error Response 1 error.
27 value Response 1 value.
28 – 32 response Response 2.
33 – 37 response Response 3.
38 – 42 response Response 4.
43 – 47 response Response 5.
48 – 52 response Response 6.
53 – 57 response Response 7.
58 – 62 response Response 8.
63 – 67 response Response 9.
68 – 72 response Response 10.
73 – 77 response Response 11.
78 – 82 response Response 12.
83 – 87 response Response 13.
88 – 92 response Response 14.
93 – 97 response Response 15.
98 – 102 response Response 16.
103 – 107 response Response 17.
108 – 112 response Response 18.
113 – 117 response Response 19.
118 – 122 response Response 20.
123 – 127 response Response 21.
128 – 132 response Response 22.
133 – 137 response Response 23.
138 – 142 response Response 24.
143 – 147 response Response 25.
148 – 152 response Response 26.
153 – 157 response Response 27.
158 – 162 response Response 28.
163 – 167 response Response 29.
168 – 172 response Response 30.
173 – 177 response Response 31.
178 – 182 response Response 32.
183 – 187 response Response 33.
188 – 192 response Response 34.
193 – 197 response Response 35.
198 – 202 response Response 36.
203 – 207 response Response 37.
208 – 212 response Response 38.
213 – 217 response Response 39.
218 – 222 response Response 40.
223 – 227 response Response 41.
228 – 232 response Response 42.
233 – 237 response Response 43.
238 – 242 response Response 44.
243 – 247 response Response 45.
248 – 252 response Response 46.
253 – 257 response Response 47.
258 – 262 response Response 48.
263 – 267 response Response 49.
268 – 272 response Response 50.
273 – 277 response Response 51.
278 – 282 response Response 52.
283 – 287 response Response 53.
288 – 292 response Response 54.
293 – 297 response Response 55.
298 – 302 response Response 56.
303 – 307 response Response 57.
308 – 312 response Response 58.
313 – 317 response Response 59.
318 – 322 response Response 60.
323 – 327 response Response 61.
328 – 332 response Response 62.
333 – 337 response Response 63.
338 – 342 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,
  "priority": 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,
  priority = 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%PRIORITY=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
}

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
}

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.