コード例 #1
0
ファイル: sixty15.py プロジェクト: blastur/flightrecorder
    def act20(self):
        self.write('ACT_20_00\r\n')
        line = self.readline(0.5)
        if re.match('\A\s*No\s+Data\s*\r\n\Z', line):
            return []
        tracks = []

        def igc_lambda(self, index):
            return lambda: self.iact21(index)
        while True:
            if line == ' Done\r\n':
                break
            fields = re.split(r'\s*;\s*', line)
            index = int(fields[0])
            year, month, day = (int(x) for x in fields[1].split('.'))
            hour, minute, second = (int(x) for x in fields[2].split(':'))
            hours, minutes, seconds = (int(x) for x in fields[4].split(':'))
            tracks.append(Track(
                index=index,
                datetime=datetime.datetime(year + 2000, month, day, hour, minute, second, tzinfo=UTC()),
                utc_offset=int(fields[3]),
                duration=datetime.timedelta(seconds=3600 * hours + 60 * minutes + seconds),
                altitude_offset=int(fields[5]),
                altitude_max=int(fields[6]),
                altitude_min=int(fields[7]),
                vario_max=float(fields[8]),
                vario_min=float(fields[9]),
                speed_max=float(fields[10]),
                pilot_name=fields[11].strip(),
                glider_type=fields[12].strip(),
                glider_id=fields[13].strip(),
                _igc_lambda=igc_lambda(self, index)))
            line = self.readline(0.5)
        return add_igc_filenames(tracks, self.manufacturer[:3].upper(), self.serial_number)
コード例 #2
0
ファイル: flymaster.py プロジェクト: twpayne/flightrecorder
    def pfmdnl_lst(self):
        tracks = []

        def igc_lambda(self, dt):
            return lambda: self.igc_helper(self.ipfmdnl(dt))

        for m in self.ieach('PFMDNL,LST,', PFMDNL_LST_RE):
            count, index, day, month, year, hour, minute, second = map(
                int,
                m.groups()[:8])
            hours, minutes, seconds = map(int, m.groups()[8:11])
            dt = datetime.datetime(year + 2000,
                                   month,
                                   day,
                                   hour,
                                   minute,
                                   second,
                                   tzinfo=UTC())
            tracks.append(
                Track(index=index,
                      datetime=dt,
                      duration=datetime.timedelta(hours=hours,
                                                  minutes=minutes,
                                                  seconds=seconds),
                      _igc_lambda=igc_lambda(self, dt)))
            if index + 1 == count:
                break
        return add_igc_filenames(tracks, 'XFR', self.serial_number)
コード例 #3
0
    def pbrtle(self):
        tracks = []

        def igc_lambda(self, index):
            return lambda: self.ipbrtr(index)

        for m in self.ieach('PBRTLE,', PBRTLE_RE, 0.5):
            index = int(m.group(2))
            day, month, year, hour, minute, second = (int(i)
                                                      for i in m.groups()[2:8])
            hours, minutes, seconds = (int(i) for i in m.groups()[8:11])
            tracks.append(
                Track(count=int(m.group(1)),
                      index=index,
                      datetime=datetime.datetime(year + 2000,
                                                 month,
                                                 day,
                                                 hour,
                                                 minute,
                                                 second,
                                                 tzinfo=UTC()),
                      duration=datetime.timedelta(hours=hours,
                                                  minutes=minutes,
                                                  seconds=seconds),
                      max_a1=int(m.group(12)),
                      max_a2=int(m.group(13)),
                      max_a3=int(m.group(14)),
                      scan_rate=int(m.group(15)),
                      _igc_lambda=igc_lambda(self, index)))
        return add_igc_filenames(tracks, self.manufacturer, self.serial_number)
コード例 #4
0
ファイル: fifty20.py プロジェクト: imclab/flightrecorder
 def pbrtl(self):
     tracks = []
     def igc_lambda(self, index):
         return lambda: self.ipbrtr(index)
     for m in self.ieach('PBRTL,', PBRTL_RE, 0.5):
         index = int(m.group(2))
         day, month, year, hour, minute, second = (int(i) for i in m.groups()[2:8])
         hours, minutes, seconds = (int(i) for i in m.groups()[8:11])
         tracks.append(Track(
             count=int(m.group(1)),
             index=index,
             datetime=datetime.datetime(year + 2000, month, day, hour, minute, second, tzinfo=UTC()),
             duration=datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds),
             _igc_lambda=igc_lambda(self, index)))
     return add_igc_filenames(tracks, self.manufacturer[:3].upper(), self.serial_number)
コード例 #5
0
ファイル: flymaster.py プロジェクト: imclab/flightrecorder
 def pfmdnl_lst(self):
     tracks = []
     def igc_lambda(self, dt):
         return lambda: self.igc_helper(self.ipfmdnl(dt))
     for m in self.ieach('PFMDNL,LST,', PFMDNL_LST_RE):
         count, index, day, month, year, hour, minute, second = map(int, m.groups()[:8])
         hours, minutes, seconds = map(int, m.groups()[8:11])
         dt = datetime.datetime(year + 2000, month, day, hour, minute, second, tzinfo=UTC())
         tracks.append(Track(
             index=index,
             datetime=dt,
             duration=datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds),
             _igc_lambda=igc_lambda(self, dt)))
         if index + 1 == count:
             break
     return add_igc_filenames(tracks, 'XFR', self.serial_number)
コード例 #6
0
ファイル: sixty15.py プロジェクト: imclab/flightrecorder
    def act20(self):
        self.write('ACT_20_00\r\n')
        line = self.readline(0.5)
        if re.match('\A\s*No\s+Data\s*\r\n\Z', line):
            return []
        tracks = []

        def igc_lambda(self, index):
            return lambda: self.iact21(index)

        while True:
            if line == ' Done\r\n':
                break
            fields = re.split(r'\s*;\s*', line)
            index = int(fields[0])
            year, month, day = (int(x) for x in fields[1].split('.'))
            hour, minute, second = (int(x) for x in fields[2].split(':'))
            hours, minutes, seconds = (int(x) for x in fields[4].split(':'))
            tracks.append(
                Track(index=index,
                      datetime=datetime.datetime(year + 2000,
                                                 month,
                                                 day,
                                                 hour,
                                                 minute,
                                                 second,
                                                 tzinfo=UTC()),
                      utc_offset=int(fields[3]),
                      duration=datetime.timedelta(seconds=3600 * hours +
                                                  60 * minutes + seconds),
                      altitude_offset=int(fields[5]),
                      altitude_max=int(fields[6]),
                      altitude_min=int(fields[7]),
                      vario_max=float(fields[8]),
                      vario_min=float(fields[9]),
                      speed_max=float(fields[10]),
                      pilot_name=fields[11].strip(),
                      glider_type=fields[12].strip(),
                      glider_id=fields[13].strip(),
                      _igc_lambda=igc_lambda(self, index)))
            line = self.readline(0.5)
        return add_igc_filenames(tracks, self.manufacturer[:3].upper(),
                                 self.serial_number)