""" 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 = 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.", ), }, )