def test_position_comment(self): message = SpiderParser.parse_position("id300234010617040 +19dB LWE 3D") self.assertEqual(message['address'], "300234010617040") self.assertEqual(message['signal_power'], 19) self.assertEqual(message['spider_id'], "LWE") self.assertEqual(message['gps_quality'], "3D")
def test_position_comment(self): message = SpiderParser().parse_position( "id300234060668560 +30dB K23W 3D") self.assertEqual(message['spider_id'], "300234060668560") self.assertEqual(message['signal_power'], 30) self.assertEqual(message['spider_registration'], "K23W") self.assertEqual(message['gps_quality'], "3D")
return result dstcall_parser_mapping = { 'APRS': OgnParser(), 'OGNFNT': FanetParser(), 'OGFLR': FlarmParser(), 'OGNTRK': TrackerParser(), 'OGNSDR': ReceiverParser(), 'OGCAPT': GenericParser(beacon_type='capturs'), 'OGFLYM': GenericParser(beacon_type='flymaster'), 'OGINRE': InreachParser(), 'OGLT24': LT24Parser(), 'OGNAVI': NaviterParser(), 'OGPAW': GenericParser(beacon_type='pilot_aware'), 'OGSKYL': SkylinesParser(), 'OGSPID': SpiderParser(), 'OGSPOT': SpotParser(), 'GENERIC': GenericParser(beacon_type='unknown'), } def parse_comment(aprs_comment, dstcall='APRS', aprs_type="position"): parser = dstcall_parser_mapping.get(dstcall) if parser: return parser.parse(aprs_comment, aprs_type) else: return dstcall_parser_mapping.get('GENERIC').parse( aprs_comment, aprs_type)