From 7d5dafa649625b9d0d1628514fb9fa2e273c1a04 Mon Sep 17 00:00:00 2001 From: Rossen Georgiev Date: Sun, 12 Mar 2017 12:33:13 +0200 Subject: [PATCH] PositionReport: validate lat and long added input validation for latitude and longitude --- aprslib/packets/position.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/aprslib/packets/position.py b/aprslib/packets/position.py index 664193e..84f9c0f 100644 --- a/aprslib/packets/position.py +++ b/aprslib/packets/position.py @@ -5,8 +5,31 @@ from aprslib.util import latitude_to_ddm, longitude_to_ddm, comment_altitude class PositionReport(APRSPacket): format = 'uncompressed' - latitude = 0 - longitude = 0 + + _latitude = 0 + @property + def latitude(self): + return self._latitude + + @latitude.setter + def latitude(self, val): + if -90 <= val <= 90: + self._latitude = val + else: + raise ValueError("Latitude outside of -90 to 90 degree range") + + _longitude = 0 + @property + def longitude(self): + return self._longitude + + @longitude.setter + def longitude(self, val): + if -180 <= val <= 180: + self._longitude = val + else: + raise ValueError("Longitude outside of -180 to 180 degree range") + symbol_table = '/' symbol = 'l' altitude = None