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. |