kopia lustrzana https://github.com/glidernet/ogn-python
Create aprs login string
rodzic
4fe0a29793
commit
3ab10cfb68
|
@ -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)
|
||||
|
|
|
@ -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')
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
Ładowanie…
Reference in New Issue