From 9b79261240c37ca000bd42bff7152ce449e7f0c9 Mon Sep 17 00:00:00 2001 From: Rossen Georgiev Date: Fri, 2 Jan 2015 14:06:24 +0000 Subject: [PATCH 1/3] added ambiguity parsing for normal packets --- aprslib/parse.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/aprslib/parse.py b/aprslib/parse.py index a45f1fd..f55445a 100644 --- a/aprslib/parse.py +++ b/aprslib/parse.py @@ -818,7 +818,17 @@ def _parse_normal(body): body ) = match[0] - # TODO: position ambiguity + # position ambiguity + posambiguity = lat_min.count(' ') + parsed.update({'posambiguity': posambiguity}) + + # we center the position inside the ambiguity box + if posambiguity >= 4: + lat_min = "30" + lon_min = "30" + else: + lat_min = lat_min.replace(' ', '5', 1) + lon_min = lon_min.replace(' ', '5', 1) # validate longitude and latitude @@ -839,7 +849,6 @@ def _parse_normal(body): """ # convert coordinates from DDMM.MM to decimal - latitude = int(lat_deg) + (float(lat_min) / 60.0) longitude = int(lon_deg) + (float(lon_min) / 60.0) From fdc69ac7a02edb6e5877e24a056056a35942d528 Mon Sep 17 00:00:00 2001 From: Rossen Georgiev Date: Fri, 2 Jan 2015 14:13:06 +0000 Subject: [PATCH 2/3] renamed reloading variables --- aprslib/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/aprslib/__init__.py b/aprslib/__init__.py index 168b9f3..45996ff 100644 --- a/aprslib/__init__.py +++ b/aprslib/__init__.py @@ -25,10 +25,13 @@ Currently the library provides facilities to: # handles reloading if 'IS' in globals(): - modules = __import__('sys').modules - for m in modules.keys(): - if m[:len(__name__)+1] == "%s." % __name__: - del modules[m] + MODULES = __import__('sys').modules + for M in MODULES.keys(): + if M[:len(__name__)+1] == "%s." % __name__: + del MODULES[M] + + del MODULES + del M from datetime import date as _date __date__ = str(_date.today()) From ef531ca1c9069a2f5eb17845258ee1881288227d Mon Sep 17 00:00:00 2001 From: Rossen Georgiev Date: Fri, 2 Jan 2015 14:15:00 +0000 Subject: [PATCH 3/3] bump to v0.6.33 --- CHANGES | 5 +++++ aprslib/__init__.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index fa9b14c..67feec3 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,11 @@ CHANGES ------- +# v0.6.33 + +- added ambiguity parsing for normal position reports + (fixes the unexpected exception) + # v0.6.32 - sendall() method to IS, allows sending of packets diff --git a/aprslib/__init__.py b/aprslib/__init__.py index 45996ff..b3b9dfb 100644 --- a/aprslib/__init__.py +++ b/aprslib/__init__.py @@ -37,7 +37,7 @@ from datetime import date as _date __date__ = str(_date.today()) del _date -__version__ = "0.6.32" +__version__ = "0.6.33" __author__ = "Rossen Georgiev" __all__ = ['IS', 'parse', 'passcode']