diff --git a/CHANGELOG.md b/CHANGELOG.md index 62c1bb77bed7e749615ecd1d23f64de0d2181354..7c5d0ca2fe5fc5ec13b5d6df8da7b2f6b37bfbef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,9 +13,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added +- Optional operating_area region in planning configuration - Emergency flag in mission plan schemas - ## [v0.1.0] - 2023-03-24 ### Added diff --git a/formats/planning_configuration.py b/formats/planning_configuration.py index 6a16e4272451365426cdd29874361db193bba0de..8a75123d75c25860617a0c4e15ad204d161b360c 100644 --- a/formats/planning_configuration.py +++ b/formats/planning_configuration.py @@ -249,10 +249,15 @@ planning_configuration_schema = { + " configuration plan", "example": 3, }, + "operating_area": { + "type": "array", + "items": region_schema, + "description": "Area outside which platforms should be aborted and recovered", + }, "region_of_interest": { "type": "array", "items": region_schema, - "description": "Region of interest for the entire operation", + "description": "Area to be surveyed", }, "exclusion_zones": { "type": "array", diff --git a/project/soar/swagger.json b/project/soar/swagger.json index 70bc2c9c63b4d722a2a592d011f9085f1c876c68..c8f191e67e2122333020fa6f18e5f31d0735d362 100644 --- a/project/soar/swagger.json +++ b/project/soar/swagger.json @@ -1,132 +1,132 @@ { - "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" + "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 +138,275 @@ "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", + "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/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 +430,28 @@ ] ] ], - "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" + }, + "operating_area": { + "description": "Area outside which platforms should be aborted and recovered", + "items": { + "description": "Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)", + "properties": { + "geometry_coordinates": { + "example": [ [ [ -4.1777839187560915, @@ -480,406 +475,448 @@ ] ] ], - "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" + }, + "planning_config_ID": { + "description": "Unique identifier tagged to version of this configuration plan", + "example": 3, + "type": "integer" + }, + "region_of_interest": { + "description": "Area to be surveyed", + "items": { + "description": "Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)", + "properties": { + "geometry_coordinates": { + "example": [ + [ + [ + -4.1777839187560915, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.34173405662855 + ] + ] + ], + "type": "array" + } + }, + "type": "object" + }, + "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\u00b0 at north, clockwise through 359\u00b0, 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_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\u00b0 at north, clockwise through 359\u00b0, 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 +924,185 @@ "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" + "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