""" schemas: Mission plan (un-complied) geenrated by the Autonomy Engine sent to the respective platform's C2 to compile into a platform-specific mission plan. """ # from . import api, full_message_schema # from flask_restx import fields action_schema = { "type": "object", "properties": { "action": { "type": "string", "description": "Autonomy Engine's action from `move`, `payload`," + " `dive`, `send_hits`, `scanline`, `scanpoint`.", "example": "move", }, "flight_style": { "type": "string", "description": "Platform-specific modes/flight styles to perform" + " next action", "example": "orbit", }, "latitude_waypoint": { "type": "number", "description": "Next waypoint, x-coordinate", "example": -4.187143188645706, }, "longitude_waypoint": { "type": "number", "description": "Next waypoint, y-coordinate", "example": 50.37072283932642, }, "altitude": { "type": "number", "description": "Altitude of next action", "example": 15.0, }, "depth": { "type": "number", "description": "Depth of next action", "example": 15.0, }, "activate_payload": { "type": "boolean", "description": "To activate/deactivate sensor for Autosub " + "Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`", "example": True, }, "send_environmental_data": { "type": "boolean", "description": "To trigger the platform to send list of observations" + " if any found", "example": False, }, }, "required": [ "action", "latitude_waypoint", "longitude_waypoint", ], } mission_plan_schema = { "allOf": [{"$ref": "#/components/schemas/Message"}], "type": "object", "properties": { "plan_ID": {"type": "integer"}, "platform_serial": {"type": "string"}, "plan": { "type": "array", "items": action_schema, }, }, "required": ["plan_ID", "platform_serial", "plan"], } # action_schema = api.model( # "AutonomyEngineAction", # { # "action": fields.String( # required=True, # description="Autonomy Engine's action from `move`, `payload`," # + " `dive`, `send_hits`, `scanline`, `scanpoint`.", # example="move", # ), # "flight_style": fields.String( # required=False, # description="Platform-specific modes/flight styles to perform" # + " next action", # example="orbit", # ), # "latitude_waypoint": fields.Float( # required=True, # description="Next waypoint, x-coordinate", # example=-4.187143188645706, # ), # "longitude_waypoint": fields.Float( # required=True, # description="Next waypoint, y-coordinate", # example=50.37072283932642, # ), # "altitude": fields.Float( # required=False, # description="Altitude of next action", # example=15.0, # ), # "depth": fields.Float( # required=False, # description="Depth of next action", # example=15.0, # ), # "activate_payload": fields.Boolean( # required=False, # description="To activate/deactivate sensor for Autosub " # + "Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`", # example=True, # ), # "send_environmental_data": fields.Boolean( # required=False, # description="To trigger the platform to send list of observations" # + " if any found", # example=False, # ), # }, # ) # mission_plan_schema = api.model( # "MissionPlan", # { # "message": fields.Nested( # full_message_schema, # required=True, # description="Message header", # ), # "plan_ID": fields.Integer( # required=True, # description="Identifier of given mission sequence planned", # example=1, # ), # "platform_serial": fields.String( # required=True, # description="Serial of target platform to send mission to", # example="reav-60", # ), # "plan": fields.List( # fields.Nested(action_schema), # required=True, # description="Sequence of actions/instructions generated by the " # + " Autonomy Engine that should be compiled by the respective C2.", # ), # }, # )