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")
Пример #2
0
    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")
Пример #3
0
    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)