Esempio n. 1
0
    def parse(self, text, reference_time=None):
        result = prog.match(text)
        if result is None:
            raise Exception("String is not valid" % text)

        self.name = result.group(1)
        self.receiver_name = result.group(2)

        self.timestamp = createTimestamp(result.group(3), reference_time)

        self.latitude = dmsToDeg(float(result.group(4)) / 100)
        if result.group(5) == "S":
            self.latitude = -self.latitude

        self.symboltable = result.group(6)

        self.longitude = dmsToDeg(float(result.group(7)) / 100)
        if result.group(8) == "W":
            self.longitude = -self.longitude

        self.symbolcode = result.group(9)

        if result.group(10) is not None:
            self.track = int(result.group(11))
            self.ground_speed = int(result.group(12))*kts2kmh
        else:
            self.track = 0
            self.ground_speed = 0

        self.altitude = int(result.group(13))*feet2m

        self.comment = result.group(14)
Esempio n. 2
0
 def test_createTimestamp_big_difference(self):
     with self.assertRaises(Exception):
         createTimestamp(datetime(2015, 10, 15, 23, 59, 59), '123456')
Esempio n. 3
0
 def test_createTimestamp_seconds_before(self):
     timestamp = createTimestamp('000001', datetime(2015, 10, 15, 23, 59, 59))
     self.assertEqual(timestamp,           datetime(2015, 10, 16,  0,  0,  1))
Esempio n. 4
0
 def test_createTimestamp_seconds_behind(self):
     timestamp = createTimestamp('235959', datetime(2015, 10, 16,  0,  0,  1))
     self.assertEqual(timestamp,           datetime(2015, 10, 15, 23, 59, 59))