kopia lustrzana https://github.com/glidernet/ogn-python
Merge pull request #61 from Meisterschueler/feature/+protocol_0.2.5
Feature/+protocol 0.2.5pull/45/merge
commit
a1276fbc7e
|
@ -1,6 +1,9 @@
|
|||
# CHANGELOG
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 0.3.0 - 2016-10-22
|
||||
- Changed database for OGN v0.2.5 receiver beacons
|
||||
- Moved to PostGIS, PostgreSQL is now mandantory
|
||||
- Changed database schema (added airport, added relations, added `aircraft_type`, removed unused fields)
|
||||
- Added Airport manager with command line option `db.import_airports`,
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
"""update protocol to v0.2.5
|
||||
|
||||
Revision ID: 5717cf8e17c
|
||||
Revises: 4ebfb325db6
|
||||
Create Date: 2016-10-17 19:16:38.632097
|
||||
|
||||
"""
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '5717cf8e17c'
|
||||
down_revision = '4ebfb325db6'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.alter_column('aircraft_beacon', 'signal_strength', new_column_name='signal_quality')
|
||||
op.add_column('aircraft_beacon', sa.Column('signal_power', sa.Float))
|
||||
|
||||
op.add_column('receiver_beacon', sa.Column('senders_visible', sa.Integer))
|
||||
op.add_column('receiver_beacon', sa.Column('senders_total', sa.Integer))
|
||||
op.add_column('receiver_beacon', sa.Column('senders_signal', sa.Float))
|
||||
op.add_column('receiver_beacon', sa.Column('senders_messages', sa.Integer))
|
||||
op.add_column('receiver_beacon', sa.Column('good_senders_signal', sa.Float))
|
||||
op.add_column('receiver_beacon', sa.Column('good_senders', sa.Integer))
|
||||
op.add_column('receiver_beacon', sa.Column('good_and_bad_senders', sa.Integer))
|
||||
|
||||
op.add_column('receiver_beacon', sa.Column('voltage', sa.Float))
|
||||
op.add_column('receiver_beacon', sa.Column('amperage', sa.Float))
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.alter_column('aircraft_beacon', 'signal_quality', new_column_name='signal_strength')
|
||||
op.drop_column('aircraft_beacon', 'signal_power')
|
||||
|
||||
op.drop_column('receiver_beacon', 'senders_visible')
|
||||
op.drop_column('receiver_beacon', 'senders_total')
|
||||
op.drop_column('receiver_beacon', 'senders_signal')
|
||||
op.drop_column('receiver_beacon', 'senders_messages')
|
||||
op.drop_column('receiver_beacon', 'good_senders_signal')
|
||||
op.drop_column('receiver_beacon', 'good_senders')
|
||||
op.drop_column('receiver_beacon', 'good_and_bad_senders')
|
||||
|
||||
op.drop_column('receiver_beacon', 'voltage')
|
||||
op.drop_column('receiver_beacon', 'amperage')
|
|
@ -30,7 +30,21 @@ def process_beacon(raw_message, reference_date=None, reference_time=None):
|
|||
# \n: ?
|
||||
# /z: ?
|
||||
# /o: ?
|
||||
if message['symboltable'] == "I" and message['symbolcode'] == '&':
|
||||
if 'symboltable' not in message and 'symbolcode' not in message:
|
||||
# we have a receiver_beacon (status message)
|
||||
message.update(parse_ogn_receiver_beacon(message['comment']))
|
||||
beacon = ReceiverBeacon(**message)
|
||||
|
||||
# connect beacon with receiver
|
||||
receiver = session.query(Receiver.id) \
|
||||
.filter(Receiver.name == beacon.name) \
|
||||
.first()
|
||||
if receiver is None:
|
||||
receiver = Receiver()
|
||||
receiver.name = beacon.name
|
||||
session.add(receiver)
|
||||
beacon.receiver_id = receiver.id
|
||||
elif message['symboltable'] == "I" and message['symbolcode'] == '&':
|
||||
# ... we have a receiver_beacon
|
||||
message.update(parse_ogn_receiver_beacon(message['comment']))
|
||||
message = replace_lonlat_with_wkt(message)
|
||||
|
|
|
@ -14,7 +14,7 @@ class AircraftBeacon(Beacon):
|
|||
address = Column(String(6))
|
||||
climb_rate = Column(Float)
|
||||
turn_rate = Column(Float)
|
||||
signal_strength = Column(Float)
|
||||
signal_quality = Column(Float)
|
||||
error_count = Column(Integer)
|
||||
frequency_offset = Column(Float)
|
||||
gps_status = Column(String)
|
||||
|
@ -25,6 +25,8 @@ class AircraftBeacon(Beacon):
|
|||
|
||||
flightlevel = Column(Float)
|
||||
|
||||
signal_power = Column(Float)
|
||||
|
||||
# Relations
|
||||
receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL'), index=True)
|
||||
receiver = relationship('Receiver', foreign_keys=[receiver_id])
|
||||
|
|
|
@ -21,6 +21,17 @@ class ReceiverBeacon(Beacon):
|
|||
rec_crystal_correction_fine = 0 # obsolete since 0.2.0
|
||||
rec_input_noise = Column(Float)
|
||||
|
||||
senders_visible = Column(Integer)
|
||||
senders_total = Column(Integer)
|
||||
senders_signal = Column(Float)
|
||||
senders_messages = Column(Integer)
|
||||
good_senders_signal = Column(Float)
|
||||
good_senders = Column(Integer)
|
||||
good_and_bad_senders = Column(Integer)
|
||||
|
||||
voltage = Column(Float)
|
||||
amperage = Column(Float)
|
||||
|
||||
# Relations
|
||||
receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL'), index=True)
|
||||
receiver = relationship('Receiver', foreign_keys=[receiver_id])
|
||||
|
|
12
setup.py
12
setup.py
|
@ -12,7 +12,7 @@ with open(path.join(here, 'README.md'), encoding='utf-8') as f:
|
|||
|
||||
setup(
|
||||
name='ogn-python',
|
||||
version='0.2.1',
|
||||
version='0.3.0',
|
||||
description='A database backend for the Open Glider Network',
|
||||
long_description=long_description,
|
||||
url='https://github.com/glidernet/ogn-python',
|
||||
|
@ -32,22 +32,22 @@ setup(
|
|||
keywords='gliding ogn',
|
||||
packages=find_packages(exclude=['tests', 'tests.*']),
|
||||
install_requires=[
|
||||
'SQLAlchemy==1.0.8',
|
||||
'SQLAlchemy==1.1.2',
|
||||
'geopy==1.11.0',
|
||||
'manage.py==0.2.10',
|
||||
'celery[redis]>=3.1,<3.2',
|
||||
'alembic==0.8.3',
|
||||
'alembic==0.8.8',
|
||||
'aerofiles==0.3',
|
||||
'geoalchemy2==0.3.0',
|
||||
'shapely==1.5.15',
|
||||
'ogn-client==0.5.0',
|
||||
'ogn-client==0.6.0',
|
||||
'psycopg2==2.6.1'
|
||||
],
|
||||
extras_require={
|
||||
'dev': [
|
||||
'nose==1.3.7',
|
||||
'coveralls==0.4.4',
|
||||
'flake8==2.5.0'
|
||||
'coveralls==1.1',
|
||||
'flake8==3.0.4'
|
||||
]
|
||||
},
|
||||
zip_safe=False
|
||||
|
|
Ładowanie…
Reference in New Issue