A python3 module for the Open Glider Network.
Go to file
Anze Kolar 13cc75cf03 Allow client to do sequential connect-disconnect
With introduction of the kill switch it was impossible to restart the
consumption of the OGN messages after a .disconnect() method has been
called.

This commit resets the kill flag after .connect() has been called.

Minimal example:

```
client = AprsClient(aprs_user='testuser', aprs_filter='')
client.connect()
client.run(callback=lambda x: x, autoreconnect=True)
...
client.disconnect()
client.connect()
client.run()
```
2017-07-20 15:28:01 +02:00
ogn Allow client to do sequential connect-disconnect 2017-07-20 15:28:01 +02:00
tests Allow client to do sequential connect-disconnect 2017-07-20 15:28:01 +02:00
.gitignore Initial commit; Import from ogn-python 2016-02-28 12:11:16 +01:00
.travis.yml CI: Enable tests for Python version 3.5 2016-10-21 21:52:34 +02:00
CHANGELOG.md Release v0.7.1 2017-06-05 10:07:04 +02:00
CONTRIBUTORS Initial commit; Import from ogn-python 2016-02-28 12:11:16 +01:00
LICENSE Initial commit; Import from ogn-python 2016-02-28 12:11:16 +01:00
MANIFEST.in Initial commit; Import from ogn-python 2016-02-28 12:11:16 +01:00
README.md README: Fix example code 2016-09-29 15:57:01 +02:00
requirements.txt Initial commit; Import from ogn-python 2016-02-28 12:11:16 +01:00
setup.cfg Initial commit; Import from ogn-python 2016-02-28 12:11:16 +01:00
setup.py Release v0.7.1 2017-06-05 10:07:04 +02:00

README.md

python-ogn-client

[Build Status] (https://travis-ci.org/glidernet/python-ogn-client) [PyPi Version] (https://pypi.python.org/pypi/ogn-client) [Coverage Status] (https://coveralls.io/github/glidernet/python-ogn-client?branch=master)

A python3 module for the Open Glider Network. It can be used to connect to the OGN-APRS-Servers and to parse APRS-/OGN-Messages.

A full featured gateway with build-in database is provided by ogn-python.

Example Usage

Parse APRS/OGN packet.

from ogn.parser import parse_aprs, parse_ogn_beacon
from datetime import date, time

beacon = parse_aprs("FLRDDDEAD>APRS,qAS,EDER:/114500h5029.86N/00956.98E'342/049/A=005524 id0ADDDEAD -454fpm -1.1rot 8.8dB 0e +51.2kHz gps4x5",
                    reference_date=date(2016,1,1), reference_time=time(11,46))
beacon.update(parse_ogn_beacon(beacon['comment']))

Connect to OGN and display all incoming beacons.

from ogn.client import AprsClient
from ogn.parser import parse_aprs, parse_ogn_beacon, ParseError

def process_beacon(raw_message):
    if raw_message[0] == '#':
        print('Server Status: {}'.format(raw_message))
        return
    try:
        beacon = parse_aprs(raw_message)
        beacon.update(parse_ogn_beacon(beacon['comment']))
        print('Received {beacon_type} from {name}'.format(**beacon))
    except ParseError as e:
        print('Error, {}'.format(e.message))

client = AprsClient(aprs_user='N0CALL')
client.connect()

try:
    client.run(callback=process_beacon, autoreconnect=True)
except KeyboardInterrupt:
    print('\nStop ogn gateway')
    client.disconnect()

License

Licensed under the AGPLv3.