Example #1
0
class Sensor(Collector):

    # Properties
    id = db.Column(db.Integer, db.ForeignKey('collector.id'), primary_key=True)
    sensor_board_id = db.Column(db.Integer, db.ForeignKey('sensor_board.id'))
    sensor_model_id = db.Column(db.Integer, db.ForeignKey('sensor_model.id'))
    calibration = db.Column(JSONB)

    # Relationships
    board = db.relationship("SensorBoard", back_populates="sensors")
    model = db.relationship("SensorModel", back_populates="sensors")

    __tablename__ = 'sensor'

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
Example #2
0
class InstalledApp(BaseModel, Serializer):

    # Properties
    id = db.Column(db.Integer, primary_key=True)
    device_id = db.Column(db.Integer, db.ForeignKey('device.id'))
    app_id = db.Column(db.Integer, db.ForeignKey('app.id'))
    install_time = db.Column(db.DateTime, default=datetime.now)
    uninstall_time = db.Column(db.DateTime, default=datetime.now)
    running = db.Column(db.Boolean)

    # Relationships
    device = db.relationship("Device", back_populates="installed_apps")
    app = db.relationship("App", back_populates="installed_apps")

    __tablename__ = 'installed_app'

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
Example #3
0
class Link(BaseModel, Serializer):

    # Properties
    id = db.Column(db.Integer, primary_key=True)
    gateway_id = db.Column(db.Integer, db.ForeignKey('gateway.id'))
    sensor_board_id = db.Column(db.Integer, db.ForeignKey('sensor_board.id'))
    local = db.Column(db.Boolean)
    last_contacted = db.Column(db.DateTime, default=datetime.now)
    collecting_data = db.Column(db.Boolean)
    max_msg_interval_sec = db.Column(db.Integer)

    # Relationships
    gateway = db.relationship("Gateway", back_populates="links")
    sensor_board = db.relationship("SensorBoard", back_populates="link")

    __tablename__ = 'link'

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
Example #4
0
class CloudSource(Collector):

    # Properties
    id = db.Column(db.Integer, db.ForeignKey('collector.id'), primary_key=True)
    url = db.Column(db.String)
    name = db.Column(db.String)
    description = db.Column(db.String)

    # Relationships

    __tablename__ = 'cloud_source'

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
Example #5
0
class Sample(db.Model, Serializer):
    
    # Properties
    id = db.Column(db.Integer, primary_key=True)
    collector_id = db.Column(db.Integer, db.ForeignKey('collector.id'))
    timestamp = db.Column(db.DateTime)
    data = db.Column(JSONB)

    # Relationships
    collector = db.relationship("Collector", back_populates="samples")

    __tablename__ = 'sample'

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
Example #6
0
class Gateway(Device):
    
    # Properties
    id = db.Column(db.Integer, db.ForeignKey('device.id'), primary_key=True)

    # Relationships
    links = db.relationship("Link", back_populates="gateway")

    __tablename__ = 'gateway'

    __mapper_args__ = {
        'polymorphic_identity': 'gateway',
    }

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
Example #7
0
class SensorBoard(Device):

    # Properties
    id = db.Column(db.Integer, db.ForeignKey('device.id'), primary_key=True)
    description = db.Column(db.String)
    version = db.Column(db.String)

    # Relationships
    sensors = db.relationship("Sensor", back_populates="board")
    link = db.relationship("Link", back_populates="sensor_board")

    __tablename__ = 'sensor_board'

    __mapper_args__ = {
        'polymorphic_identity': 'sensor_board',
    }

    def __init__(self, **kwargs):
        super().__init__(**kwargs)