diff --git a/examples/autonomy_engine_adapter/emergency_mission_command.json b/examples/autonomy_engine_adapter/emergency_mission_command.json index 3937af2463aa9a7192c18ff6bb476ecb4b4e00f0..8e62e822cc93e5cbaf8cd6438b3ac319feabfb26 100644 --- a/examples/autonomy_engine_adapter/emergency_mission_command.json +++ b/examples/autonomy_engine_adapter/emergency_mission_command.json @@ -16,8 +16,8 @@ "plan": [ { "action": "safety_abort", - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642 + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706 } ] } diff --git a/examples/autonomy_engine_adapter/emergency_mission_plan.json b/examples/autonomy_engine_adapter/emergency_mission_plan.json index 8ab9cd517ca78e09a57f7c696b787b2669a9ba28..a121dc42f55107905713fc42b04f08deed7a83b1 100644 --- a/examples/autonomy_engine_adapter/emergency_mission_plan.json +++ b/examples/autonomy_engine_adapter/emergency_mission_plan.json @@ -16,14 +16,14 @@ "plan": [ { "action": "move", - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642, + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706, "depth": 5.0 }, { "action": "safety_abort", - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642 + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706 } ] } diff --git a/examples/autonomy_engine_adapter/mission_plan_AH1.json b/examples/autonomy_engine_adapter/mission_plan_AH1.json index 01319153d42bff4442acebd4bcc1c4e0befc48ce..195c88477e7faf067268e1c57b68815aca159169 100644 --- a/examples/autonomy_engine_adapter/mission_plan_AH1.json +++ b/examples/autonomy_engine_adapter/mission_plan_AH1.json @@ -15,40 +15,40 @@ "plan": [ { "action": "move", - "start_point_latitude": -3.007143188645706, - "start_point_longitude": 50.37072283932642, - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642, + "start_point_latitude": 50.37072283932642, + "start_point_longitude": -3.007143188645706, + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706, "depth": 0.0, "activate_payload": false, "timeout": 200 }, { "action": "dive", - "start_point_latitude": -3.237143188645706, - "start_point_longitude": 52.37072283932642, - "target_waypoint_latitude": -3.337143188645706, - "target_waypoint_longitude": 56.37072283932642, + "start_point_latitude": 52.37072283932642, + "start_point_longitude": -3.237143188645706, + "target_waypoint_latitude": 56.37072283932642, + "target_waypoint_longitude": -3.337143188645706, "altitude": 10, "activate_payload": false, "timeout": 200 }, { "action": "scanline", - "start_point_latitude": -3.337143188645706, - "start_point_longitude": 56.37072283932642, - "target_waypoint_latitude": -0.237143188645706, - "target_waypoint_longitude": 60.00000000000000, + "start_point_latitude": 56.37072283932642, + "start_point_longitude": -3.337143188645706, + "target_waypoint_latitude": 60.00000000000000, + "target_waypoint_longitude": -0.237143188645706, "altitude": 10, "activate_payload": true, "timeout": 200 }, { "action": "climb", - "start_point_latitude": -0.237143188645706, - "start_point_longitude": 60.00000000000000, - "target_waypoint_latitude": -0.237143188645706, - "target_waypoint_longitude": 52.37072283932642, + "start_point_latitude": 60.00000000000000, + "start_point_longitude": -0.237143188645706, + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -0.237143188645706, "depth": 0.0, "activate_payload": false, "timeout": 200 diff --git a/examples/autonomy_engine_adapter/mission_plan_ECOSUB.json b/examples/autonomy_engine_adapter/mission_plan_ECOSUB.json index b9d5a8b8d927a45164edea329407ea681141a007..96218fba642700748d25439d6c5d69c71d18c997 100644 --- a/examples/autonomy_engine_adapter/mission_plan_ECOSUB.json +++ b/examples/autonomy_engine_adapter/mission_plan_ECOSUB.json @@ -15,40 +15,40 @@ "plan": [ { "action": "move", - "start_point_latitude": -3.007143188645706, - "start_point_longitude": 50.37072283932642, - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642, + "start_point_latitude": 50.37072283932642, + "start_point_longitude": -3.007143188645706, + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706, "depth": 0.0, "activate_payload": false, "timeout": 300 }, { "action": "dive", - "start_point_latitude": -3.237143188645706, - "start_point_longitude": 52.37072283932642, - "target_waypoint_latitude": -3.337143188645706, - "target_waypoint_longitude": 56.37072283932642, + "start_point_latitude": 52.37072283932642, + "start_point_longitude": -3.237143188645706, + "target_waypoint_latitude": 56.37072283932642, + "target_waypoint_longitude": -3.337143188645706, "altitude": 10, "activate_payload": false, "timeout": 300 }, { "action": "scanline", - "start_point_latitude": -3.337143188645706, - "start_point_longitude": 56.37072283932642, - "target_waypoint_latitude": -0.237143188645706, - "target_waypoint_longitude": 60.00000000000000, + "start_point_latitude": 56.37072283932642, + "start_point_longitude": -3.337143188645706, + "target_waypoint_latitude": 60.00000000000000, + "target_waypoint_longitude": -0.237143188645706, "altitude": 10, "activate_payload": true, "timeout": 300 }, { "action": "climb", - "start_point_latitude": -0.237143188645706, - "start_point_longitude": 60.00000000000000, - "target_waypoint_latitude": -0.237143188645706, - "target_waypoint_longitude": 52.37072283932642, + "start_point_latitude": 60.00000000000000, + "start_point_longitude": -0.237143188645706, + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -0.237143188645706, "depth": 0.0, "activate_payload": false, "timeout": 300 diff --git a/examples/autonomy_engine_adapter/mission_plan_HYDROSURV.json b/examples/autonomy_engine_adapter/mission_plan_HYDROSURV.json index 54ffbeb0e079146190796d374dba59508d8a9b49..ec17a5e0e25ecd0bad0540e2700e03610ea782dd 100644 --- a/examples/autonomy_engine_adapter/mission_plan_HYDROSURV.json +++ b/examples/autonomy_engine_adapter/mission_plan_HYDROSURV.json @@ -14,16 +14,16 @@ "autonomy_engine_plan_ID": 1, "plan": [ { - "target_waypoint_latitude": -4.187143188645706, - "target_waypoint_longitude": 50.37072283932642 + "target_waypoint_latitude": 50.37072283932642, + "target_waypoint_longitude": -4.187143188645706 }, { - "target_waypoint_latitude": -3.187143188645706, - "target_waypoint_longitude": 51.37072283932642 + "target_waypoint_latitude": 51.37072283932642, + "target_waypoint_longitude": -3.187143188645706 }, { - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642 + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706 } ] } diff --git a/examples/autonomy_engine_adapter/planning_configuration.json b/examples/autonomy_engine_adapter/planning_configuration.json index c5a4fb7f16d61bf1ccfb1889965d90a18249a062..30db669bdf9ca4acfae612868ce8ecf238905945 100644 --- a/examples/autonomy_engine_adapter/planning_configuration.json +++ b/examples/autonomy_engine_adapter/planning_configuration.json @@ -16,111 +16,192 @@ "geometry_coordinates": [ [ [ - -4.187143188645706, - 50.37072283932642 + -4.1777839187560915, + 50.34173405662855 ], [ - -4.202697005964865, - 50.368816892405874 + -4.1777839187560915, + 50.33820949229701 ], [ - -4.203156724702808, - 50.365640144076906 + -4.143667777943875, + 50.33820949229701 ], [ - -4.19449868846155, - 50.362267670845654 + -4.143667777943875, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.34173405662855 ] ] ] } ], + "region_of_interest": [ + { + "geometry_coordinates": [ + [ + [ + -4.1777839187560915, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.34173405662855 + ] + ] + ] + } + ], "squads": [ { "squad_ID": 1, "no_of_platforms": 1, "squad_mission_type": "tracking", - "squad_state": "active", "platforms": [ { + "operator": "hydrosurv", "model": "reav", "platform_ID": "reav-60-1", "emergency": { - "additional_data": {}, - "target_waypoint_latitude": -7.432, - "target_waypoint_longitude": 50.365, + "target_waypoint_latitude": 50.33611100020795, + "target_waypoint_longitude": -4.189772466767039, "safe_command": "go_home", "target_depth": 10.0 }, + "min_altitude": 0.0, "max_velocity": 0.9, - "min_altitude": 15.2, "min_velocity": 0.1, + "target_altitude": 0.0, "additional_data": {} } - ], - "region_of_interest": { - "geometry_coordinates": [ - [ - [ - -4.187143188645706, - 50.37072283932642 - ], - [ - -4.202697005964865, - 50.368816892405874 - ], - [ - -4.203156724702808, - 50.365640144076906 - ], - [ - -4.19449868846155, - 50.362267670845654 - ] - ] - ] - } + ] }, { "squad_ID": 2, - "no_of_platforms": 3, + "no_of_platforms": 4, "squad_mission_type": "survey", - "squad_state": "active", "platforms": [ { + "operator": "planet-ocean", "platform_ID": "ecosub-1", "model": "ecosub", + "beacon_ID": 10021, "emergency": { - "additional_data": {}, - "target_waypoint_latitude": -7.432, - "target_waypoint_longitude": 50.365, + "target_waypoint_latitude": 50.32933594228737, + "target_waypoint_longitude": -4.192219151149999, "safe_command": "go_home", "target_depth": 10.0 }, + "min_altitude": 5.0, "max_velocity": 0.9, - "min_altitude": 15.2, "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, "additional_data": { - "scan_type": "DVL", - "swath_width": 10 + "new_sensor_a": "test_sensor", + "range": 10.0 } }, { + "operator": "planet-ocean", "platform_ID": "ecosub-2", "model": "ecosub", + "beacon_ID": 10021, "emergency": { - "additional_data": {}, - "target_waypoint_latitude": -0.432, - "target_waypoint_longitude": 20.365, + "target_waypoint_latitude": 50.32775207068519, + "target_waypoint_longitude": -4.192219151149999, "safe_command": "go_home", "target_depth": 0.0 }, + "min_altitude": 5.0, "max_velocity": 0.9, - "min_altitude": 15.2, "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, "additional_data": { - "scan_type": "DVL", - "swath_width": 10 + "new_sensor_a": "test_sensor", + "range": 10.0 + } + }, + { + "operator": "planet-ocean", + "platform_ID": "ecosub-3", + "model": "ecosub", + "beacon_ID": 10021, + "emergency": { + "target_waypoint_latitude": 50.326744124905844, + "target_waypoint_longitude": -4.184550412882118, + "safe_command": "go_home", + "target_depth": 0.0 + }, + "min_altitude": 5.0, + "max_velocity": 0.9, + "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, + "additional_data": { + "new_sensor_a": "test_sensor", + "range": 10.0 + } + }, + { + "operator": "planet-ocean", + "platform_ID": "ecosub-4", + "model": "ecosub", + "beacon_ID": 10021, + "emergency": { + "target_waypoint_latitude": 50.32616814629094, + "target_waypoint_longitude": -4.188610333142037, + "safe_command": "go_home", + "target_depth": 0.0 + }, + "min_altitude": 5.0, + "max_velocity": 0.9, + "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, + "additional_data": { + "new_sensor_a": "test_sensor", + "range": 10.0 } } ] @@ -129,23 +210,32 @@ "squad_ID": 3, "no_of_platforms": 1, "squad_mission_type": "inspection", - "squad_state": "active", "platforms": [ { + "operator": "noc", "platform_ID": "ah-1", "model": "autosub", + "beacon_ID":2407, "emergency": { - "additional_data": {}, - "target_waypoint_latitude": 20.432, - "target_waypoint_longitude": 50.365, + "target_waypoint_latitude": 50.3342284629413, + "target_waypoint_longitude": -4.19759350502369, "safe_command": "abort_now", "target_depth": 0.0 }, + "min_altitude": 5.0, "max_velocity": 0.9, - "min_altitude": 15.2, "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, "additional_data": { - "scan_type": "MBES" + "new_sensor_a": "test_sensor", + "range": 10.0 } } ] diff --git a/examples/ecosub_adapter/mission_plan.json b/examples/ecosub_adapter/mission_plan.json index b9d5a8b8d927a45164edea329407ea681141a007..96218fba642700748d25439d6c5d69c71d18c997 100644 --- a/examples/ecosub_adapter/mission_plan.json +++ b/examples/ecosub_adapter/mission_plan.json @@ -15,40 +15,40 @@ "plan": [ { "action": "move", - "start_point_latitude": -3.007143188645706, - "start_point_longitude": 50.37072283932642, - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642, + "start_point_latitude": 50.37072283932642, + "start_point_longitude": -3.007143188645706, + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706, "depth": 0.0, "activate_payload": false, "timeout": 300 }, { "action": "dive", - "start_point_latitude": -3.237143188645706, - "start_point_longitude": 52.37072283932642, - "target_waypoint_latitude": -3.337143188645706, - "target_waypoint_longitude": 56.37072283932642, + "start_point_latitude": 52.37072283932642, + "start_point_longitude": -3.237143188645706, + "target_waypoint_latitude": 56.37072283932642, + "target_waypoint_longitude": -3.337143188645706, "altitude": 10, "activate_payload": false, "timeout": 300 }, { "action": "scanline", - "start_point_latitude": -3.337143188645706, - "start_point_longitude": 56.37072283932642, - "target_waypoint_latitude": -0.237143188645706, - "target_waypoint_longitude": 60.00000000000000, + "start_point_latitude": 56.37072283932642, + "start_point_longitude": -3.337143188645706, + "target_waypoint_latitude": 60.00000000000000, + "target_waypoint_longitude": -0.237143188645706, "altitude": 10, "activate_payload": true, "timeout": 300 }, { "action": "climb", - "start_point_latitude": -0.237143188645706, - "start_point_longitude": 60.00000000000000, - "target_waypoint_latitude": -0.237143188645706, - "target_waypoint_longitude": 52.37072283932642, + "start_point_latitude": 60.00000000000000, + "start_point_longitude": -0.237143188645706, + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -0.237143188645706, "depth": 0.0, "activate_payload": false, "timeout": 300 diff --git a/examples/gui_adapter/emergency_mission_command.json b/examples/gui_adapter/emergency_mission_command.json index 3937af2463aa9a7192c18ff6bb476ecb4b4e00f0..8e62e822cc93e5cbaf8cd6438b3ac319feabfb26 100644 --- a/examples/gui_adapter/emergency_mission_command.json +++ b/examples/gui_adapter/emergency_mission_command.json @@ -16,8 +16,8 @@ "plan": [ { "action": "safety_abort", - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642 + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706 } ] } diff --git a/examples/gui_adapter/emergency_mission_plan.json b/examples/gui_adapter/emergency_mission_plan.json index 8ab9cd517ca78e09a57f7c696b787b2669a9ba28..a121dc42f55107905713fc42b04f08deed7a83b1 100644 --- a/examples/gui_adapter/emergency_mission_plan.json +++ b/examples/gui_adapter/emergency_mission_plan.json @@ -16,14 +16,14 @@ "plan": [ { "action": "move", - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642, + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706, "depth": 5.0 }, { "action": "safety_abort", - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642 + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706 } ] } diff --git a/examples/gui_adapter/planning_configuration.json b/examples/gui_adapter/planning_configuration.json index 319d9bda8fcf3e95382d4d801c7a556e6af0f52d..30db669bdf9ca4acfae612868ce8ecf238905945 100644 --- a/examples/gui_adapter/planning_configuration.json +++ b/examples/gui_adapter/planning_configuration.json @@ -16,108 +16,192 @@ "geometry_coordinates": [ [ [ - -4.187143188645706, - 50.37072283932642 + -4.1777839187560915, + 50.34173405662855 ], [ - -4.202697005964865, - 50.368816892405874 + -4.1777839187560915, + 50.33820949229701 ], [ - -4.203156724702808, - 50.365640144076906 + -4.143667777943875, + 50.33820949229701 ], [ - -4.19449868846155, - 50.362267670845654 + -4.143667777943875, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.34173405662855 ] ] ] } ], + "region_of_interest": [ + { + "geometry_coordinates": [ + [ + [ + -4.1777839187560915, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.34173405662855 + ] + ] + ] + } + ], "squads": [ { "squad_ID": 1, "no_of_platforms": 1, "squad_mission_type": "tracking", - "squad_state": "active", "platforms": [ { + "operator": "hydrosurv", "model": "reav", "platform_ID": "reav-60-1", "emergency": { - "target_waypoint_latitude": -7.432, - "target_waypoint_longitude": 50.365, + "target_waypoint_latitude": 50.33611100020795, + "target_waypoint_longitude": -4.189772466767039, "safe_command": "go_home", "target_depth": 10.0 }, + "min_altitude": 0.0, "max_velocity": 0.9, - "min_altitude": 15.2, - "min_velocity": 0.1 + "min_velocity": 0.1, + "target_altitude": 0.0, + "additional_data": {} } - ], - "region_of_interest": { - "geometry_coordinates": [ - [ - [ - -4.187143188645706, - 50.37072283932642 - ], - [ - -4.202697005964865, - 50.368816892405874 - ], - [ - -4.203156724702808, - 50.365640144076906 - ], - [ - -4.19449868846155, - 50.362267670845654 - ] - ] - ] - } + ] }, { "squad_ID": 2, - "no_of_platforms": 3, + "no_of_platforms": 4, "squad_mission_type": "survey", - "squad_state": "active", "platforms": [ { - "platform_ID": "ecosub-2", + "operator": "planet-ocean", + "platform_ID": "ecosub-1", "model": "ecosub", + "beacon_ID": 10021, "emergency": { - "target_waypoint_latitude": -7.432, - "target_waypoint_longitude": 50.365, + "target_waypoint_latitude": 50.32933594228737, + "target_waypoint_longitude": -4.192219151149999, "safe_command": "go_home", "target_depth": 10.0 }, + "min_altitude": 5.0, + "max_velocity": 0.9, + "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, + "additional_data": { + "new_sensor_a": "test_sensor", + "range": 10.0 + } + }, + { + "operator": "planet-ocean", + "platform_ID": "ecosub-2", + "model": "ecosub", + "beacon_ID": 10021, + "emergency": { + "target_waypoint_latitude": 50.32775207068519, + "target_waypoint_longitude": -4.192219151149999, + "safe_command": "go_home", + "target_depth": 0.0 + }, + "min_altitude": 5.0, + "max_velocity": 0.9, + "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, + "additional_data": { + "new_sensor_a": "test_sensor", + "range": 10.0 + } + }, + { + "operator": "planet-ocean", + "platform_ID": "ecosub-3", + "model": "ecosub", + "beacon_ID": 10021, + "emergency": { + "target_waypoint_latitude": 50.326744124905844, + "target_waypoint_longitude": -4.184550412882118, + "safe_command": "go_home", + "target_depth": 0.0 + }, + "min_altitude": 5.0, "max_velocity": 0.9, - "min_altitude": 15.2, "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, "additional_data": { - "scan_type": "DVL", - "swath_width": 10 + "new_sensor_a": "test_sensor", + "range": 10.0 } }, { - "platform_ID": "ecosub-5", + "operator": "planet-ocean", + "platform_ID": "ecosub-4", "model": "ecosub", + "beacon_ID": 10021, "emergency": { - "additional_data": {}, - "target_waypoint_latitude": -0.432, - "target_waypoint_longitude": 20.365, + "target_waypoint_latitude": 50.32616814629094, + "target_waypoint_longitude": -4.188610333142037, "safe_command": "go_home", "target_depth": 0.0 }, + "min_altitude": 5.0, "max_velocity": 0.9, - "min_altitude": 15.2, "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, "additional_data": { - "scan_type": "DVL", - "swath_width": 10 + "new_sensor_a": "test_sensor", + "range": 10.0 } } ] @@ -126,23 +210,32 @@ "squad_ID": 3, "no_of_platforms": 1, "squad_mission_type": "inspection", - "squad_state": "active", "platforms": [ { - "platform_ID": "139-ah-1", + "operator": "noc", + "platform_ID": "ah-1", "model": "autosub", + "beacon_ID":2407, "emergency": { - "additional_data": {}, - "target_waypoint_latitude": 20.432, - "target_waypoint_longitude": 50.365, + "target_waypoint_latitude": 50.3342284629413, + "target_waypoint_longitude": -4.19759350502369, "safe_command": "abort_now", "target_depth": 0.0 }, + "min_altitude": 5.0, "max_velocity": 0.9, - "min_altitude": 15.2, "min_velocity": 0.1, + "target_altitude": 15.0, + "turning_radius": 1.5, + "scan_sensor": { + "sensor_type": "SIDESCAN", + "swath_width": 38.0, + "frequency": 700.0, + "angle": 110.0 + }, "additional_data": { - "scan_type": "MBES" + "new_sensor_a": "test_sensor", + "range": 10.0 } } ] diff --git a/examples/hydrosurv_adapter/mission_plan.json b/examples/hydrosurv_adapter/mission_plan.json index 54ffbeb0e079146190796d374dba59508d8a9b49..ec17a5e0e25ecd0bad0540e2700e03610ea782dd 100644 --- a/examples/hydrosurv_adapter/mission_plan.json +++ b/examples/hydrosurv_adapter/mission_plan.json @@ -14,16 +14,16 @@ "autonomy_engine_plan_ID": 1, "plan": [ { - "target_waypoint_latitude": -4.187143188645706, - "target_waypoint_longitude": 50.37072283932642 + "target_waypoint_latitude": 50.37072283932642, + "target_waypoint_longitude": -4.187143188645706 }, { - "target_waypoint_latitude": -3.187143188645706, - "target_waypoint_longitude": 51.37072283932642 + "target_waypoint_latitude": 51.37072283932642, + "target_waypoint_longitude": -3.187143188645706 }, { - "target_waypoint_latitude": -3.237143188645706, - "target_waypoint_longitude": 52.37072283932642 + "target_waypoint_latitude": 52.37072283932642, + "target_waypoint_longitude": -3.237143188645706 } ] } diff --git a/formats/mission_plan.py b/formats/mission_plan.py index 6aa69d95a362e16816982ed96a49c0cb41ec95eb..004376b3d534bbf2f45e56cc01aa39f4296a0d4d 100644 --- a/formats/mission_plan.py +++ b/formats/mission_plan.py @@ -16,26 +16,26 @@ action_schema = { "start_point_latitude": { "type": "number", "format": "float", - "description": "Start point, x-coordinate", - "example": -4.187143188645706, + "description": "Start point, y-coordinate", + "example": 50.37072283932642, }, "start_point_longitude": { "type": "number", "format": "float", - "description": "Start point, y-coordinate", - "example": 50.37072283932642, + "description": "Start point, x-coordinate", + "example": -4.187143188645706, }, "target_waypoint_latitude": { "type": "number", "format": "float", - "description": "Target waypoint, x-coordinate", - "example": -4.187143188645706, + "description": "Target waypoint, y-coordinate", + "example": 50.37072283932642, }, "target_waypoint_longitude": { "type": "number", "format": "float", - "description": "Target waypoint, y-coordinate", - "example": 50.37072283932642, + "description": "Target waypoint, x-coordinate", + "example": -4.187143188645706, }, "altitude": { "type": "number", diff --git a/formats/mission_plan_encoded.py b/formats/mission_plan_encoded.py index bc32ab4f0921816ca33ccbd6a327c6403973ba6d..62f89088c47d44d7d8b894fbafd15139015d2a6c 100644 --- a/formats/mission_plan_encoded.py +++ b/formats/mission_plan_encoded.py @@ -1,6 +1,7 @@ from formats.encoded import encoded_schema +from copy import deepcopy -mission_plan_encoded_schema = encoded_schema +mission_plan_encoded_schema = deepcopy(encoded_schema) mission_plan_encoded_schema["properties"]["message_type"]["enum"] = [ "mission_plan_encoded" diff --git a/formats/observation.py b/formats/observation.py index 4ecf017e13cbc202897e688dbf84cbbc3d6e46bd..9a65d4bd12c171c1151c9905d0dbc76d7cae7f33 100644 --- a/formats/observation.py +++ b/formats/observation.py @@ -9,13 +9,13 @@ hits_schema = { "latitude": { "type": "number", "format": "float", - "description": "Identified x-coordinate of point of interest", + "description": "Identified y-coordinate of point of interest", "example": 178.2, }, "longitude": { "type": "number", "format": "float", - "description": "Identified y-coordinate of point of interest", + "description": "Identified x-coordinate of point of interest", "example": -10.122, }, "quality_of_point": { diff --git a/formats/observation_encoded.py b/formats/observation_encoded.py index 257c21a7a55703f0cc55cc69da6bb4a62d606576..520758bf381fd63a4df758180fe2c792ed309666 100644 --- a/formats/observation_encoded.py +++ b/formats/observation_encoded.py @@ -1,6 +1,7 @@ from formats.encoded import encoded_schema +from copy import deepcopy -observation_encoded_schema = encoded_schema +observation_encoded_schema = deepcopy(encoded_schema) observation_encoded_schema["properties"]["message_type"]["enum"] = [ "observation_encoded" diff --git a/formats/planning_configuration.py b/formats/planning_configuration.py index c741b6c8d42bc9e0460c83a86ea55c7c5ab7a5af..1e8dd5b194cca53c290efc14d861c2ee7de0b4a8 100644 --- a/formats/planning_configuration.py +++ b/formats/planning_configuration.py @@ -16,14 +16,14 @@ emergency_schema = { "target_waypoint_latitude": { "type": "number", "format": "float", - "description": "X-coordinate safe place for respective platform", - "example": -7.432, + "description": "Y-coordinate safe place for respective platform", + "example": 50.365, }, "target_waypoint_longitude": { "type": "number", "format": "float", - "description": "Y-coordinate safe place for respective platform", - "example": 50.365, + "description": "X-coordinate safe place for respective platform", + "example": -7.432, }, "target_depth": { "type": "number", @@ -32,11 +32,6 @@ emergency_schema = { + " . If platform to NOT stay at depth, key in `0.0`", "example": 10.0, }, - "additional_data": { - "type": "object", - "description": "Any addition fields/data to be added here", - "example": {}, - }, }, "required": [ "target_waypoint_latitude", @@ -46,9 +41,46 @@ emergency_schema = { } +scan_sensor_schema = { + "type": "object", + "properties": { + "sensor_type": { + "type": "string", + "description": "Unique identifier for this platform", + "example": "MBES", + "enum": ["SIDESCAN", "MBES"], + }, + "swath_width": { + "type": "number", + "format": "float", + "description": "Function of `target_altitude` for the platform's " + + "swath width (in metres)", + "example": 38.0, + }, + "frequency": { + "type": "number", + "format": "float", + "description": "Frequency of scanning sensor (in kHz)", + "example": 700.0, + }, + "angle": { + "type": "number", + "format": "float", + "description": "Angle of range of swath width (in degrees)", + "example": 140.0, + }, + }, +} + + platform_schema = { "type": "object", "properties": { + "operator": { + "type": "string", + "description": "Operator of platform", + "example": "noc", + }, "platform_ID": { "type": "string", "description": "Unique identifier for this platform", @@ -58,32 +90,52 @@ platform_schema = { "type": "string", "example": "reav", }, + "beacon_ID": { + "type": "number", + "description": "Unique identifier (number) for the beacon " + + "associated to this platform", + "example": 2407, + }, "emergency": emergency_schema, "min_altitude": { "type": "number", "format": "float", - "description": "Minimum altitude set for squad.", + "description": "Minimum altitude set for platform", "example": 15.2, }, "min_velocity": { "type": "number", "format": "float", - "description": "Minimum velocity set for squad.", + "description": "Minimum velocity set for platform", "example": 0.1, }, "max_velocity": { "type": "number", "format": "float", - "description": "Maximum altitude set for squad.", + "description": "Maximum velocity set for platform", "example": 0.9, }, + "target_altitude": { + "type": "number", + "format": "float", + "description": "Target altitude set for platform. This affects swath width", + "example": 15.0, + }, + "turning_radius": { + "type": "number", + "format": "float", + "description": "Turning radius of platform (in metres)", + "example": 1.0, + }, + "scan_sensor": scan_sensor_schema, "additional_data": { "description": "Any addition fields/data to be added here", - "example": {"swath_width": 10.0, "scan_type": "DVL"}, + "example": {"new_sensor_a": "test_sensor", "range": 10.0}, "type": "object", }, }, "required": [ + "operator", "platform_ID", "model", "emergency", @@ -97,18 +149,19 @@ region_schema = { "type": "object", "properties": { "geometry_coordinates": { - "type": "array", # TODO: Check if config defn is right. + "type": "array", "example": [ [ - [-4.187143188645706, 50.37072283932642], - [-4.202697005964865, 50.368816892405874], - [-4.203156724702808, 50.365640144076906], - [-4.19449868846155, 50.362267670845654], + [-4.1777839187560915, 50.34173405662855], + [-4.1777839187560915, 50.33820949229701], + [-4.143667777943875, 50.33820949229701], + [-4.143667777943875, 50.34173405662855], + [-4.1777839187560915, 50.34173405662855], ] ], }, }, - "description": "Using GEOJSON, exact 4-point region (rectangle shaped)", + "description": "Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)", } squad_metadata_schema = { @@ -136,19 +189,12 @@ squad_metadata_schema = { + ", `inspection`", "example": "survey", }, - "squad_state": { - "type": "string", - "description": "In execution, Waiting.. <define further>", - "example": False, - }, - "region_of_interest": region_schema, }, "required": [ "squad_ID", "no_of_platforms", "platforms", "squad_mission_type", - "squad_state", ], } @@ -167,6 +213,11 @@ planning_configuration_schema = { + " configuration plan", "example": 3, }, + "region_of_interest": { + "type": "array", + "items": region_schema, + "description": "Region of interest for the entire operation", + }, "exclusion_zones": { "type": "array", "items": region_schema, @@ -182,5 +233,6 @@ planning_configuration_schema = { "planning_config_ID", "squads", "exclusion_zones", + "region_of_interest", ], } diff --git a/formats/platform_status.py b/formats/platform_status.py index ff31eac345ad92694a9c3480bd9f6ca1f9a36022..f55910b948f9d3c5c301b957043666f940f38666 100644 --- a/formats/platform_status.py +++ b/formats/platform_status.py @@ -75,13 +75,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": { diff --git a/formats/platform_status_encoded.py b/formats/platform_status_encoded.py index 23b54a9a9cb28f228c4781a481c7318c294185dc..fcca15903929f67b350b7716560e447d65951276 100644 --- a/formats/platform_status_encoded.py +++ b/formats/platform_status_encoded.py @@ -1,6 +1,7 @@ from formats.encoded import encoded_schema +from copy import deepcopy -platform_status_encoded_schema = encoded_schema +platform_status_encoded_schema = deepcopy(encoded_schema) platform_status_encoded_schema["properties"]["message_type"]["enum"] = [ "platform_status_encoded" diff --git a/project/soar/swagger.json b/project/soar/swagger.json index bdbda617a744ee60a429f6dbe11e65dc37a5df1f..1bd3a36a64ca37c426a5c09f282d4a59e13aa572 100644 --- a/project/soar/swagger.json +++ b/project/soar/swagger.json @@ -107,6 +107,12 @@ "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":[ @@ -115,12 +121,6 @@ "example":"mission_plan", "type":"string" }, - "emergency": { - "default": false, - "description": "To indicate if this is an emergency. true = emergency and false = no emergency", - "example": false, - "type": "boolean" - }, "plan":{ "items":{ "properties":{ @@ -383,26 +383,30 @@ "exclusion_zones":{ "description":"Exclusion zones for all platforms", "items":{ - "description":"Using GEOJSON, exact 4-point region (rectangle shaped)", + "description":"Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)", "properties":{ "geometry_coordinates":{ "example":[ [ [ - -4.187143188645706, - 50.37072283932642 + -4.1777839187560915, + 50.34173405662855 ], [ - -4.202697005964865, - 50.368816892405874 + -4.1777839187560915, + 50.33820949229701 ], [ - -4.203156724702808, - 50.365640144076906 + -4.143667777943875, + 50.33820949229701 ], [ - -4.19449868846155, - 50.362267670845654 + -4.143667777943875, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.34173405662855 ] ] ], @@ -426,6 +430,43 @@ "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, + 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":{ @@ -441,20 +482,18 @@ "additional_data":{ "description":"Any addition fields/data to be added here", "example":{ - "scan_type":"DVL", - "swath_width":10.0 + "new_sensor_a":"test_sensor", + "range":10.0 }, "type":"object" }, + "beacon_ID":{ + "description":"Unique identifier (number) for the beacon associated to this platform", + "example":9407, + "type":"number" + }, "emergency":{ "properties":{ - "additional_data":{ - "type": "object", - "description":"Any addition fields/data to be added here", - "example":{ - - } - }, "safe_command":{ "description":"Command/Action that is native to respective partner's platform/C2", "enum":[ @@ -492,19 +531,19 @@ "type":"object" }, "max_velocity":{ - "description":"Maximum altitude set for squad.", + "description":"Maximum velocity set for platform", "example":0.9, "format":"float", "type":"number" }, "min_altitude":{ - "description":"Minimum altitude set for squad.", + "description":"Minimum altitude set for platform", "example":15.2, "format":"float", "type":"number" }, "min_velocity":{ - "description":"Minimum velocity set for squad.", + "description":"Minimum velocity set for platform", "example":0.1, "format":"float", "type":"number" @@ -513,13 +552,63 @@ "example":"reav", "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" + }, + "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" + }, + "sensor_type":{ + "description":"Unique identifier for this platform", + "enum":[ + "SIDESCAN", + "MBES" + ], + "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" + } + }, + "type":"object" + }, + "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" } }, "required":[ + "operator", "platform_ID", "model", "emergency", @@ -531,35 +620,6 @@ }, "type":"array" }, - "region_of_interest":{ - "description":"Using GEOJSON, exact 4-point region (rectangle shaped)", - "properties":{ - "geometry_coordinates":{ - "example":[ - [ - [ - -4.187143188645706, - 50.37072283932642 - ], - [ - -4.202697005964865, - 50.368816892405874 - ], - [ - -4.203156724702808, - 50.365640144076906 - ], - [ - -4.19449868846155, - 50.362267670845654 - ] - ] - ], - "type":"array" - } - }, - "type":"object" - }, "squad_ID":{ "description":"Identifier of given squad", "example":23, @@ -574,19 +634,13 @@ ], "example":"survey", "type":"string" - }, - "squad_state":{ - "description":"In execution, Waiting.. <define further>", - "example":false, - "type":"string" } }, "required":[ "squad_ID", "no_of_platforms", "platforms", - "squad_mission_type", - "squad_state" + "squad_mission_type" ], "type":"object" }, @@ -597,7 +651,8 @@ "message_type", "planning_config_ID", "squads", - "exclusion_zones" + "exclusion_zones", + "region_of_interest" ], "type":"object" }, @@ -830,4 +885,4 @@ "paths":{ } -} \ No newline at end of file + } \ No newline at end of file diff --git a/tests/fixtures/schemas.py b/tests/fixtures/schemas.py index 9cbc2151a6aaa8b263ecf883e14de1210918fa62..632a5ea64f2a22e7682ba46b35458dd92d7b19da 100644 --- a/tests/fixtures/schemas.py +++ b/tests/fixtures/schemas.py @@ -259,13 +259,13 @@ emergency_schema = { "type": "number", "format": "float", "description": "X-coordinate safe place for respective platform", - "example": -7.432, + "example": 50.365, }, "target_waypoint_longitude": { "type": "number", "format": "float", "description": "Y-coordinate safe place for respective platform", - "example": 50.365, + "example": -7.432, }, "target_depth": { "type": "number", @@ -315,7 +315,7 @@ platform_schema = { "max_velocity": { "type": "number", "format": "float", - "description": "Maximum altitude set for squad.", + "description": "Maximum velocity set for squad.", "example": 0.9, }, "additional_data": { diff --git a/tests/fixtures/swagger.json b/tests/fixtures/swagger.json index eca6c9bfd728535d7a6509c597f4e532efcc6460..3ef4b1572566192ca35435f5f4f85a3d03a40eb5 100644 --- a/tests/fixtures/swagger.json +++ b/tests/fixtures/swagger.json @@ -1,670 +1,888 @@ { - "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": [ - "header", - "payload" - ], - "type": "object" - }, - "acknowledgement": { - "properties": { - "approved": { - "type": "boolean", - "description": "Human-in-the-loop approval. 1 - Plan approved; 0 - Plan Rejected", - "example": 1 - }, - "autonomy_engine_plan_ID": { - "type": "integer", - "description": "Mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform", - "example": 1 - }, - "message_type": { - "description": "Type of message", - "type": "string", - "example": "acknowledgement" - }, - "platform_ID": { - "type": "string", - "description": "Unique identifier for this platform", - "example": "reav-x-1" - } - }, - "required": [ - "message_type", - "autonomy_engine_plan_ID", - "platform_ID", - "approved" - ], - "type": "object" - }, - "header": { - "discriminator": { - "propertyName": "message_type" + "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":[ + "header", + "payload" + ], + "type":"object" }, - "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" - } + "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" + }, + "platform_ID":{ + "description":"Unique identifier for this platform", + "example":"reav-x-1", + "type":"string" + } + }, + "required":[ + "message_type", + "autonomy_engine_plan_ID", + "platform_ID", + "approved" + ], + "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" - }, - "message_type": { - "description": "Type of message", - "example": "mission_plan", - "type": "string" - }, - "emergency": { - "default": false, - "description": "To indicate if this is an emergency. true = emergency and false = no emergency", - "example": false, - "type": "boolean" - }, - "plan": { - "items": { - "properties": { - "action": { - "description": "Autonomy Engine's action from `move`, `payload`, `dive`, `send_hits`, `scanline`, `scanpoint`.", - "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" - }, - "timeout": { - "description": "Timeout set to perform action", - "example": 1800.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" - }, - "target_waypoint_latitude": { - "description": "Next waypoint, x-coordinate", - "example": -4.187143188645706, - "format": "float", - "type": "number" - }, - "target_waypoint_longitude": { - "description": "Next waypoint, y-coordinate", - "example": 50.37072283932642, - "format": "float", - "type": "number" - } - }, - "required": [ - "target_waypoint_latitude", - "target_waypoint_longitude" - ], - "type": "object" - }, - "type": "array" - }, - "platform_ID": { - "description": "Unique identifier for this platform", - "example": "reav-x-1", - "type": "string" - } + "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" + } + }, + "type":"object" }, - "required": [ - "message_type", - "autonomy_engine_plan_ID", - "platform_ID", - "plan" - ], - "type": "object" - }, - "observation": { - "properties": { - "additional_data": { - "description": "Placeholder field for any additional data", - "example": { - "sensor_payload": false - } - }, - "message_type": { - "description": "Type of message", - "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 x-coordinate of point of interest", - "example": 178.2, - "format": "float", - "type": "number" - }, - "longitude": { - "description": "Identified y-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" - } - }, - "required": [ - "latitude", - "longitude" - ], - "type": "object" - }, - "type": "array" - }, - "region_surveyed": { - "description": "Region surveyed by given platform. GEOJSON", - "example": "" - } + "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`.", + "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" + }, + "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" + }, + "start_point_latitude":{ + "description":"Start point, x-coordinate", + "example":-4.187143188645706, + "format":"float", + "type":"number" + }, + "start_point_longitude":{ + "description":"Start point, y-coordinate", + "example":50.37072283932642, + "format":"float", + "type":"number" + }, + "target_waypoint_latitude":{ + "description":"Target waypoint, x-coordinate", + "example":-4.187143188645706, + "format":"float", + "type":"number" + }, + "target_waypoint_longitude":{ + "description":"Target waypoint, y-coordinate", + "example":50.37072283932642, + "format":"float", + "type":"number" + }, + "timeout":{ + "description":"Timeout set to perform action", + "example":1800.0, + "format":"float", + "type":"number" + } + }, + "required":[ + "target_waypoint_latitude", + "target_waypoint_longitude" + ], + "type":"object" + }, + "type":"array" + }, + "platform_ID":{ + "description":"Unique identifier for this platform", + "example":"reav-x-1", + "type":"string" + } + }, + "required":[ + "message_type", + "autonomy_engine_plan_ID", + "platform_ID", + "plan" + ], + "type":"object" }, - "required": [ - "message_type", - "platform_ID" - ], - "type": "object" - }, - "payload": { - "discriminator": { - "mapping": { - "acknowledgement": "#/components/schemas/acknowledgement", - "mission_plan": "#/components/schemas/mission_plan", - "observation": "#/components/schemas/observation", - "planning_configuration": "#/components/schemas/planning_configuration", - "platform_status": "#/components/schemas/platform_status" - }, - "propertyName": "message_type" + "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" + }, + "mime_type":{ + "description":"MIME type", + "example":"application/gzip", + "type":"string" + } + }, + "required":[ + "data", + "is_binary" + ], + "type":"object" }, - "oneOf": [ - { - "$ref": "#/components/schemas/acknowledgement" - }, - { - "$ref": "#/components/schemas/mission_plan" - }, - { - "$ref": "#/components/schemas/observation" - }, - { - "$ref": "#/components/schemas/planning_configuration" - }, - { - "$ref": "#/components/schemas/platform_status" - } - ] - }, - "planning_configuration": { - "properties": { - "exclusion_zones": { - "description": "Exclusion zones for all platforms", - "items": { - "description": "Using GEOJSON, exact 4-point region (rectangle shaped)", - "properties": { - "geometry_coordinates": { - "example": [ - [ - [ - -4.187143188645706, - 50.37072283932642 - ], - [ - -4.202697005964865, - 50.368816892405874 - ], - [ - -4.203156724702808, - 50.365640144076906 - ], - [ - -4.19449868846155, - 50.362267670845654 - ] - ] - ], - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "message_type": { - "description": "Type of message", - "example": "planning_configuration", - "type": "string" - }, - "planning_config_ID": { - "description": "Unique identifier tagged to version of this configuration plan", - "example": 3, - "type": "integer" - }, - "squads": { - "items": { - "properties": { - "no_of_platforms": { - "description": "Number of platforms", - "example": 3, - "type": "integer" - }, - "platforms": { - "description": "Squad consists of these platforms", - "items": { - "properties": { - "additional_data": { - "description": "Any addition fields/data to be added here", - "example": { - "scan_type": "DVL", - "swath_width": 10.0 - } - }, - "emergency": { - "properties": { - "additional_data": { - "description": "Any addition fields/data to be added here", - "example": {} - }, - "target_waypoint_latitude": { - "description": "X-coordinate safe place for respective platform", - "example": -7.432, - "format": "float", - "type": "number" - }, - "target_waypoint_longitude": { - "description": "Y-coordinate safe place for respective platform", - "example": 50.365, - "format": "float", - "type": "number" - }, - "safe_command": { - "description": "Command/Action that is native to respective partner's platform/C2", - "enum": [ - "go_home", - "abort_now", - "stop_mission" - ], - "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" - } - }, - "required": [ - "target_waypoint_latitude", - "target_waypoint_longitude", - "target_depth" - ], - "type": "object" - }, - "max_velocity": { - "description": "Maximum altitude set for squad.", - "example": 0.9, - "format": "float", - "type": "number" - }, - "min_altitude": { - "description": "Minimum altitude set for squad.", - "example": 15.2, - "format": "float", - "type": "number" - }, - "min_velocity": { - "description": "Minimum velocity set for squad.", - "example": 0.1, - "format": "float", - "type": "number" - }, - "model": { - "example": "reav", - "type": "string" - }, - "platform_ID": { - "description": "Unique identifier for this platform", - "example": "reav-x-1", - "type": "string" - } + "observation":{ + "properties":{ + "additional_data":{ + "description":"Placeholder field for any additional data", + "example":{ + "sensor_payload":false + } + }, + "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 x-coordinate of point of interest", + "example":178.2, + "format":"float", + "type":"number" + }, + "longitude":{ + "description":"Identified y-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" + } }, - "required": [ - "platform_ID", - "model", - "emergency", - "min_altitude", - "min_velocity", - "max_velocity" + "required":[ + "latitude", + "longitude" ], - "type": "object" - }, - "type": "array" - }, - "region_of_interest": { - "description": "Using GEOJSON, exact 4-point region (rectangle shaped)", - "properties": { - "geometry_coordinates": { - "example": [ - [ - [ - -4.187143188645706, - 50.37072283932642 + "type":"object" + }, + "type":"array" + }, + "region_surveyed":{ + "description":"Region surveyed by given platform. GEOJSON", + "example":"", + "nullable":true + } + }, + "required":[ + "message_type", + "platform_ID" + ], + "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" + ], + "example":"observation_encoded", + "type":"string" + }, + "mime_type":{ + "description":"MIME type", + "example":"application/gzip", + "type":"string" + } + }, + "required":[ + "data", + "is_binary" + ], + "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" + }, + "propertyName":"message_type" + }, + "oneOf":[ + { + "$ref":"#/components/schemas/acknowledgement" + }, + { + "$ref":"#/components/schemas/mission_plan" + }, + { + "$ref":"#/components/schemas/mission_plan_encoded" + }, + { + "$ref":"#/components/schemas/observation" + }, + { + "$ref":"#/components/schemas/observation_encoded" + }, + { + "$ref":"#/components/schemas/planning_configuration" + }, + { + "$ref":"#/components/schemas/platform_status" + }, + { + "$ref":"#/components/schemas/platform_status_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":[ + [ + [ + -4.1777839187560915, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.34173405662855 + ] + ] ], - [ - -4.202697005964865, - 50.368816892405874 + "type":"array" + } + }, + "type":"object" + }, + "type":"array" + }, + "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":[ + [ + [ + -4.1777839187560915, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.33820949229701 + ], + [ + -4.143667777943875, + 50.34173405662855 + ], + [ + -4.1777839187560915, + 50.34173405662855 + ] + ] ], - [ - -4.203156724702808, - 50.365640144076906 + "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":{ + "additional_data":{ + "description":"Any addition fields/data to be added here", + "example":{ + "new_sensor_a":"test_sensor", + "range":10.0 + }, + "type":"object" + }, + "beacon_ID":{ + "description":"Unique identifier (number) for the beacon associated to this platform", + "example":9407, + "type":"number" + }, + "emergency":{ + "properties":{ + "safe_command":{ + "description":"Command/Action that is native to respective partner's platform/C2", + "enum":[ + "go_home", + "abort_now", + "stop_mission" + ], + "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_waypoint_latitude":{ + "description":"X-coordinate safe place for respective platform", + "example":-7.432, + "format":"float", + "type":"number" + }, + "target_waypoint_longitude":{ + "description":"Y-coordinate safe place for respective platform", + "example":50.365, + "format":"float", + "type":"number" + } + }, + "required":[ + "target_waypoint_latitude", + "target_waypoint_longitude", + "target_depth" + ], + "type":"object" + }, + "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_velocity":{ + "description":"Minimum velocity set for platform", + "example":0.1, + "format":"float", + "type":"number" + }, + "model":{ + "example":"reav", + "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" + }, + "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" + }, + "sensor_type":{ + "description":"Unique identifier for this platform", + "enum":[ + "SIDESCAN", + "MBES" + ], + "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" + } + }, + "type":"object" + }, + "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" + } + }, + "required":[ + "operator", + "platform_ID", + "model", + "emergency", + "min_altitude", + "min_velocity", + "max_velocity" + ], + "type":"object" + }, + "type":"array" + }, + "squad_ID":{ + "description":"Identifier of given squad", + "example":23, + "type":"integer" + }, + "squad_mission_type":{ + "description":"Mission of given squad: `tracking`, `survey`, `inspection`", + "enum":[ + "tracking", + "survey", + "inspection" ], - [ - -4.19449868846155, - 50.362267670845654 + "example":"survey", + "type":"string" + } + }, + "required":[ + "squad_ID", + "no_of_platforms", + "platforms", + "squad_mission_type" + ], + "type":"object" + }, + "type":"array" + } + }, + "required":[ + "message_type", + "planning_config_ID", + "squads", + "exclusion_zones", + "region_of_interest" + ], + "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 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 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":[ + 1.2, + 434 ] - ] - ], - "type": "array" + }, + "type":"object" + }, + "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" } - }, - "type": "object" - }, - "squad_ID": { - "description": "Identifier of given squad", - "example": 23, - "type": "integer" - }, - "squad_mission_type": { - "description": "Mission of given squad: `tracking`, `survey`, `inspection`", - "enum": [ - "tracking", - "survey", - "inspection" - ], - "example": "survey", - "type": "string" - }, - "squad_state": { - "description": "In execution, Waiting.. <define further>", - "example": false, - "type": "string" - } - }, - "required": [ - "squad_ID", - "no_of_platforms", - "platforms", - "squad_mission_type", - "squad_state" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "message_type", - "planning_config_ID", - "squads", - "exclusion_zones" - ], - "type": "object" - }, - "platform_status": { - "properties": { - "altitude": { - "description": "Target altitude in metres", - "example": 20, - "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 in decimal degrees.", - "example": 178.2, - "format": "float", - "type": "number" - }, - "localisation_error": { - "description": "Difference in NORTH between deadreckoning and USBL update.", - "example": 0.000129, - "format": "float", - "type": "number" - }, - "longitude": { - "description": "Longitude in decimal degrees.", - "example": -10.122, - "format": "float", - "type": "number" - }, - "message_type": { - "description": "Type of message", - "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 - ] - } - }, - "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" + }, + "type":"object" + }, + "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":[ + "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":[ + "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" } - }, - "type": "object" - }, - "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": [ - "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": [ - "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", - "format": "string" - } + }, + "required":[ + "message_type", + "platform_ID", + "status_source", + "platform_timestamp", + "latitude", + "longitude" + ], + "type":"object" }, - "required": [ - "message_type", - "platform_ID", - "status_source", - "platform_timestamp", - "latitude", - "longitude" - ], - "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" + ], + "example":"platform_status_encoded", + "type":"string" + }, + "mime_type":{ + "description":"MIME type", + "example":"application/gzip", + "type":"string" + } + }, + "required":[ + "data", + "is_binary" + ], + "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