from flask_restx import Api, fields from flask import Flask import os __all__ = [ os.path.splitext(os.path.basename(x))[0] for x in os.listdir(os.path.dirname(__file__)) if x.endswith(".py") and x != "__init__.py" ] app = Flask(__name__) api = Api(app) message_types = [ "vehicle_status" ] # TODO: Add full range of message types once scoped out message_header_schema = api.model( "MessageHeader", { "timestamp": fields.String( # TODO: Update to Datetime UTC format required=True, description="Timestamp of message", example="2022-11-16T00:00:00Z", ), "source": fields.String( required=True, description="Where is this message from", example="autonomy_engine", ), "destination": fields.String( required=True, description="What is the destination of this message", example="ah-1", ), "encoded": fields.Boolean( required=True, description="Indicate that message raw (encoded) or decoded. " + "Options: encoded=True, decoded=False", example=False, ), "type": fields.String( required=True, description="Type of message", example="vehicle_status", ), }, ) vehicle_schema = api.model( "VehicleSchema", { "vehicle_ID": fields.Integer( required=True, description="vehicle serial number", example="ah-1", ), "serial": fields.Integer( required=True, description="vehicle serial number", example="ah-1", ), "model": fields.Integer( required=True, description="vehicle serial number", example="ah-1", ), "active": fields.Boolean( required=False, description="Vehicle in mission", example=True, ), }, ) # TODO: Add generic positions schema # TODO: Define units for all schemas