Create aprs login string

pull/8/head^2
Konstantin Gründger 2015-11-23 20:40:44 +01:00
rodzic 4fe0a29793
commit 3ab10cfb68
4 zmienionych plików z 21 dodań i 7 usunięć

Wyświetl plik

@ -34,3 +34,10 @@ def createTimestamp(hhmmss, reference):
elif abs(reference.hour - hh) > 1:
raise Exception("Time difference is too big. Reference time:%s - timestamp:%s" % (reference, hhmmss))
return datetime(reference.year, reference.month, reference.day, hh, mm, ss)
def create_aprs_login(user_name, pass_code, app_name, app_version, aprs_filter=None):
if not aprs_filter:
return "user %s pass %s vers %s %s\n" % (user_name, pass_code, app_name, app_version)
else:
return "user %s pass %s vers %s %s filter %s\n" % (user_name, pass_code, app_name, app_version, aprs_filter)

Wyświetl plik

@ -4,6 +4,7 @@ from time import time
from ogn.gateway import settings
from ogn.commands.dbutils import session
from ogn.aprs_parser import parse_aprs
from ogn.aprs_utils import create_aprs_login
from ogn.exceptions import AprsParseError, OgnParseError
from ogn.logger import logger
@ -11,8 +12,6 @@ from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from ogn.model import Base
MODULE_VERSION = "0.1"
class ognGateway:
def __init__(self):
@ -27,7 +26,7 @@ class ognGateway:
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
self.sock.connect((settings.APRS_SERVER_HOST, settings.APRS_SERVER_PORT))
login = 'user %s pass %s vers ogn-gateway-python %s %s\n' % (aprs_user, settings.APRS_PASSCODE, MODULE_VERSION, settings.APRS_FILTER)
login = create_aprs_login(aprs_user, -1, settings.APRS_APP_NAME, settings.APRS_APP_VER, settings.APRS_FILTER)
self.sock.send(login.encode())
self.sock_file = self.sock.makefile('rw')

Wyświetl plik

@ -1,7 +1,7 @@
APRS_SERVER_HOST = 'aprs.glidernet.org'
APRS_SERVER_PORT = 14580
APRS_USER = 'PyGrabber'
APRS_PASSCODE = -1 # Read only
APRS_APP_NAME = 'ogn-gateway-python'
APRS_APP_VER = '0.2'
APRS_FILTER = "filter r/+50.0000/+10.0000/5000"
APRS_FILTER = 'r/50.0000/10.0000/5000'
APRS_KEEPALIVE_TIME = 240

Wyświetl plik

@ -1,7 +1,7 @@
import unittest
from datetime import datetime
from ogn.aprs_utils import dmsToDeg, createTimestamp
from ogn.aprs_utils import dmsToDeg, createTimestamp, create_aprs_login
class TestStringMethods(unittest.TestCase):
@ -21,5 +21,13 @@ class TestStringMethods(unittest.TestCase):
with self.assertRaises(Exception):
createTimestamp(datetime(2015, 10, 15, 23, 59, 59), '123456')
def test_create_aprs_login(self):
basic_login = create_aprs_login('klaus', -1, 'myApp', '0.1')
self.assertEqual('user klaus pass -1 vers myApp 0.1\n', basic_login)
login_with_filter = create_aprs_login('klaus', -1, 'myApp', '0.1', 'r/48.0/11.0/100')
self.assertEqual('user klaus pass -1 vers myApp 0.1 filter r/48.0/11.0/100\n', login_with_filter)
if __name__ == '__main__':
unittest.main()