Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Communications Backbone System
backbone-message-format
Commits
e6b6c33c
Verified
Commit
e6b6c33c
authored
1 year ago
by
Dan Jones
Browse files
Options
Download
Email Patches
Plain Diff
feat: add spine alert message and status fields
parent
421cf7e0
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1920 additions
and
1526 deletions
+1920
-1526
examples/hydrosurv_adapter/alert.json
examples/hydrosurv_adapter/alert.json
+21
-0
examples/hydrosurv_adapter/platform_status.json
examples/hydrosurv_adapter/platform_status.json
+6
-2
formats/alert.py
formats/alert.py
+58
-0
formats/platform_status.py
formats/platform_status.py
+33
-0
generate_schema_config.py
generate_schema_config.py
+4
-0
project/soar/swagger.json
project/soar/swagger.json
+849
-761
tests/fixtures/schemas.py
tests/fixtures/schemas.py
+98
-8
tests/fixtures/swagger.json
tests/fixtures/swagger.json
+851
-755
No files found.
examples/hydrosurv_adapter/alert.json
0 → 100644
View file @
e6b6c33c
{
"header"
:
{
"message_ID"
:
"b427003c-0000-11aa-a1eb-bvcdfghjgfdd"
,
"timestamp"
:
"2022-11-16T00:00:00Z"
,
"version"
:
1
,
"source"
:
"hydrosurv_adapter"
,
"destination"
:
"soar.hydrosurv.reav60.usvdecibel.from_platform.alert"
,
"delivery_type"
:
"publish"
,
"encoded"
:
false
},
"payload"
:
{
"message_type"
:
"alert"
,
"platform_ID"
:
"usvdecibel"
,
"code"
:
345
,
"platform_timestamp"
:
"2022-12-21T00:00:00Z"
,
"subsystem"
:
"Onboard Fault Monitor"
,
"summary"
:
"Steering Damage - Port Side"
,
"details"
:
"Discrepancy between rudder and actuator positions : Rudder Pos=10.31°, Steering Actuator Pos=28.65°, Discrepancy=18.33°"
,
"severity"
:
"Alarm"
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
examples/hydrosurv_adapter/platform_status.json
View file @
e6b6c33c
{
"header"
:{
"header"
:
{
"message_ID"
:
"b427003c-0000-11aa-a1eb-bvcdfghjgfdd"
,
"timestamp"
:
"2022-11-16T00:00:00Z"
,
"version"
:
2
,
...
...
@@ -8,11 +8,15 @@
"delivery_type"
:
"publish"
,
"encoded"
:
false
},
"payload"
:{
"payload"
:
{
"message_type"
:
"platform_status"
,
"autonomy_engine_plan_ID"
:
1
,
"status_source"
:
"onboard_platform"
,
"battery_remaining_capacity"
:
80.2
,
"battery_output"
:
3.8
,
"fuel_volume"
:
13.2
,
"fuel_remaining_capacity"
:
65.3
,
"endurance"
:
3.4
,
"heading"
:
310.0
,
"health_status"
:
false
,
"latitude"
:
178.2
,
...
...
This diff is collapsed.
Click to expand it.
formats/alert.py
0 → 100644
View file @
e6b6c33c
"""
schemas: Alert message sent on fault detection
"""
alert_schema
=
{
"type"
:
"object"
,
"properties"
:
{
"message_type"
:
{
"type"
:
"string"
,
"description"
:
"Type of message"
,
"example"
:
"alert"
,
"enum"
:
[
"alert"
],
},
"code"
:
{
# changed from alert_ID because reasons
"type"
:
"integer"
,
"description"
:
"Alert code"
,
"example"
:
345
,
},
"platform_ID"
:
{
"type"
:
"string"
,
"description"
:
"Unique identifier for this platform"
,
"example"
:
"usvdecibel"
,
},
"platform_timestamp"
:
{
"type"
:
"string"
,
"format"
:
"date-time"
,
"description"
:
"Timestamp for onboard platform status message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
},
"subsystem"
:
{
# changed from suggested "source" could be device / subsystem or something
"type"
:
"string"
,
"description"
:
"System that generated the alert"
,
"example"
:
"Onboard Fault Monitor"
,
},
"summary"
:
{
"type"
:
"string"
,
"description"
:
"High level description of the alert"
,
"example"
:
"Steering Damage - Port Side"
,
},
"details"
:
{
"type"
:
"string"
,
"description"
:
"Detailed reason for the alert "
,
"example"
:
"Discrepancy between rudder and actuator positions"
+
" : Rudder Pos=10.31°, Steering Actuator Pos=28.65°, Discrepancy=18.33°"
,
},
"severity"
:
{
"type"
:
"string"
,
"description"
:
"Severity level of alert"
,
"example"
:
"Alarm"
,
"enum"
:
[
"Emergency"
,
"Alarm"
,
"Warning"
,
"Caution"
],
},
},
"required"
:
[
"message_type"
,
"platform_ID"
,
"code"
,
"severity"
,
],
}
This diff is collapsed.
Click to expand it.
formats/platform_status.py
View file @
e6b6c33c
...
...
@@ -170,6 +170,39 @@ platform_status_schema = {
"description"
:
"Battery remaining % provided by respective C2"
,
"example"
:
80.2
,
},
# Battery power (kw / float)
"battery_output"
:
{
# changed from battery_power
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Battery output in kW"
,
"example"
:
80.2
,
},
# Bunkers remaining capacity (litres, float)
# Bunkers percentage full (percentage, float)
# battery_remaining_capacity is % full if we want both these fields
# these names are going to cause confusion
"fuel_remaining_capacity"
:
{
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Percentage remaining capacity"
,
"example"
:
80.2
,
},
"fuel_volume"
:
{
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Litres of liquid fuel"
,
"example"
:
12.5
,
},
# Endurance (hours, float)
"endurance"
:
{
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Estimate of hours of operation remaining "
+
"based on present output or performance"
,
"example"
:
7.4
,
},
"sensor_config"
:
sensor_schema
,
},
"required"
:
[
...
...
This diff is collapsed.
Click to expand it.
generate_schema_config.py
View file @
e6b6c33c
...
...
@@ -9,6 +9,7 @@ from formats.platform_status_encoded import platform_status_encoded_schema
from
formats.survey
import
survey_schema
from
formats.survey_encoded
import
survey_encoded_schema
from
formats.acknowledgement
import
acknowledgement_schema
from
formats.alert
import
alert_schema
from
flasgger
import
Swagger
from
flask
import
Flask
...
...
@@ -55,6 +56,7 @@ swagger_config = {
"discriminator"
:
{
"propertyName"
:
"message_type"
,
"mapping"
:
{
"alert"
:
"#/components/schemas/alert"
,
"mission_plan"
:
"#/components/schemas/mission_plan"
,
"mission_plan_encoded"
:
"#/components/schemas/"
+
"mission_plan_encoded"
,
...
...
@@ -72,6 +74,7 @@ swagger_config = {
},
},
"oneOf"
:
[
{
"$ref"
:
"#/components/schemas/alert"
},
{
"$ref"
:
"#/components/schemas/acknowledgement"
},
{
"$ref"
:
"#/components/schemas/mission_plan"
},
{
"$ref"
:
"#/components/schemas/mission_plan_encoded"
},
...
...
@@ -95,6 +98,7 @@ swagger_config = {
"survey"
:
survey_schema
,
"survey_encoded"
:
survey_encoded_schema
,
"acknowledgement"
:
acknowledgement_schema
,
"alert"
:
alert_schema
,
}
},
}
...
...
This diff is collapsed.
Click to expand it.
project/soar/swagger.json
View file @
e6b6c33c
{
"components"
:{
"schemas"
:{
"MESSAGE"
:{
"description"
:
"Full message definition with message-metadata in `header` and different message type schemas under `payload`"
,
"properties"
:{
"header"
:{
"$ref"
:
"#/components/schemas/header"
},
"payload"
:{
"$ref"
:
"#/components/schemas/payload"
"components"
:
{
"schemas"
:
{
"MESSAGE"
:
{
"description"
:
"Full message definition with message-metadata in `header` and different message type schemas under `payload`"
,
"properties"
:
{
"header"
:
{
"$ref"
:
"#/components/schemas/header"
},
"payload"
:
{
"$ref"
:
"#/components/schemas/payload"
}
},
"required"
:[
"required"
:
[
"header"
,
"payload"
],
"type"
:
"object"
"type"
:
"object"
},
"acknowledgement"
:{
"properties"
:{
"approved"
:{
"description"
:
"Human-in-the-loop approval.1 - Plan approved; 0 - Plan Rejected"
,
"type"
:
"boolean"
},
"autonomy_engine_plan_ID"
:{
"description"
:
"Mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"acknowledgement"
:
{
"properties"
:
{
"approved"
:
{
"description"
:
"Human-in-the-loop approval.1 - Plan approved; 0 - Plan Rejected"
,
"type"
:
"boolean"
},
"autonomy_engine_plan_ID"
:
{
"description"
:
"Mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"acknowledgement"
],
"example"
:
"acknowledgement"
,
"type"
:
"string"
"example"
:
"acknowledgement"
,
"type"
:
"string"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"message_type"
,
"autonomy_engine_plan_ID"
,
"platform_ID"
,
"approved"
],
"type"
:
"object"
"type"
:
"object"
},
"header"
:{
"discriminator"
:{
"propertyName"
:
"message_type"
"alert"
:
{
"properties"
:
{
"code"
:
{
"description"
:
"Alert code"
,
"example"
:
345
,
"type"
:
"integer"
},
"details"
:
{
"description"
:
"Detailed reason for the alert "
,
"example"
:
"Discrepancy between rudder and actuator positions : Rudder Pos=10.31
\u
00b0, Steering Actuator Pos=28.65
\u
00b0, Discrepancy=18.33
\u
00b0"
,
"type"
:
"string"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"alert"
],
"example"
:
"alert"
,
"type"
:
"string"
},
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"usvdecibel"
,
"type"
:
"string"
},
"platform_timestamp"
:
{
"description"
:
"Timestamp for onboard platform status message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"severity"
:
{
"description"
:
"Severity level of alert"
,
"enum"
:
[
"Emergency"
,
"Alarm"
,
"Warning"
,
"Caution"
],
"example"
:
"Alarm"
,
"type"
:
"string"
},
"subsystem"
:
{
"description"
:
"System that generated the alert"
,
"example"
:
"Onboard Fault Monitor"
,
"type"
:
"string"
},
"summary"
:
{
"description"
:
"High level description of the alert"
,
"example"
:
"Steering Damage - Port Side"
,
"type"
:
"string"
}
},
"required"
:
[
"message_type"
,
"platform_ID"
,
"code"
,
"severity"
],
"type"
:
"object"
},
"header"
:
{
"discriminator"
:
{
"propertyName"
:
"message_type"
},
"properties"
:{
"delivery_type"
:{
"default"
:
"publish"
,
"description"
:
"To publish or broadcast this message."
,
"enum"
:[
"properties"
:
{
"delivery_type"
:
{
"default"
:
"publish"
,
"description"
:
"To publish or broadcast this message."
,
"enum"
:
[
"broadcast"
,
"publish"
],
"example"
:
"publish"
,
"type"
:
"string"
},
"destination"
:{
"description"
:
"Publisher topic; What is the destination of this message"
,
"example"
:
"ah1"
,
"type"
:
"string"
},
"encoded"
:{
"description"
:
"Indicate that message raw (encoded) or decoded. Options: encoded=true, decoded=false"
,
"example"
:
false
,
"type"
:
"boolean"
},
"message_ID"
:{
"description"
:
"An identifier for the type of message received."
,
"example"
:
"b427003c-0000-11aa-a1eb-bvcdfghjgfdd"
,
"type"
:
"string"
},
"source"
:{
"description"
:
"The sender; Where is this message from"
,
"example"
:
"autonomy_engine"
,
"type"
:
"string"
},
"timestamp"
:{
"description"
:
"Timestamp of message"
,
"example"
:
"2022-11-16T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"version"
:{
"description"
:
"Version of comms backbone message format protocol"
,
"example"
:
2.0
,
"format"
:
"float"
,
"type"
:
"number"
"example"
:
"publish"
,
"type"
:
"string"
},
"destination"
:
{
"description"
:
"Publisher topic; What is the destination of this message"
,
"example"
:
"ah1"
,
"type"
:
"string"
},
"encoded"
:
{
"description"
:
"Indicate that message raw (encoded) or decoded. Options: encoded=true, decoded=false"
,
"example"
:
false
,
"type"
:
"boolean"
},
"message_ID"
:
{
"description"
:
"An identifier for the type of message received."
,
"example"
:
"b427003c-0000-11aa-a1eb-bvcdfghjgfdd"
,
"type"
:
"string"
},
"source"
:
{
"description"
:
"The sender; Where is this message from"
,
"example"
:
"autonomy_engine"
,
"type"
:
"string"
},
"timestamp"
:
{
"description"
:
"Timestamp of message"
,
"example"
:
"2022-11-16T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"version"
:
{
"description"
:
"Version of comms backbone message format protocol"
,
"example"
:
2.0
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"type"
:
"object"
"type"
:
"object"
},
"mission_plan"
:{
"properties"
:{
"autonomy_engine_plan_ID"
:{
"description"
:
"Unique identifier for this plangenerated by the Autonomy Engine"
,
"example"
:
3
,
"type"
:
"integer"
},
"emergency"
:{
"default"
:
false
,
"description"
:
"To indicate if this is an emergency. true = emergency and false = no emergency"
,
"example"
:
false
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"mission_plan"
:
{
"properties"
:
{
"autonomy_engine_plan_ID"
:
{
"description"
:
"Unique identifier for this plangenerated by the Autonomy Engine"
,
"example"
:
3
,
"type"
:
"integer"
},
"emergency"
:
{
"default"
:
false
,
"description"
:
"To indicate if this is an emergency. true = emergency and false = no emergency"
,
"example"
:
false
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"mission_plan"
],
"example"
:
"mission_plan"
,
"type"
:
"string"
},
"plan"
:{
"items"
:{
"properties"
:{
"action"
:{
"description"
:
"Autonomy Engine's action from `move`, `payload`, `dive`, `send_hits`, `scanline`, `scanpoint`."
,
"enum"
:[
"example"
:
"mission_plan"
,
"type"
:
"string"
},
"plan"
:
{
"items"
:
{
"properties"
:
{
"action"
:
{
"description"
:
"Autonomy Engine's action from `move`, `payload`, `dive`, `send_hits`, `scanline`, `scanpoint`."
,
"enum"
:
[
"move"
,
"payload"
,
"dive"
,
...
...
@@ -138,275 +199,279 @@
"stop_mission"
,
"abort_now"
],
"example"
:
"move"
,
"type"
:
"string"
"example"
:
"move"
,
"type"
:
"string"
},
"activate_payload"
:{
"description"
:
"To activate/deactivate sensor for Autosub Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`"
,
"example"
:
true
,
"type"
:
"boolean"
"activate_payload"
:
{
"description"
:
"To activate/deactivate sensor for Autosub Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`"
,
"example"
:
true
,
"type"
:
"boolean"
},
"altitude"
:{
"description"
:
"Altitude of next action"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
"altitude"
:
{
"description"
:
"Altitude of next action"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"depth"
:{
"description"
:
"Depth of next action"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
"depth"
:
{
"description"
:
"Depth of next action"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"start_point_latitude"
:{
"description"
:
"Start point, y-coordinate"
,
"example"
:
50.37072283932642
,
"format"
:
"float"
,
"type"
:
"number"
"start_point_latitude"
:
{
"description"
:
"Start point, y-coordinate"
,
"example"
:
50.37072283932642
,
"format"
:
"float"
,
"type"
:
"number"
},
"start_point_longitude"
:{
"description"
:
"Start point, x-coordinate"
,
"example"
:
-4.187143188645706
,
"format"
:
"float"
,
"type"
:
"number"
"start_point_longitude"
:
{
"description"
:
"Start point, x-coordinate"
,
"example"
:
-4.187143188645706
,
"format"
:
"float"
,
"type"
:
"number"
},
"target_waypoint_latitude"
:{
"description"
:
"Target waypoint, y-coordinate"
,
"example"
:
50.37072283932642
,
"format"
:
"float"
,
"type"
:
"number"
"target_waypoint_latitude"
:
{
"description"
:
"Target waypoint, y-coordinate"
,
"example"
:
50.37072283932642
,
"format"
:
"float"
,
"type"
:
"number"
},
"target_waypoint_longitude"
:{
"description"
:
"Target waypoint, x-coordinate"
,
"example"
:
-4.187143188645706
,
"format"
:
"float"
,
"type"
:
"number"
"target_waypoint_longitude"
:
{
"description"
:
"Target waypoint, x-coordinate"
,
"example"
:
-4.187143188645706
,
"format"
:
"float"
,
"type"
:
"number"
},
"timeout"
:{
"description"
:
"Timeout set to perform action"
,
"example"
:
1800.0
,
"format"
:
"float"
,
"type"
:
"number"
"timeout"
:
{
"description"
:
"Timeout set to perform action"
,
"example"
:
1800.0
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"required"
:[
"required"
:
[
"target_waypoint_latitude"
,
"target_waypoint_longitude"
],
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"message_type"
,
"autonomy_engine_plan_ID"
,
"platform_ID"
,
"plan"
],
"type"
:
"object"
"type"
:
"object"
},
"mission_plan_encoded"
:{
"properties"
:{
"data"
:{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"mission_plan_encoded"
:
{
"properties"
:
{
"data"
:
{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:
{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:
{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"mission_plan_encoded"
],
"example"
:
"mission_plan_encoded"
,
"type"
:
"string"
"example"
:
"mission_plan_encoded"
,
"type"
:
"string"
},
"mime_type"
:{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
"mime_type"
:
{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"data"
,
"is_binary"
],
"type"
:
"object"
"type"
:
"object"
},
"observation"
:{
"properties"
:{
"additional_data"
:{
"description"
:
"Placeholder field for any additional data"
,
"example"
:{
"sensor_payload"
:
false
"observation"
:
{
"properties"
:
{
"additional_data"
:
{
"description"
:
"Placeholder field for any additional data"
,
"example"
:
{
"sensor_payload"
:
false
}
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"observation"
],
"example"
:
"observation"
,
"type"
:
"string"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"points_of_interest"
:{
"description"
:
"Points from features of interest identified by platform if any found."
,
"items"
:{
"properties"
:{
"latitude"
:{
"description"
:
"Identified y-coordinate of point of interest"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
"example"
:
"observation"
,
"type"
:
"string"
},
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"points_of_interest"
:
{
"description"
:
"Points from features of interest identified by platform if any found."
,
"items"
:
{
"properties"
:
{
"latitude"
:
{
"description"
:
"Identified y-coordinate of point of interest"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude"
:{
"description"
:
"Identified x-coordinate of point of interest"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
"longitude"
:
{
"description"
:
"Identified x-coordinate of point of interest"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"quality_of_point"
:{
"description"
:
"Quality/strength of points from features of interest identified by platform."
,
"example"
:
0.98
,
"format"
:
"float"
,
"type"
:
"number"
"quality_of_point"
:
{
"description"
:
"Quality/strength of points from features of interest identified by platform."
,
"example"
:
0.98
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"required"
:[
"required"
:
[
"latitude"
,
"longitude"
],
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
},
"region_surveyed"
:{
"description"
:
"Region surveyed by given platform. GEOJSON"
,
"example"
:
""
,
"nullable"
:
true
"region_surveyed"
:
{
"description"
:
"Region surveyed by given platform. GEOJSON"
,
"example"
:
""
,
"nullable"
:
true
}
},
"required"
:[
"required"
:
[
"message_type"
,
"platform_ID"
],
"type"
:
"object"
"type"
:
"object"
},
"observation_encoded"
:{
"properties"
:{
"data"
:{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"observation_encoded"
:
{
"properties"
:
{
"data"
:
{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:
{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:
{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"observation_encoded"
],
"example"
:
"observation_encoded"
,
"type"
:
"string"
"example"
:
"observation_encoded"
,
"type"
:
"string"
},
"mime_type"
:{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
"mime_type"
:
{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"data"
,
"is_binary"
],
"type"
:
"object"
"type"
:
"object"
},
"payload"
:{
"discriminator"
:{
"mapping"
:{
"acknowledgement"
:
"#/components/schemas/acknowledgement"
,
"mission_plan"
:
"#/components/schemas/mission_plan"
,
"mission_plan_encoded"
:
"#/components/schemas/mission_plan_encoded"
,
"observation"
:
"#/components/schemas/observation"
,
"observation_encoded"
:
"#/components/schemas/observation_encoded"
,
"planning_configuration"
:
"#/components/schemas/planning_configuration"
,
"platform_status"
:
"#/components/schemas/platform_status"
,
"platform_status_encoded"
:
"#/components/schemas/platform_status_encoded"
,
"survey"
:
"#/components/schemas/survey"
,
"survey_encoded"
:
"#/components/schemas/survey_encoded"
},
"propertyName"
:
"message_type"
"payload"
:
{
"discriminator"
:
{
"mapping"
:
{
"acknowledgement"
:
"#/components/schemas/acknowledgement"
,
"alert"
:
"#/components/schemas/alert"
,
"mission_plan"
:
"#/components/schemas/mission_plan"
,
"mission_plan_encoded"
:
"#/components/schemas/mission_plan_encoded"
,
"observation"
:
"#/components/schemas/observation"
,
"observation_encoded"
:
"#/components/schemas/observation_encoded"
,
"planning_configuration"
:
"#/components/schemas/planning_configuration"
,
"platform_status"
:
"#/components/schemas/platform_status"
,
"platform_status_encoded"
:
"#/components/schemas/platform_status_encoded"
,
"survey"
:
"#/components/schemas/survey"
,
"survey_encoded"
:
"#/components/schemas/survey_encoded"
},
"propertyName"
:
"message_type"
},
"oneOf"
:[
"oneOf"
:
[
{
"$ref"
:
"#/components/schemas/alert"
},
{
"$ref"
:
"#/components/schemas/acknowledgement"
"$ref"
:
"#/components/schemas/acknowledgement"
},
{
"$ref"
:
"#/components/schemas/mission_plan"
"$ref"
:
"#/components/schemas/mission_plan"
},
{
"$ref"
:
"#/components/schemas/mission_plan_encoded"
"$ref"
:
"#/components/schemas/mission_plan_encoded"
},
{
"$ref"
:
"#/components/schemas/observation"
"$ref"
:
"#/components/schemas/observation"
},
{
"$ref"
:
"#/components/schemas/observation_encoded"
"$ref"
:
"#/components/schemas/observation_encoded"
},
{
"$ref"
:
"#/components/schemas/planning_configuration"
"$ref"
:
"#/components/schemas/planning_configuration"
},
{
"$ref"
:
"#/components/schemas/platform_status"
"$ref"
:
"#/components/schemas/platform_status"
},
{
"$ref"
:
"#/components/schemas/platform_status_encoded"
"$ref"
:
"#/components/schemas/platform_status_encoded"
},
{
"$ref"
:
"#/components/schemas/survey"
"$ref"
:
"#/components/schemas/survey"
},
{
"$ref"
:
"#/components/schemas/survey_encoded"
"$ref"
:
"#/components/schemas/survey_encoded"
}
]
},
"planning_configuration"
:{
"properties"
:{
"exclusion_zones"
:{
"description"
:
"Exclusion zones for all platforms"
,
"items"
:{
"description"
:
"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)"
,
"properties"
:{
"geometry_coordinates"
:{
"example"
:[
"planning_configuration"
:
{
"properties"
:
{
"exclusion_zones"
:
{
"description"
:
"Exclusion zones for all platforms"
,
"items"
:
{
"description"
:
"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)"
,
"properties"
:
{
"geometry_coordinates"
:
{
"example"
:
[
[
[
-4.1777839187560915
,
...
...
@@ -430,33 +495,33 @@
]
]
],
"type"
:
"array"
"type"
:
"array"
}
},
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"planning_configuration"
],
"example"
:
"planning_configuration"
,
"type"
:
"string"
},
"planning_config_ID"
:{
"description"
:
"Unique identifier tagged to version of this configuration plan"
,
"example"
:
3
,
"type"
:
"integer"
},
"region_of_interest"
:{
"description"
:
"Region of interest for the entire operation"
,
"items"
:{
"description"
:
"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)"
,
"properties"
:{
"geometry_coordinates"
:{
"example"
:[
"example"
:
"planning_configuration"
,
"type"
:
"string"
},
"planning_config_ID"
:
{
"description"
:
"Unique identifier tagged to version of this configuration plan"
,
"example"
:
3
,
"type"
:
"integer"
},
"region_of_interest"
:
{
"description"
:
"Region of interest for the entire operation"
,
"items"
:
{
"description"
:
"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)"
,
"properties"
:
{
"geometry_coordinates"
:
{
"example"
:
[
[
[
-4.1777839187560915
,
...
...
@@ -480,406 +545,430 @@
]
]
],
"type"
:
"array"
"type"
:
"array"
}
},
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
},
"squads"
:{
"items"
:{
"properties"
:{
"no_of_platforms"
:{
"description"
:
"Number of platforms"
,
"example"
:
3
,
"type"
:
"integer"
"type"
:
"array"
},
"squads"
:
{
"items"
:
{
"properties"
:
{
"no_of_platforms"
:
{
"description"
:
"Number of platforms"
,
"example"
:
3
,
"type"
:
"integer"
},
"platforms"
:{
"description"
:
"Squad consists of these platforms"
,
"items"
:{
"properties"
:{
"active"
:{
"description"
:
"If platform is active = True, and inactive = False"
,
"example"
:
true
,
"type"
:
"boolean"
"platforms"
:
{
"description"
:
"Squad consists of these platforms"
,
"items"
:
{
"properties"
:
{
"active"
:
{
"description"
:
"If platform is active = True, and inactive = False"
,
"example"
:
true
,
"type"
:
"boolean"
},
"additional_data"
:{
"description"
:
"Any addition fields/data to be added here"
,
"example"
:{
"new_sensor_a"
:
"test_sensor"
,
"range"
:
10.0
"additional_data"
:
{
"description"
:
"Any addition fields/data to be added here"
,
"example"
:
{
"new_sensor_a"
:
"test_sensor"
,
"range"
:
10.0
},
"type"
:
"object"
"type"
:
"object"
},
"beacon_ID"
:{
"description"
:
"Unique identifier (number) for the beacon associated to this platform"
,
"example"
:
2407
,
"type"
:
"number"
"beacon_ID"
:
{
"description"
:
"Unique identifier (number) for the beacon associated to this platform"
,
"example"
:
2407
,
"type"
:
"number"
},
"emergency"
:{
"properties"
:{
"safe_command"
:{
"description"
:
"Command/Action that is native to respective partner's platform/C2"
,
"enum"
:[
"emergency"
:
{
"properties"
:
{
"safe_command"
:
{
"description"
:
"Command/Action that is native to respective partner's platform/C2"
,
"enum"
:
[
"go_home"
,
"abort_now"
,
"stop_now"
,
"surface_now"
],
"example"
:
"go_home"
,
"type"
:
"string"
"example"
:
"go_home"
,
"type"
:
"string"
},
"target_depth"
:{
"description"
:
"Z-coordinate safe place for respective platform . If platform to NOT stay at depth, key in `0.0`"
,
"example"
:
10.0
,
"format"
:
"float"
,
"type"
:
"number"
"target_depth"
:
{
"description"
:
"Z-coordinate safe place for respective platform . If platform to NOT stay at depth, key in `0.0`"
,
"example"
:
10.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"target_waypoint_latitude"
:{
"description"
:
"Y-coordinate safe place for respective platform"
,
"example"
:
50.365
,
"format"
:
"float"
,
"type"
:
"number"
"target_waypoint_latitude"
:
{
"description"
:
"Y-coordinate safe place for respective platform"
,
"example"
:
50.365
,
"format"
:
"float"
,
"type"
:
"number"
},
"target_waypoint_longitude"
:{
"description"
:
"X-coordinate safe place for respective platform"
,
"example"
:
-7.432
,
"format"
:
"float"
,
"type"
:
"number"
"target_waypoint_longitude"
:
{
"description"
:
"X-coordinate safe place for respective platform"
,
"example"
:
-7.432
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"required"
:[
"required"
:
[
"target_waypoint_latitude"
,
"target_waypoint_longitude"
,
"target_depth"
],
"type"
:
"object"
"type"
:
"object"
},
"endurance_relative_to_water_speed"
:{
"properties"
:{
"avg_battery_rating"
:{
"description"
:
"Battery endurance rating during standard operational speed usage (m/s)"
,
"example"
:
1.9
,
"format"
:
"float"
,
"type"
:
"number"
"endurance_relative_to_water_speed"
:
{
"properties"
:
{
"avg_battery_rating"
:
{
"description"
:
"Battery endurance rating during standard operational speed usage (m/s)"
,
"example"
:
1.9
,
"format"
:
"float"
,
"type"
:
"number"
},
"max_battery_rating"
:{
"description"
:
"Battery endurance rating during maximum speed usage (m/s)"
,
"example"
:
1.23
,
"format"
:
"float"
,
"type"
:
"number"
"max_battery_rating"
:
{
"description"
:
"Battery endurance rating during maximum speed usage (m/s)"
,
"example"
:
1.23
,
"format"
:
"float"
,
"type"
:
"number"
},
"min_battery_rating"
:{
"description"
:
"Battery endurance rating during maximum speed usage (m/s)"
,
"example"
:
3.32
,
"format"
:
"float"
,
"type"
:
"number"
"min_battery_rating"
:
{
"description"
:
"Battery endurance rating during maximum speed usage (m/s)"
,
"example"
:
3.32
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"type"
:
"object"
"type"
:
"object"
},
"max_velocity"
:{
"description"
:
"Maximum velocity set for platform"
,
"example"
:
0.9
,
"format"
:
"float"
,
"type"
:
"number"
"max_velocity"
:
{
"description"
:
"Maximum velocity set for platform"
,
"example"
:
0.9
,
"format"
:
"float"
,
"type"
:
"number"
},
"min_altitude"
:{
"description"
:
"Minimum altitude set for platform"
,
"example"
:
15.2
,
"format"
:
"float"
,
"type"
:
"number"
"min_altitude"
:
{
"description"
:
"Minimum altitude set for platform"
,
"example"
:
15.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"min_velocity"
:{
"description"
:
"Minimum velocity set for platform"
,
"example"
:
0.1
,
"format"
:
"float"
,
"type"
:
"number"
"min_velocity"
:
{
"description"
:
"Minimum velocity set for platform"
,
"example"
:
0.1
,
"format"
:
"float"
,
"type"
:
"number"
},
"model"
:{
"example"
:
"reav"
,
"type"
:
"string"
"model"
:
{
"example"
:
"reav"
,
"type"
:
"string"
},
"operator"
:{
"description"
:
"Operator of platform"
,
"example"
:
"noc"
,
"type"
:
"string"
"operator"
:
{
"description"
:
"Operator of platform"
,
"example"
:
"noc"
,
"type"
:
"string"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"scan_sensor"
:{
"properties"
:{
"angle"
:{
"description"
:
"Angle of range of swath width (in degrees)"
,
"example"
:
140.0
,
"format"
:
"float"
,
"type"
:
"number"
"scan_sensor"
:
{
"properties"
:
{
"angle"
:
{
"description"
:
"Angle of range of swath width (in degrees)"
,
"example"
:
140.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"frequency"
:{
"description"
:
"Frequency of scanning sensor (in kHz)"
,
"example"
:
700.0
,
"format"
:
"float"
,
"type"
:
"number"
"frequency"
:
{
"description"
:
"Frequency of scanning sensor (in kHz)"
,
"example"
:
700.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"sensor_type"
:{
"description"
:
"Unique identifier for this platform"
,
"enum"
:[
"sensor_type"
:
{
"description"
:
"Unique identifier for this platform"
,
"enum"
:
[
"SIDESCAN"
,
"MBES"
],
"example"
:
"MBES"
,
"type"
:
"string"
"example"
:
"MBES"
,
"type"
:
"string"
},
"swath_width"
:{
"description"
:
"Function of `target_altitude` for the platform's swath width (in metres)"
,
"example"
:
38.0
,
"format"
:
"float"
,
"type"
:
"number"
"swath_width"
:
{
"description"
:
"Function of `target_altitude` for the platform's swath width (in metres)"
,
"example"
:
38.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"warmup_time"
:{
"description"
:
"Warmup time (seconds) for sensor to start up."
,
"example"
:
180.0
,
"format"
:
"float"
,
"type"
:
"number"
"warmup_time"
:
{
"description"
:
"Warmup time (seconds) for sensor to start up."
,
"example"
:
180.0
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"type"
:
"object"
"type"
:
"object"
},
"target_altitude"
:{
"description"
:
"Target altitude set for platform. This affects swath width"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
"target_altitude"
:
{
"description"
:
"Target altitude set for platform. This affects swath width"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"turning_radius"
:{
"description"
:
"Turning radius of platform (in metres)"
,
"example"
:
1.0
,
"format"
:
"float"
,
"type"
:
"number"
"turning_radius"
:
{
"description"
:
"Turning radius of platform (in metres)"
,
"example"
:
1.0
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"required"
:[
"required"
:
[
"operator"
,
"platform_ID"
,
"active"
,
"model"
],
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
},
"squad_ID"
:{
"description"
:
"Identifier of given squad"
,
"example"
:
23
,
"type"
:
"integer"
"squad_ID"
:
{
"description"
:
"Identifier of given squad"
,
"example"
:
23
,
"type"
:
"integer"
},
"squad_mission_type"
:{
"description"
:
"Mission of given squad: `tracking`, `survey`, `inspection`"
,
"enum"
:[
"squad_mission_type"
:
{
"description"
:
"Mission of given squad: `tracking`, `survey`, `inspection`"
,
"enum"
:
[
"tracking"
,
"survey"
,
"inspection"
],
"example"
:
"survey"
,
"type"
:
"string"
"example"
:
"survey"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"squad_ID"
,
"no_of_platforms"
,
"platforms"
,
"squad_mission_type"
],
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
}
},
"required"
:[
"required"
:
[
"message_type"
,
"planning_config_ID"
,
"squads"
,
"exclusion_zones"
,
"region_of_interest"
],
"type"
:
"object"
"type"
:
"object"
},
"platform_status"
:{
"properties"
:{
"altitude"
:{
"description"
:
"Target altitude in metres"
,
"example"
:
20.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"autonomy_engine_plan_ID"
:{
"description"
:
"Last mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
},
"battery_remaining_capacity"
:{
"description"
:
"Battery remaining % provided by respective C2"
,
"example"
:
80.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"depth"
:{
"default"
:
0.0
,
"description"
:
"Target depth in metres"
,
"example"
:
50.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"heading"
:{
"description"
:
"Angular distance relative to north, usually 000
\u
00b0 at north, clockwise through 359
\u
00b0, in degrees"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"health_status"
:{
"description"
:
"Health status where 0 is OK, 1 is platform has an ERROR"
,
"example"
:
false
,
"type"
:
"boolean"
},
"latitude"
:{
"description"
:
"Latitude (Y-coordinate) in decimal degrees."
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"localisation_east_error"
:{
"description"
:
"Difference in EAST between deadreckoningand USBL update."
,
"example"
:
0.000129
,
"format"
:
"float"
,
"type"
:
"number"
},
"localisation_north_error"
:{
"description"
:
"Difference in NORTH between deadreckoning and USBL update."
,
"example"
:
0.000129
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude"
:{
"description"
:
"Longitude (X-coordinate) in decimal degrees."
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"platform_status"
:
{
"properties"
:
{
"altitude"
:
{
"description"
:
"Target altitude in metres"
,
"example"
:
20.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"autonomy_engine_plan_ID"
:
{
"description"
:
"Last mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
},
"battery_output"
:
{
"description"
:
"Battery output in kW"
,
"example"
:
80.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"battery_remaining_capacity"
:
{
"description"
:
"Battery remaining % provided by respective C2"
,
"example"
:
80.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"depth"
:
{
"default"
:
0.0
,
"description"
:
"Target depth in metres"
,
"example"
:
50.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"endurance"
:
{
"description"
:
"Estimate of hours of operation remaining based on present output or performance"
,
"example"
:
7.4
,
"format"
:
"float"
,
"type"
:
"number"
},
"fuel_remaining_capacity"
:
{
"description"
:
"Percentage remaining capacity"
,
"example"
:
80.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"fuel_volume"
:
{
"description"
:
"Litres of liquid fuel"
,
"example"
:
12.5
,
"format"
:
"float"
,
"type"
:
"number"
},
"heading"
:
{
"description"
:
"Angular distance relative to north, usually 000
\u
00b0 at north, clockwise through 359
\u
00b0, in degrees"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"health_status"
:
{
"description"
:
"Health status where 0 is OK, 1 is platform has an ERROR"
,
"example"
:
false
,
"type"
:
"boolean"
},
"latitude"
:
{
"description"
:
"Latitude (Y-coordinate) in decimal degrees."
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"localisation_east_error"
:
{
"description"
:
"Difference in EAST between deadreckoningand USBL update."
,
"example"
:
0.000129
,
"format"
:
"float"
,
"type"
:
"number"
},
"localisation_north_error"
:
{
"description"
:
"Difference in NORTH between deadreckoning and USBL update."
,
"example"
:
0.000129
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude"
:
{
"description"
:
"Longitude (X-coordinate) in decimal degrees."
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"platform_status"
],
"example"
:
"platform_status"
,
"type"
:
"string"
},
"mission_plan_ID"
:{
"description"
:
"Mission plan ID according to platform-C2 system"
,
"example"
:
1
,
"type"
:
"integer"
},
"mission_track_ID"
:{
"description"
:
"Track number - stage in mission (e.g. 4 --> Waypoint 3 to Waypoint 4)"
,
"example"
:
4
,
"type"
:
"integer"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"platform_state"
:{
"description"
:
"Current state executed by platform. E.g. STOP, IDLE, ABORT."
,
"example"
:
"ABORT"
,
"type"
:
"string"
},
"platform_timestamp"
:{
"description"
:
"Timestamp for onboard platform status message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"range_to_go"
:{
"description"
:
"Estimated distance to reach next waypoint"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"sensor_config"
:{
"description"
:
"Scanning sensor on platform available to be controlled by the Autonomy Engine"
,
"properties"
:{
"additional_data"
:{
"description"
:
"Any addition fields/data to be added here"
,
"example"
:{
"payload"
:[
"example"
:
"platform_status"
,
"type"
:
"string"
},
"mission_plan_ID"
:
{
"description"
:
"Mission plan ID according to platform-C2 system"
,
"example"
:
1
,
"type"
:
"integer"
},
"mission_track_ID"
:
{
"description"
:
"Track number - stage in mission (e.g. 4 --> Waypoint 3 to Waypoint 4)"
,
"example"
:
4
,
"type"
:
"integer"
},
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"platform_state"
:
{
"description"
:
"Current state executed by platform. E.g. STOP, IDLE, ABORT."
,
"example"
:
"ABORT"
,
"type"
:
"string"
},
"platform_timestamp"
:
{
"description"
:
"Timestamp for onboard platform status message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"range_to_go"
:
{
"description"
:
"Estimated distance to reach next waypoint"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"sensor_config"
:
{
"description"
:
"Scanning sensor on platform available to be controlled by the Autonomy Engine"
,
"properties"
:
{
"additional_data"
:
{
"description"
:
"Any addition fields/data to be added here"
,
"example"
:
{
"payload"
:
[
1.2
,
434
]
},
"type"
:
"object"
"type"
:
"object"
},
"sensor_on"
:{
"description"
:
"Sensor switched on (true) or off (false)"
,
"example"
:
true
,
"type"
:
"boolean"
"sensor_on"
:
{
"description"
:
"Sensor switched on (true) or off (false)"
,
"example"
:
true
,
"type"
:
"boolean"
},
"sensor_serial"
:{
"description"
:
"serial number of sensor"
,
"example"
:
"mbes-002a"
,
"type"
:
"string"
"sensor_serial"
:
{
"description"
:
"serial number of sensor"
,
"example"
:
"mbes-002a"
,
"type"
:
"string"
}
},
"type"
:
"object"
"type"
:
"object"
},
"speed_over_ground"
:{
"description"
:
"Speed over ground"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
"speed_over_ground"
:
{
"description"
:
"Speed over ground"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"status_source"
:{
"description"
:
"Indicate if this status message is from the platform or USBL"
,
"enum"
:[
"status_source"
:
{
"description"
:
"Indicate if this status message is from the platform or USBL"
,
"enum"
:
[
"usbl"
,
"onboard_platform"
],
"example"
:
"usbl"
,
"type"
:
"string"
},
"thrust_applied"
:{
"description"
:
"Thrust applied"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"transmission_mode"
:{
"description"
:
"Mode in which status message was transmitted when on the surface (e.g. iridium/wifi) or underwater (e.g. acoustics)"
,
"enum"
:[
"example"
:
"usbl"
,
"type"
:
"string"
},
"thrust_applied"
:
{
"description"
:
"Thrust applied"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"transmission_mode"
:
{
"description"
:
"Mode in which status message was transmitted when on the surface (e.g. iridium/wifi) or underwater (e.g. acoustics)"
,
"enum"
:
[
"acoustics"
,
"iridium"
,
"wifi"
,
"starlink"
],
"example"
:
"wifi"
,
"type"
:
"string"
},
"usbl_fix_seconds_ago"
:{
"description"
:
"USBL Fix received x second ago."
,
"example"
:
10.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"water_current_velocity"
:{
"description"
:
"Water current magnitude and direction"
,
"example"
:
"124.3NE"
,
"type"
:
"string"
"example"
:
"wifi"
,
"type"
:
"string"
},
"usbl_fix_seconds_ago"
:
{
"description"
:
"USBL Fix received x second ago."
,
"example"
:
10.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"water_current_velocity"
:
{
"description"
:
"Water current magnitude and direction"
,
"example"
:
"124.3NE"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"message_type"
,
"platform_ID"
,
"status_source"
,
...
...
@@ -887,187 +976,186 @@
"latitude"
,
"longitude"
],
"type"
:
"object"
"type"
:
"object"
},
"platform_status_encoded"
:{
"properties"
:{
"data"
:{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"platform_status_encoded"
:
{
"properties"
:
{
"data"
:
{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:
{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:
{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"platform_status_encoded"
],
"example"
:
"platform_status_encoded"
,
"type"
:
"string"
"example"
:
"platform_status_encoded"
,
"type"
:
"string"
},
"mime_type"
:{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
"mime_type"
:
{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"data"
,
"is_binary"
],
"type"
:
"object"
"type"
:
"object"
},
"survey"
:{
"properties"
:{
"latitude_A"
:{
"description"
:
"Latitude of point A(intersection of normal)from waypoint A to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_B"
:{
"description"
:
"Latitude of point B(intersection of normal)from waypoint B to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_C"
:{
"description"
:
"Latitude of point C(intersection of normal)from waypoint C to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_D"
:{
"description"
:
"Latitude of point D(intersection of normal)from waypoint D to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_E"
:{
"description"
:
"Latitude of point E(intersection of normal)from waypoint E to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_A"
:{
"description"
:
"Longitude of point A(intersection of normal)from waypoint A to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_B"
:{
"description"
:
"Longitude of point B(intersection of normal)from waypoint B to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_C"
:{
"description"
:
"Longitude of point C(intersection of normal)from waypoint C to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_D"
:{
"description"
:
"Longitude of point D(intersection of normal)from waypoint D to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_E"
:{
"description"
:
"Longitude of point E(intersection of normal)from waypoint E to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"survey"
:
{
"properties"
:
{
"latitude_A"
:
{
"description"
:
"Latitude of point A(intersection of normal)from waypoint A to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_B"
:
{
"description"
:
"Latitude of point B(intersection of normal)from waypoint B to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_C"
:
{
"description"
:
"Latitude of point C(intersection of normal)from waypoint C to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_D"
:
{
"description"
:
"Latitude of point D(intersection of normal)from waypoint D to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_E"
:
{
"description"
:
"Latitude of point E(intersection of normal)from waypoint E to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_A"
:
{
"description"
:
"Longitude of point A(intersection of normal)from waypoint A to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_B"
:
{
"description"
:
"Longitude of point B(intersection of normal)from waypoint B to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_C"
:
{
"description"
:
"Longitude of point C(intersection of normal)from waypoint C to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_D"
:
{
"description"
:
"Longitude of point D(intersection of normal)from waypoint D to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_E"
:
{
"description"
:
"Longitude of point E(intersection of normal)from waypoint E to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"survey"
],
"example"
:
"survey"
,
"type"
:
"string"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"ecosub-2"
,
"type"
:
"string"
},
"timestamp"
:{
"description"
:
"Timestamp for onboard message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"track_ID"
:{
"description"
:
"Track number of action(s) currently executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
"example"
:
"survey"
,
"type"
:
"string"
},
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"ecosub-2"
,
"type"
:
"string"
},
"timestamp"
:
{
"description"
:
"Timestamp for onboard message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"track_ID"
:
{
"description"
:
"Track number of action(s) currently executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
}
},
"required"
:[
"required"
:
[
"latitude_A"
,
"longitude_A"
,
"latitude_B"
,
"longitude_B"
,
"platform_ID"
],
"type"
:
"object"
"type"
:
"object"
},
"survey_encoded"
:{
"properties"
:{
"data"
:{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"survey_encoded"
:
{
"properties"
:
{
"data"
:
{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:
{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:
{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"survey_encoded"
],
"example"
:
"survey_encoded"
,
"type"
:
"string"
"example"
:
"survey_encoded"
,
"type"
:
"string"
},
"mime_type"
:{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
"mime_type"
:
{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"data"
,
"is_binary"
],
"type"
:
"object"
"type"
:
"object"
}
}
},
"info"
:{
"description"
:
"SoAR message protocol in schemas"
,
"title"
:
"SoAR Backbone Message Formats"
,
"version"
:
"1.0"
"definitions"
:
{},
"info"
:
{
"description"
:
"SoAR message protocol in schemas"
,
"title"
:
"SoAR Backbone Message Formats"
,
"version"
:
"1.0"
},
"openapi"
:
"3.0.2"
,
"paths"
:{
}
"openapi"
:
"3.0.2"
,
"paths"
:
{}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
tests/fixtures/schemas.py
View file @
e6b6c33c
...
...
@@ -454,6 +454,7 @@ platform_status_schema = {
"type"
:
"string"
,
"description"
:
"Type of message"
,
"example"
:
"platform_status"
,
"enum"
:
[
"platform_status"
],
},
"platform_ID"
:
{
"type"
:
"string"
,
...
...
@@ -486,7 +487,7 @@ platform_status_schema = {
"description"
:
"Current state executed by platform. E.g. "
+
"STOP, IDLE, ABORT."
,
"example"
:
"ABORT"
,
},
},
# TODO: Define enum with potential STATES of each platform
"autonomy_engine_plan_ID"
:
{
"type"
:
"integer"
,
"description"
:
"Last mission plan ID (according to Autonomy"
...
...
@@ -496,13 +497,13 @@ platform_status_schema = {
"latitude"
:
{
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Latitude in decimal degrees."
,
"description"
:
"Latitude
(Y-coordinate)
in decimal degrees."
,
"example"
:
178.2
,
},
"longitude"
:
{
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Longitude in decimal degrees."
,
"description"
:
"Longitude
(X-coordinate)
in decimal degrees."
,
"example"
:
-
10.122
,
},
"depth"
:
{
...
...
@@ -516,7 +517,7 @@ platform_status_schema = {
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Target altitude in metres"
,
"example"
:
20
,
"example"
:
20
.0
,
},
"mission_track_ID"
:
{
"type"
:
"integer"
,
...
...
@@ -542,7 +543,7 @@ platform_status_schema = {
"example"
:
124.3
,
},
"water_current_velocity"
:
{
"
format
"
:
"string"
,
"
type
"
:
"string"
,
"description"
:
"Water current magnitude and direction"
,
"example"
:
"124.3NE"
,
},
...
...
@@ -561,8 +562,8 @@ platform_status_schema = {
},
"health_status"
:
{
"type"
:
"boolean"
,
"description"
:
"Health status where 0 is OK, 1 is platform"
+
"
has
an ERROR"
,
"description"
:
"Health status where 0 is OK, 1 is platform
has
"
+
" an ERROR"
,
"example"
:
False
,
},
"localisation_north_error"
:
{
...
...
@@ -576,7 +577,7 @@ platform_status_schema = {
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Difference in EAST between deadreckoning"
+
"
and USBL update."
,
+
"and USBL update."
,
"example"
:
0.000129
,
},
"usbl_fix_seconds_ago"
:
{
...
...
@@ -591,6 +592,39 @@ platform_status_schema = {
"description"
:
"Battery remaining % provided by respective C2"
,
"example"
:
80.2
,
},
# Battery power (kw / float)
"battery_output"
:
{
# changed from battery_power
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Battery output in kW"
,
"example"
:
80.2
,
},
# Bunkers remaining capacity (litres, float)
# Bunkers percentage full (percentage, float)
# battery_remaining_capacity is % full if we want both these fields
# these names are going to cause confusion
"fuel_remaining_capacity"
:
{
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Percentage remaining capacity"
,
"example"
:
80.2
,
},
"fuel_volume"
:
{
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Litres of liquid fuel"
,
"example"
:
12.5
,
},
# Endurance (hours, float)
"endurance"
:
{
"type"
:
"number"
,
"format"
:
"float"
,
"description"
:
"Estimate of hours of operation remaining "
+
"based on present output or performance"
,
"example"
:
7.4
,
},
"sensor_config"
:
sensor_schema
,
},
"required"
:
[
...
...
@@ -602,3 +636,59 @@ platform_status_schema = {
"longitude"
,
],
}
alert_schema
=
{
"type"
:
"object"
,
"properties"
:
{
"message_type"
:
{
"type"
:
"string"
,
"description"
:
"Type of message"
,
"example"
:
"alert"
,
"enum"
:
[
"alert"
],
},
"code"
:
{
# changed from alert_ID because reasons
"type"
:
"integer"
,
"description"
:
"Alert code"
,
"example"
:
345
,
},
"platform_ID"
:
{
"type"
:
"string"
,
"description"
:
"Unique identifier for this platform"
,
"example"
:
"usvdecibel"
,
},
"platform_timestamp"
:
{
"type"
:
"string"
,
"format"
:
"date-time"
,
"description"
:
"Timestamp for onboard platform status message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
},
"subsystem"
:
{
# changed from suggested "source" could be device / subsystem or something
"type"
:
"string"
,
"description"
:
"System that generated the alert"
,
"example"
:
"Onboard Fault Monitor"
,
},
"summary"
:
{
"type"
:
"string"
,
"description"
:
"High level description of the alert"
,
"example"
:
"Steering Damage - Port Side"
,
},
"details"
:
{
"type"
:
"string"
,
"description"
:
"Detailed reason for the alert "
,
"example"
:
"Discrepancy between rudder and actuator positions"
+
" : Rudder Pos=10.31°, Steering Actuator Pos=28.65°, Discrepancy=18.33°"
,
},
"severity"
:
{
"type"
:
"string"
,
"description"
:
"Severity level of alert"
,
"example"
:
"Alarm"
,
"enum"
:
[
"Emergency"
,
"Alarm"
,
"Warning"
,
"Caution"
],
},
},
"required"
:
[
"message_type"
,
"platform_ID"
,
"code"
,
"severity"
,
],
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
tests/fixtures/swagger.json
View file @
e6b6c33c
{
"components"
:{
"schemas"
:{
"MESSAGE"
:{
"description"
:
"Full message definition with message-metadata in `header` and different message type schemas under `payload`"
,
"properties"
:{
"header"
:{
"$ref"
:
"#/components/schemas/header"
},
"payload"
:{
"$ref"
:
"#/components/schemas/payload"
"components"
:
{
"schemas"
:
{
"MESSAGE"
:
{
"description"
:
"Full message definition with message-metadata in `header` and different message type schemas under `payload`"
,
"properties"
:
{
"header"
:
{
"$ref"
:
"#/components/schemas/header"
},
"payload"
:
{
"$ref"
:
"#/components/schemas/payload"
}
},
"required"
:[
"required"
:
[
"header"
,
"payload"
],
"type"
:
"object"
"type"
:
"object"
},
"acknowledgement"
:{
"properties"
:{
"approved"
:{
"description"
:
"Human-in-the-loop approval.1 - Plan approved; 0 - Plan Rejected"
,
"type"
:
"boolean"
},
"autonomy_engine_plan_ID"
:{
"description"
:
"Mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"acknowledgement"
:
{
"properties"
:
{
"approved"
:
{
"description"
:
"Human-in-the-loop approval.1 - Plan approved; 0 - Plan Rejected"
,
"type"
:
"boolean"
},
"autonomy_engine_plan_ID"
:
{
"description"
:
"Mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"acknowledgement"
],
"example"
:
"acknowledgement"
,
"type"
:
"string"
"example"
:
"acknowledgement"
,
"type"
:
"string"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"message_type"
,
"autonomy_engine_plan_ID"
,
"platform_ID"
,
"approved"
],
"type"
:
"object"
"type"
:
"object"
},
"header"
:{
"discriminator"
:{
"propertyName"
:
"message_type"
"alert"
:
{
"properties"
:
{
"code"
:
{
"description"
:
"Alert code"
,
"example"
:
345
,
"type"
:
"integer"
},
"details"
:
{
"description"
:
"Detailed reason for the alert "
,
"example"
:
"Discrepancy between rudder and actuator positions : Rudder Pos=10.31
\u
00b0, Steering Actuator Pos=28.65
\u
00b0, Discrepancy=18.33
\u
00b0"
,
"type"
:
"string"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"alert"
],
"example"
:
"alert"
,
"type"
:
"string"
},
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"usvdecibel"
,
"type"
:
"string"
},
"platform_timestamp"
:
{
"description"
:
"Timestamp for onboard platform status message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"severity"
:
{
"description"
:
"Severity level of alert"
,
"enum"
:
[
"Emergency"
,
"Alarm"
,
"Warning"
,
"Caution"
],
"example"
:
"Alarm"
,
"type"
:
"string"
},
"subsystem"
:
{
"description"
:
"System that generated the alert"
,
"example"
:
"Onboard Fault Monitor"
,
"type"
:
"string"
},
"summary"
:
{
"description"
:
"High level description of the alert"
,
"example"
:
"Steering Damage - Port Side"
,
"type"
:
"string"
}
},
"properties"
:{
"delivery_type"
:{
"default"
:
"publish"
,
"description"
:
"To publish or broadcast this message."
,
"enum"
:[
"required"
:
[
"message_type"
,
"platform_ID"
,
"code"
,
"severity"
],
"type"
:
"object"
},
"header"
:
{
"discriminator"
:
{
"propertyName"
:
"message_type"
},
"properties"
:
{
"delivery_type"
:
{
"default"
:
"publish"
,
"description"
:
"To publish or broadcast this message."
,
"enum"
:
[
"broadcast"
,
"publish"
],
"example"
:
"publish"
,
"type"
:
"string"
},
"destination"
:{
"description"
:
"Publisher topic; What is the destination of this message"
,
"example"
:
"ah1"
,
"type"
:
"string"
},
"encoded"
:{
"description"
:
"Indicate that message raw (encoded) or decoded. Options: encoded=true, decoded=false"
,
"example"
:
false
,
"type"
:
"boolean"
},
"message_ID"
:{
"description"
:
"An identifier for the type of message received."
,
"example"
:
"b427003c-0000-11aa-a1eb-bvcdfghjgfdd"
,
"type"
:
"string"
},
"source"
:{
"description"
:
"The sender; Where is this message from"
,
"example"
:
"autonomy_engine"
,
"type"
:
"string"
},
"timestamp"
:{
"description"
:
"Timestamp of message"
,
"example"
:
"2022-11-16T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"version"
:{
"description"
:
"Version of comms backbone message format protocol"
,
"example"
:
2.0
,
"format"
:
"float"
,
"type"
:
"number"
"example"
:
"publish"
,
"type"
:
"string"
},
"destination"
:
{
"description"
:
"Publisher topic; What is the destination of this message"
,
"example"
:
"ah1"
,
"type"
:
"string"
},
"encoded"
:
{
"description"
:
"Indicate that message raw (encoded) or decoded. Options: encoded=true, decoded=false"
,
"example"
:
false
,
"type"
:
"boolean"
},
"message_ID"
:
{
"description"
:
"An identifier for the type of message received."
,
"example"
:
"b427003c-0000-11aa-a1eb-bvcdfghjgfdd"
,
"type"
:
"string"
},
"source"
:
{
"description"
:
"The sender; Where is this message from"
,
"example"
:
"autonomy_engine"
,
"type"
:
"string"
},
"timestamp"
:
{
"description"
:
"Timestamp of message"
,
"example"
:
"2022-11-16T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"version"
:
{
"description"
:
"Version of comms backbone message format protocol"
,
"example"
:
2.0
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"type"
:
"object"
"type"
:
"object"
},
"mission_plan"
:{
"properties"
:{
"autonomy_engine_plan_ID"
:{
"description"
:
"Unique identifier for this plangenerated by the Autonomy Engine"
,
"example"
:
3
,
"type"
:
"integer"
},
"emergency"
:{
"default"
:
false
,
"description"
:
"To indicate if this is an emergency. true = emergency and false = no emergency"
,
"example"
:
false
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"mission_plan"
:
{
"properties"
:
{
"autonomy_engine_plan_ID"
:
{
"description"
:
"Unique identifier for this plangenerated by the Autonomy Engine"
,
"example"
:
3
,
"type"
:
"integer"
},
"emergency"
:
{
"default"
:
false
,
"description"
:
"To indicate if this is an emergency. true = emergency and false = no emergency"
,
"example"
:
false
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"mission_plan"
],
"example"
:
"mission_plan"
,
"type"
:
"string"
},
"plan"
:{
"items"
:{
"properties"
:{
"action"
:{
"description"
:
"Autonomy Engine's action from `move`, `payload`, `dive`, `send_hits`, `scanline`, `scanpoint`."
,
"enum"
:[
"example"
:
"mission_plan"
,
"type"
:
"string"
},
"plan"
:
{
"items"
:
{
"properties"
:
{
"action"
:
{
"description"
:
"Autonomy Engine's action from `move`, `payload`, `dive`, `send_hits`, `scanline`, `scanpoint`."
,
"enum"
:
[
"move"
,
"payload"
,
"dive"
,
...
...
@@ -138,275 +199,279 @@
"stop_mission"
,
"abort_now"
],
"example"
:
"move"
,
"type"
:
"string"
"example"
:
"move"
,
"type"
:
"string"
},
"activate_payload"
:{
"description"
:
"To activate/deactivate sensor for Autosub Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`"
,
"example"
:
true
,
"type"
:
"boolean"
"activate_payload"
:
{
"description"
:
"To activate/deactivate sensor for Autosub Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`"
,
"example"
:
true
,
"type"
:
"boolean"
},
"altitude"
:{
"description"
:
"Altitude of next action"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
"altitude"
:
{
"description"
:
"Altitude of next action"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"depth"
:{
"description"
:
"Depth of next action"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
"depth"
:
{
"description"
:
"Depth of next action"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"start_point_latitude"
:{
"description"
:
"Start point, y-coordinate"
,
"example"
:
50.37072283932642
,
"format"
:
"float"
,
"type"
:
"number"
"start_point_latitude"
:
{
"description"
:
"Start point, y-coordinate"
,
"example"
:
50.37072283932642
,
"format"
:
"float"
,
"type"
:
"number"
},
"start_point_longitude"
:{
"description"
:
"Start point, x-coordinate"
,
"example"
:
-4.187143188645706
,
"format"
:
"float"
,
"type"
:
"number"
"start_point_longitude"
:
{
"description"
:
"Start point, x-coordinate"
,
"example"
:
-4.187143188645706
,
"format"
:
"float"
,
"type"
:
"number"
},
"target_waypoint_latitude"
:{
"description"
:
"Target waypoint, y-coordinate"
,
"example"
:
50.37072283932642
,
"format"
:
"float"
,
"type"
:
"number"
"target_waypoint_latitude"
:
{
"description"
:
"Target waypoint, y-coordinate"
,
"example"
:
50.37072283932642
,
"format"
:
"float"
,
"type"
:
"number"
},
"target_waypoint_longitude"
:{
"description"
:
"Target waypoint, x-coordinate"
,
"example"
:
-4.187143188645706
,
"format"
:
"float"
,
"type"
:
"number"
"target_waypoint_longitude"
:
{
"description"
:
"Target waypoint, x-coordinate"
,
"example"
:
-4.187143188645706
,
"format"
:
"float"
,
"type"
:
"number"
},
"timeout"
:{
"description"
:
"Timeout set to perform action"
,
"example"
:
1800.0
,
"format"
:
"float"
,
"type"
:
"number"
"timeout"
:
{
"description"
:
"Timeout set to perform action"
,
"example"
:
1800.0
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"required"
:[
"required"
:
[
"target_waypoint_latitude"
,
"target_waypoint_longitude"
],
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"message_type"
,
"autonomy_engine_plan_ID"
,
"platform_ID"
,
"plan"
],
"type"
:
"object"
"type"
:
"object"
},
"mission_plan_encoded"
:{
"properties"
:{
"data"
:{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"mission_plan_encoded"
:
{
"properties"
:
{
"data"
:
{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:
{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:
{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"mission_plan_encoded"
],
"example"
:
"mission_plan_encoded"
,
"type"
:
"string"
"example"
:
"mission_plan_encoded"
,
"type"
:
"string"
},
"mime_type"
:{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
"mime_type"
:
{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"data"
,
"is_binary"
],
"type"
:
"object"
"type"
:
"object"
},
"observation"
:{
"properties"
:{
"additional_data"
:{
"description"
:
"Placeholder field for any additional data"
,
"example"
:{
"sensor_payload"
:
false
"observation"
:
{
"properties"
:
{
"additional_data"
:
{
"description"
:
"Placeholder field for any additional data"
,
"example"
:
{
"sensor_payload"
:
false
}
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"observation"
],
"example"
:
"observation"
,
"type"
:
"string"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"points_of_interest"
:{
"description"
:
"Points from features of interest identified by platform if any found."
,
"items"
:{
"properties"
:{
"latitude"
:{
"description"
:
"Identified y-coordinate of point of interest"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
"example"
:
"observation"
,
"type"
:
"string"
},
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"points_of_interest"
:
{
"description"
:
"Points from features of interest identified by platform if any found."
,
"items"
:
{
"properties"
:
{
"latitude"
:
{
"description"
:
"Identified y-coordinate of point of interest"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude"
:{
"description"
:
"Identified x-coordinate of point of interest"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
"longitude"
:
{
"description"
:
"Identified x-coordinate of point of interest"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"quality_of_point"
:{
"description"
:
"Quality/strength of points from features of interest identified by platform."
,
"example"
:
0.98
,
"format"
:
"float"
,
"type"
:
"number"
"quality_of_point"
:
{
"description"
:
"Quality/strength of points from features of interest identified by platform."
,
"example"
:
0.98
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"required"
:[
"required"
:
[
"latitude"
,
"longitude"
],
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
},
"region_surveyed"
:{
"description"
:
"Region surveyed by given platform. GEOJSON"
,
"example"
:
""
,
"nullable"
:
true
"region_surveyed"
:
{
"description"
:
"Region surveyed by given platform. GEOJSON"
,
"example"
:
""
,
"nullable"
:
true
}
},
"required"
:[
"required"
:
[
"message_type"
,
"platform_ID"
],
"type"
:
"object"
"type"
:
"object"
},
"observation_encoded"
:{
"properties"
:{
"data"
:{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"observation_encoded"
:
{
"properties"
:
{
"data"
:
{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:
{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:
{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"observation_encoded"
],
"example"
:
"observation_encoded"
,
"type"
:
"string"
"example"
:
"observation_encoded"
,
"type"
:
"string"
},
"mime_type"
:{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
"mime_type"
:
{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"data"
,
"is_binary"
],
"type"
:
"object"
"type"
:
"object"
},
"payload"
:{
"discriminator"
:{
"mapping"
:{
"acknowledgement"
:
"#/components/schemas/acknowledgement"
,
"mission_plan"
:
"#/components/schemas/mission_plan"
,
"mission_plan_encoded"
:
"#/components/schemas/mission_plan_encoded"
,
"observation"
:
"#/components/schemas/observation"
,
"observation_encoded"
:
"#/components/schemas/observation_encoded"
,
"planning_configuration"
:
"#/components/schemas/planning_configuration"
,
"platform_status"
:
"#/components/schemas/platform_status"
,
"platform_status_encoded"
:
"#/components/schemas/platform_status_encoded"
,
"survey"
:
"#/components/schemas/survey"
,
"survey_encoded"
:
"#/components/schemas/survey_encoded"
},
"propertyName"
:
"message_type"
"payload"
:
{
"discriminator"
:
{
"mapping"
:
{
"acknowledgement"
:
"#/components/schemas/acknowledgement"
,
"alert"
:
"#/components/schemas/alert"
,
"mission_plan"
:
"#/components/schemas/mission_plan"
,
"mission_plan_encoded"
:
"#/components/schemas/mission_plan_encoded"
,
"observation"
:
"#/components/schemas/observation"
,
"observation_encoded"
:
"#/components/schemas/observation_encoded"
,
"planning_configuration"
:
"#/components/schemas/planning_configuration"
,
"platform_status"
:
"#/components/schemas/platform_status"
,
"platform_status_encoded"
:
"#/components/schemas/platform_status_encoded"
,
"survey"
:
"#/components/schemas/survey"
,
"survey_encoded"
:
"#/components/schemas/survey_encoded"
},
"propertyName"
:
"message_type"
},
"oneOf"
:[
"oneOf"
:
[
{
"$ref"
:
"#/components/schemas/a
cknowledgemen
t"
"$ref"
:
"#/components/schemas/a
ler
t"
},
{
"$ref"
:
"#/components/schemas/
mission_plan
"
"$ref"
:
"#/components/schemas/
acknowledgement
"
},
{
"$ref"
:
"#/components/schemas/mission_plan
_encoded
"
"$ref"
:
"#/components/schemas/mission_plan"
},
{
"$ref"
:
"#/components/schemas/
observation
"
"$ref"
:
"#/components/schemas/
mission_plan_encoded
"
},
{
"$ref"
:
"#/components/schemas/observation
_encoded
"
"$ref"
:
"#/components/schemas/observation"
},
{
"$ref"
:
"#/components/schemas/
planning_configuration
"
"$ref"
:
"#/components/schemas/
observation_encoded
"
},
{
"$ref"
:
"#/components/schemas/pla
tform_status
"
"$ref"
:
"#/components/schemas/pla
nning_configuration
"
},
{
"$ref"
:
"#/components/schemas/platform_status
_encoded
"
"$ref"
:
"#/components/schemas/platform_status"
},
{
"$ref"
:
"#/components/schemas/
survey
"
"$ref"
:
"#/components/schemas/
platform_status_encoded
"
},
{
"$ref"
:
"#/components/schemas/survey_encoded"
"$ref"
:
"#/components/schemas/survey"
},
{
"$ref"
:
"#/components/schemas/survey_encoded"
}
]
},
"planning_configuration"
:{
"properties"
:{
"exclusion_zones"
:{
"description"
:
"Exclusion zones for all platforms"
,
"items"
:{
"description"
:
"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)"
,
"properties"
:{
"geometry_coordinates"
:{
"example"
:[
"planning_configuration"
:
{
"properties"
:
{
"exclusion_zones"
:
{
"description"
:
"Exclusion zones for all platforms"
,
"items"
:
{
"description"
:
"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)"
,
"properties"
:
{
"geometry_coordinates"
:
{
"example"
:
[
[
[
-4.1777839187560915
,
...
...
@@ -430,33 +495,33 @@
]
]
],
"type"
:
"array"
"type"
:
"array"
}
},
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"planning_configuration"
],
"example"
:
"planning_configuration"
,
"type"
:
"string"
},
"planning_config_ID"
:{
"description"
:
"Unique identifier tagged to version of this configuration plan"
,
"example"
:
3
,
"type"
:
"integer"
},
"region_of_interest"
:{
"description"
:
"Region of interest for the entire operation"
,
"items"
:{
"description"
:
"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)"
,
"properties"
:{
"geometry_coordinates"
:{
"example"
:[
"example"
:
"planning_configuration"
,
"type"
:
"string"
},
"planning_config_ID"
:
{
"description"
:
"Unique identifier tagged to version of this configuration plan"
,
"example"
:
3
,
"type"
:
"integer"
},
"region_of_interest"
:
{
"description"
:
"Region of interest for the entire operation"
,
"items"
:
{
"description"
:
"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)"
,
"properties"
:
{
"geometry_coordinates"
:
{
"example"
:
[
[
[
-4.1777839187560915
,
...
...
@@ -480,406 +545,430 @@
]
]
],
"type"
:
"array"
"type"
:
"array"
}
},
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
},
"squads"
:{
"items"
:{
"properties"
:{
"no_of_platforms"
:{
"description"
:
"Number of platforms"
,
"example"
:
3
,
"type"
:
"integer"
"type"
:
"array"
},
"squads"
:
{
"items"
:
{
"properties"
:
{
"no_of_platforms"
:
{
"description"
:
"Number of platforms"
,
"example"
:
3
,
"type"
:
"integer"
},
"platforms"
:{
"description"
:
"Squad consists of these platforms"
,
"items"
:{
"properties"
:{
"active"
:{
"description"
:
"If platform is active = True, and inactive = False"
,
"example"
:
true
,
"type"
:
"boolean"
"platforms"
:
{
"description"
:
"Squad consists of these platforms"
,
"items"
:
{
"properties"
:
{
"active"
:
{
"description"
:
"If platform is active = True, and inactive = False"
,
"example"
:
true
,
"type"
:
"boolean"
},
"additional_data"
:{
"description"
:
"Any addition fields/data to be added here"
,
"example"
:{
"new_sensor_a"
:
"test_sensor"
,
"range"
:
10.0
"additional_data"
:
{
"description"
:
"Any addition fields/data to be added here"
,
"example"
:
{
"new_sensor_a"
:
"test_sensor"
,
"range"
:
10.0
},
"type"
:
"object"
"type"
:
"object"
},
"beacon_ID"
:{
"description"
:
"Unique identifier (number) for the beacon associated to this platform"
,
"example"
:
2407
,
"type"
:
"number"
"beacon_ID"
:
{
"description"
:
"Unique identifier (number) for the beacon associated to this platform"
,
"example"
:
2407
,
"type"
:
"number"
},
"emergency"
:{
"properties"
:{
"safe_command"
:{
"description"
:
"Command/Action that is native to respective partner's platform/C2"
,
"enum"
:[
"emergency"
:
{
"properties"
:
{
"safe_command"
:
{
"description"
:
"Command/Action that is native to respective partner's platform/C2"
,
"enum"
:
[
"go_home"
,
"abort_now"
,
"stop_now"
,
"surface_now"
],
"example"
:
"go_home"
,
"type"
:
"string"
"example"
:
"go_home"
,
"type"
:
"string"
},
"target_depth"
:{
"description"
:
"Z-coordinate safe place for respective platform . If platform to NOT stay at depth, key in `0.0`"
,
"example"
:
10.0
,
"format"
:
"float"
,
"type"
:
"number"
"target_depth"
:
{
"description"
:
"Z-coordinate safe place for respective platform . If platform to NOT stay at depth, key in `0.0`"
,
"example"
:
10.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"target_waypoint_latitude"
:{
"description"
:
"Y-coordinate safe place for respective platform"
,
"example"
:
50.365
,
"format"
:
"float"
,
"type"
:
"number"
"target_waypoint_latitude"
:
{
"description"
:
"Y-coordinate safe place for respective platform"
,
"example"
:
50.365
,
"format"
:
"float"
,
"type"
:
"number"
},
"target_waypoint_longitude"
:{
"description"
:
"X-coordinate safe place for respective platform"
,
"example"
:
-7.432
,
"format"
:
"float"
,
"type"
:
"number"
"target_waypoint_longitude"
:
{
"description"
:
"X-coordinate safe place for respective platform"
,
"example"
:
-7.432
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"required"
:[
"required"
:
[
"target_waypoint_latitude"
,
"target_waypoint_longitude"
,
"target_depth"
],
"type"
:
"object"
"type"
:
"object"
},
"endurance_relative_to_water_speed"
:{
"properties"
:{
"avg_battery_rating"
:{
"description"
:
"Battery endurance rating during standard operational speed usage (m/s)"
,
"example"
:
1.9
,
"format"
:
"float"
,
"type"
:
"number"
"endurance_relative_to_water_speed"
:
{
"properties"
:
{
"avg_battery_rating"
:
{
"description"
:
"Battery endurance rating during standard operational speed usage (m/s)"
,
"example"
:
1.9
,
"format"
:
"float"
,
"type"
:
"number"
},
"max_battery_rating"
:{
"description"
:
"Battery endurance rating during maximum speed usage (m/s)"
,
"example"
:
1.23
,
"format"
:
"float"
,
"type"
:
"number"
"max_battery_rating"
:
{
"description"
:
"Battery endurance rating during maximum speed usage (m/s)"
,
"example"
:
1.23
,
"format"
:
"float"
,
"type"
:
"number"
},
"min_battery_rating"
:{
"description"
:
"Battery endurance rating during maximum speed usage (m/s)"
,
"example"
:
3.32
,
"format"
:
"float"
,
"type"
:
"number"
"min_battery_rating"
:
{
"description"
:
"Battery endurance rating during maximum speed usage (m/s)"
,
"example"
:
3.32
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"type"
:
"object"
"type"
:
"object"
},
"max_velocity"
:{
"description"
:
"Maximum velocity set for platform"
,
"example"
:
0.9
,
"format"
:
"float"
,
"type"
:
"number"
"max_velocity"
:
{
"description"
:
"Maximum velocity set for platform"
,
"example"
:
0.9
,
"format"
:
"float"
,
"type"
:
"number"
},
"min_altitude"
:{
"description"
:
"Minimum altitude set for platform"
,
"example"
:
15.2
,
"format"
:
"float"
,
"type"
:
"number"
"min_altitude"
:
{
"description"
:
"Minimum altitude set for platform"
,
"example"
:
15.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"min_velocity"
:{
"description"
:
"Minimum velocity set for platform"
,
"example"
:
0.1
,
"format"
:
"float"
,
"type"
:
"number"
"min_velocity"
:
{
"description"
:
"Minimum velocity set for platform"
,
"example"
:
0.1
,
"format"
:
"float"
,
"type"
:
"number"
},
"model"
:{
"example"
:
"reav"
,
"type"
:
"string"
"model"
:
{
"example"
:
"reav"
,
"type"
:
"string"
},
"operator"
:{
"description"
:
"Operator of platform"
,
"example"
:
"noc"
,
"type"
:
"string"
"operator"
:
{
"description"
:
"Operator of platform"
,
"example"
:
"noc"
,
"type"
:
"string"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"scan_sensor"
:{
"properties"
:{
"angle"
:{
"description"
:
"Angle of range of swath width (in degrees)"
,
"example"
:
140.0
,
"format"
:
"float"
,
"type"
:
"number"
"scan_sensor"
:
{
"properties"
:
{
"angle"
:
{
"description"
:
"Angle of range of swath width (in degrees)"
,
"example"
:
140.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"frequency"
:{
"description"
:
"Frequency of scanning sensor (in kHz)"
,
"example"
:
700.0
,
"format"
:
"float"
,
"type"
:
"number"
"frequency"
:
{
"description"
:
"Frequency of scanning sensor (in kHz)"
,
"example"
:
700.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"sensor_type"
:{
"description"
:
"Unique identifier for this platform"
,
"enum"
:[
"sensor_type"
:
{
"description"
:
"Unique identifier for this platform"
,
"enum"
:
[
"SIDESCAN"
,
"MBES"
],
"example"
:
"MBES"
,
"type"
:
"string"
"example"
:
"MBES"
,
"type"
:
"string"
},
"swath_width"
:{
"description"
:
"Function of `target_altitude` for the platform's swath width (in metres)"
,
"example"
:
38.0
,
"format"
:
"float"
,
"type"
:
"number"
"swath_width"
:
{
"description"
:
"Function of `target_altitude` for the platform's swath width (in metres)"
,
"example"
:
38.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"warmup_time"
:{
"description"
:
"Warmup time (seconds) for sensor to start up."
,
"example"
:
180.0
,
"format"
:
"float"
,
"type"
:
"number"
"warmup_time"
:
{
"description"
:
"Warmup time (seconds) for sensor to start up."
,
"example"
:
180.0
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"type"
:
"object"
"type"
:
"object"
},
"target_altitude"
:{
"description"
:
"Target altitude set for platform. This affects swath width"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
"target_altitude"
:
{
"description"
:
"Target altitude set for platform. This affects swath width"
,
"example"
:
15.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"turning_radius"
:{
"description"
:
"Turning radius of platform (in metres)"
,
"example"
:
1.0
,
"format"
:
"float"
,
"type"
:
"number"
"turning_radius"
:
{
"description"
:
"Turning radius of platform (in metres)"
,
"example"
:
1.0
,
"format"
:
"float"
,
"type"
:
"number"
}
},
"required"
:[
"required"
:
[
"operator"
,
"platform_ID"
,
"active"
,
"model"
],
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
},
"squad_ID"
:{
"description"
:
"Identifier of given squad"
,
"example"
:
23
,
"type"
:
"integer"
"squad_ID"
:
{
"description"
:
"Identifier of given squad"
,
"example"
:
23
,
"type"
:
"integer"
},
"squad_mission_type"
:{
"description"
:
"Mission of given squad: `tracking`, `survey`, `inspection`"
,
"enum"
:[
"squad_mission_type"
:
{
"description"
:
"Mission of given squad: `tracking`, `survey`, `inspection`"
,
"enum"
:
[
"tracking"
,
"survey"
,
"inspection"
],
"example"
:
"survey"
,
"type"
:
"string"
"example"
:
"survey"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"squad_ID"
,
"no_of_platforms"
,
"platforms"
,
"squad_mission_type"
],
"type"
:
"object"
"type"
:
"object"
},
"type"
:
"array"
"type"
:
"array"
}
},
"required"
:[
"required"
:
[
"message_type"
,
"planning_config_ID"
,
"squads"
,
"exclusion_zones"
,
"region_of_interest"
],
"type"
:
"object"
"type"
:
"object"
},
"platform_status"
:{
"properties"
:{
"altitude"
:{
"description"
:
"Target altitude in metres"
,
"example"
:
20.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"autonomy_engine_plan_ID"
:{
"description"
:
"Last mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
},
"battery_remaining_capacity"
:{
"description"
:
"Battery remaining % provided by respective C2"
,
"example"
:
80.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"depth"
:{
"default"
:
0.0
,
"description"
:
"Target depth in metres"
,
"example"
:
50.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"heading"
:{
"description"
:
"Angular distance relative to north, usually 000
\u
00b0 at north, clockwise through 359
\u
00b0, in degrees"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"health_status"
:{
"description"
:
"Health status where 0 is OK, 1 is platform has an ERROR"
,
"example"
:
false
,
"type"
:
"boolean"
},
"latitude"
:{
"description"
:
"Latitude (Y-coordinate) in decimal degrees."
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"localisation_east_error"
:{
"description"
:
"Difference in EAST between deadreckoningand USBL update."
,
"example"
:
0.000129
,
"format"
:
"float"
,
"type"
:
"number"
},
"localisation_north_error"
:{
"description"
:
"Difference in NORTH between deadreckoning and USBL update."
,
"example"
:
0.000129
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude"
:{
"description"
:
"Longitude (X-coordinate) in decimal degrees."
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"platform_status"
:
{
"properties"
:
{
"altitude"
:
{
"description"
:
"Target altitude in metres"
,
"example"
:
20.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"autonomy_engine_plan_ID"
:
{
"description"
:
"Last mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
},
"battery_output"
:
{
"description"
:
"Battery output in kW"
,
"example"
:
80.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"battery_remaining_capacity"
:
{
"description"
:
"Battery remaining % provided by respective C2"
,
"example"
:
80.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"depth"
:
{
"default"
:
0.0
,
"description"
:
"Target depth in metres"
,
"example"
:
50.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"endurance"
:
{
"description"
:
"Estimate of hours of operation remaining based on present output or performance"
,
"example"
:
7.4
,
"format"
:
"float"
,
"type"
:
"number"
},
"fuel_remaining_capacity"
:
{
"description"
:
"Percentage remaining capacity"
,
"example"
:
80.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"fuel_volume"
:
{
"description"
:
"Litres of liquid fuel"
,
"example"
:
12.5
,
"format"
:
"float"
,
"type"
:
"number"
},
"heading"
:
{
"description"
:
"Angular distance relative to north, usually 000
\u
00b0 at north, clockwise through 359
\u
00b0, in degrees"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"health_status"
:
{
"description"
:
"Health status where 0 is OK, 1 is platform has an ERROR"
,
"example"
:
false
,
"type"
:
"boolean"
},
"latitude"
:
{
"description"
:
"Latitude (Y-coordinate) in decimal degrees."
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"localisation_east_error"
:
{
"description"
:
"Difference in EAST between deadreckoningand USBL update."
,
"example"
:
0.000129
,
"format"
:
"float"
,
"type"
:
"number"
},
"localisation_north_error"
:
{
"description"
:
"Difference in NORTH between deadreckoning and USBL update."
,
"example"
:
0.000129
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude"
:
{
"description"
:
"Longitude (X-coordinate) in decimal degrees."
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"platform_status"
],
"example"
:
"platform_status"
,
"type"
:
"string"
},
"mission_plan_ID"
:{
"description"
:
"Mission plan ID according to platform-C2 system"
,
"example"
:
1
,
"type"
:
"integer"
},
"mission_track_ID"
:{
"description"
:
"Track number - stage in mission (e.g. 4 --> Waypoint 3 to Waypoint 4)"
,
"example"
:
4
,
"type"
:
"integer"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"platform_state"
:{
"description"
:
"Current state executed by platform. E.g. STOP, IDLE, ABORT."
,
"example"
:
"ABORT"
,
"type"
:
"string"
},
"platform_timestamp"
:{
"description"
:
"Timestamp for onboard platform status message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"range_to_go"
:{
"description"
:
"Estimated distance to reach next waypoint"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"sensor_config"
:{
"description"
:
"Scanning sensor on platform available to be controlled by the Autonomy Engine"
,
"properties"
:{
"additional_data"
:{
"description"
:
"Any addition fields/data to be added here"
,
"example"
:{
"payload"
:[
"example"
:
"platform_status"
,
"type"
:
"string"
},
"mission_plan_ID"
:
{
"description"
:
"Mission plan ID according to platform-C2 system"
,
"example"
:
1
,
"type"
:
"integer"
},
"mission_track_ID"
:
{
"description"
:
"Track number - stage in mission (e.g. 4 --> Waypoint 3 to Waypoint 4)"
,
"example"
:
4
,
"type"
:
"integer"
},
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"reav-x-1"
,
"type"
:
"string"
},
"platform_state"
:
{
"description"
:
"Current state executed by platform. E.g. STOP, IDLE, ABORT."
,
"example"
:
"ABORT"
,
"type"
:
"string"
},
"platform_timestamp"
:
{
"description"
:
"Timestamp for onboard platform status message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"range_to_go"
:
{
"description"
:
"Estimated distance to reach next waypoint"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"sensor_config"
:
{
"description"
:
"Scanning sensor on platform available to be controlled by the Autonomy Engine"
,
"properties"
:
{
"additional_data"
:
{
"description"
:
"Any addition fields/data to be added here"
,
"example"
:
{
"payload"
:
[
1.2
,
434
]
},
"type"
:
"object"
"type"
:
"object"
},
"sensor_on"
:{
"description"
:
"Sensor switched on (true) or off (false)"
,
"example"
:
true
,
"type"
:
"boolean"
"sensor_on"
:
{
"description"
:
"Sensor switched on (true) or off (false)"
,
"example"
:
true
,
"type"
:
"boolean"
},
"sensor_serial"
:{
"description"
:
"serial number of sensor"
,
"example"
:
"mbes-002a"
,
"type"
:
"string"
"sensor_serial"
:
{
"description"
:
"serial number of sensor"
,
"example"
:
"mbes-002a"
,
"type"
:
"string"
}
},
"type"
:
"object"
"type"
:
"object"
},
"speed_over_ground"
:{
"description"
:
"Speed over ground"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
"speed_over_ground"
:
{
"description"
:
"Speed over ground"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"status_source"
:{
"description"
:
"Indicate if this status message is from the platform or USBL"
,
"enum"
:[
"status_source"
:
{
"description"
:
"Indicate if this status message is from the platform or USBL"
,
"enum"
:
[
"usbl"
,
"onboard_platform"
],
"example"
:
"usbl"
,
"type"
:
"string"
},
"thrust_applied"
:{
"description"
:
"Thrust applied"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"transmission_mode"
:{
"description"
:
"Mode in which status message was transmitted when on the surface (e.g. iridium/wifi) or underwater (e.g. acoustics)"
,
"enum"
:[
"example"
:
"usbl"
,
"type"
:
"string"
},
"thrust_applied"
:
{
"description"
:
"Thrust applied"
,
"example"
:
124.3
,
"format"
:
"float"
,
"type"
:
"number"
},
"transmission_mode"
:
{
"description"
:
"Mode in which status message was transmitted when on the surface (e.g. iridium/wifi) or underwater (e.g. acoustics)"
,
"enum"
:
[
"acoustics"
,
"iridium"
,
"wifi"
,
"starlink"
],
"example"
:
"wifi"
,
"type"
:
"string"
},
"usbl_fix_seconds_ago"
:{
"description"
:
"USBL Fix received x second ago."
,
"example"
:
10.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"water_current_velocity"
:{
"description"
:
"Water current magnitude and direction"
,
"example"
:
"124.3NE"
,
"type"
:
"string"
"example"
:
"wifi"
,
"type"
:
"string"
},
"usbl_fix_seconds_ago"
:
{
"description"
:
"USBL Fix received x second ago."
,
"example"
:
10.0
,
"format"
:
"float"
,
"type"
:
"number"
},
"water_current_velocity"
:
{
"description"
:
"Water current magnitude and direction"
,
"example"
:
"124.3NE"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"message_type"
,
"platform_ID"
,
"status_source"
,
...
...
@@ -887,179 +976,186 @@
"latitude"
,
"longitude"
],
"type"
:
"object"
"type"
:
"object"
},
"platform_status_encoded"
:{
"properties"
:{
"data"
:{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"platform_status_encoded"
:
{
"properties"
:
{
"data"
:
{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:
{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:
{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"platform_status_encoded"
],
"example"
:
"platform_status_encoded"
,
"type"
:
"string"
"example"
:
"platform_status_encoded"
,
"type"
:
"string"
},
"mime_type"
:{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
"mime_type"
:
{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"data"
,
"is_binary"
],
"type"
:
"object"
"type"
:
"object"
},
"survey"
:{
"properties"
:{
"latitude_A"
:{
"description"
:
"Latitude of point A(intersection of normal)from waypoint A to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_B"
:{
"description"
:
"Latitude of point B(intersection of normal)from waypoint B to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_C"
:{
"description"
:
"Latitude of point C(intersection of normal)from waypoint C to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_D"
:{
"description"
:
"Latitude of point D(intersection of normal)from waypoint D to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_E"
:{
"description"
:
"Latitude of point E(intersection of normal)from waypoint E to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_A"
:{
"description"
:
"Longitude of point A(intersection of normal)from waypoint A to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_B"
:{
"description"
:
"Longitude of point B(intersection of normal)from waypoint B to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_C"
:{
"description"
:
"Longitude of point C(intersection of normal)from waypoint C to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_D"
:{
"description"
:
"Longitude of point D(intersection of normal)from waypoint D to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_E"
:{
"description"
:
"Longitude of point E(intersection of normal)from waypoint E to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"platform_ID"
:{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"ecosub-2"
,
"type"
:
"string"
},
"timestamp"
:{
"description"
:
"Timestamp for onboard message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"track_ID"
:{
"description"
:
"Track number of action(s) currently executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
"survey"
:
{
"properties"
:
{
"latitude_A"
:
{
"description"
:
"Latitude of point A(intersection of normal)from waypoint A to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_B"
:
{
"description"
:
"Latitude of point B(intersection of normal)from waypoint B to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_C"
:
{
"description"
:
"Latitude of point C(intersection of normal)from waypoint C to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_D"
:
{
"description"
:
"Latitude of point D(intersection of normal)from waypoint D to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"latitude_E"
:
{
"description"
:
"Latitude of point E(intersection of normal)from waypoint E to survey line"
,
"example"
:
178.2
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_A"
:
{
"description"
:
"Longitude of point A(intersection of normal)from waypoint A to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_B"
:
{
"description"
:
"Longitude of point B(intersection of normal)from waypoint B to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_C"
:
{
"description"
:
"Longitude of point C(intersection of normal)from waypoint C to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_D"
:
{
"description"
:
"Longitude of point D(intersection of normal)from waypoint D to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"longitude_E"
:
{
"description"
:
"Longitude of point E(intersection of normal)from waypoint E to survey line"
,
"example"
:
-10.122
,
"format"
:
"float"
,
"type"
:
"number"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"survey"
],
"example"
:
"survey"
,
"type"
:
"string"
},
"platform_ID"
:
{
"description"
:
"Unique identifier for this platform"
,
"example"
:
"ecosub-2"
,
"type"
:
"string"
},
"timestamp"
:
{
"description"
:
"Timestamp for onboard message"
,
"example"
:
"2022-12-21T00:00:00Z"
,
"format"
:
"date-time"
,
"type"
:
"string"
},
"track_ID"
:
{
"description"
:
"Track number of action(s) currently executed by platform"
,
"example"
:
1
,
"type"
:
"integer"
}
},
"required"
:[
"required"
:
[
"latitude_A"
,
"longitude_A"
,
"latitude_B"
,
"longitude_B"
,
"platform_ID"
],
"type"
:
"object"
"type"
:
"object"
},
"survey_encoded"
:{
"properties"
:{
"data"
:{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:{
"description"
:
"Type of message"
,
"enum"
:[
"survey_encoded"
:
{
"properties"
:
{
"data"
:
{
"description"
:
"encoded string. E.g. Base64 encoded"
,
"example"
:
"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg=="
,
"type"
:
"string"
},
"file_name"
:
{
"description"
:
"Name of file"
,
"example"
:
"ah1-0238126349247372.bin"
,
"type"
:
"string"
},
"is_binary"
:
{
"description"
:
"true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA."
,
"example"
:
true
,
"type"
:
"boolean"
},
"message_type"
:
{
"description"
:
"Type of message"
,
"enum"
:
[
"survey_encoded"
],
"example"
:
"survey_encoded"
,
"type"
:
"string"
"example"
:
"survey_encoded"
,
"type"
:
"string"
},
"mime_type"
:{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
"mime_type"
:
{
"description"
:
"MIME type"
,
"example"
:
"application/gzip"
,
"type"
:
"string"
}
},
"required"
:[
"required"
:
[
"data"
,
"is_binary"
],
"type"
:
"object"
"type"
:
"object"
}
}
},
"info"
:{
"description"
:
"SoAR message protocol in schemas"
,
"title"
:
"SoAR Backbone Message Formats"
,
"version"
:
"1.0"
"definitions"
:
{},
"info"
:
{
"description"
:
"SoAR message protocol in schemas"
,
"title"
:
"SoAR Backbone Message Formats"
,
"version"
:
"1.0"
},
"openapi"
:
"3.0.2"
,
"paths"
:{
}
"openapi"
:
"3.0.2"
,
"paths"
:
{}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment