class FlightScheduleCommands(db.Model): __tablename__ = 'flightschedulecommands' id = db.Column(db.Integer, primary_key=True, autoincrement=True) command_id = db.Column(db.Integer, db.ForeignKey('telecommands.id'), nullable=False) timestamp = db.Column(db.DateTime) flightschedule_id = db.Column(db.Integer, db.ForeignKey('flightschedules.id'), nullable=False) arguments = db.relationship('FlightScheduleCommandsArgs', backref='flightschedulecommand', lazy=True, cascade='all, delete-orphan') def to_json(self): """Returns a dictionary of some selected model attributes """ return { 'flightschedule_command_id': self.id, 'timestamp': str(self.timestamp), 'command': self.command.to_json(), 'args': [arg.to_json() for arg in self.arguments] }
class FlightScheduleCommandsArgs(db.Model): __tablename__ = 'flightschedulecommandsargs' id = db.Column(db.Integer, primary_key=True, autoincrement=True) index = db.Column(db.Integer) argument = db.Column(db.String(8)) flightschedulecommand_id = db.Column( db.Integer, db.ForeignKey('flightschedulecommands.id'), nullable=False) def to_json(self): """Returns a dictionary of some selected model attributes """ return {'index': self.index, 'argument': self.argument}
class PowerChannels(db.Model): __tablename__ = 'powerchannels' id = db.Column(db.Integer, primary_key=True, autoincrement=True) hk_id = db.Column(db.Integer, db.ForeignKey('housekeeping.id'), nullable=False) channel_no = db.Column(db.Integer) # Range of 1-24 enabled = db.Column(db.Boolean) current = db.Column(db.Float) # Might also need a 'Nominal' column? According to ASAT Common Commands doc. def to_json(self): """Returns a dictionary of some selected model attributes """ return { 'id': self.id, 'hk_id': self.hk_id, 'channel_no': self.channel_no, 'enabled': self.enabled, 'current': self.current }