コード例 #1
0
 def test_time_string_fidelity(self):
     it1 = NTP4Time()
     ntp_str = it1.to_string()
     it2 = NTP4Time.from_string(ntp_str)
     
     self.assertEquals(it1.seconds,it2.seconds)
     self.assertTrue(np.abs(it1.useconds - it2.useconds) <= 1)
コード例 #2
0
    def test_ntp_compatability(self):
        unix_day = NTP4Time(datetime.datetime(1970, 1, 1))
        self.assertEquals(unix_day.era, 0)
        self.assertEquals(unix_day.seconds, 2208988800)

        utc_day = NTP4Time(datetime.datetime(1972, 1, 1))
        self.assertEquals(utc_day.era, 0)
        self.assertEquals(utc_day.seconds, 2272060800)

        millen_day = NTP4Time(datetime.datetime(2000, 1, 1))
        self.assertEquals(millen_day.era, 0)
        self.assertEquals(millen_day.seconds, 3155673600)

        ntp_era1 = NTP4Time(datetime.datetime(2036, 2, 8))
        self.assertEquals(ntp_era1.era, 1)
        self.assertEquals(ntp_era1.seconds, 63104)
        self.assertEquals(ntp_era1.to_unix(), 2086041600.)
コード例 #3
0
 def _extract_row(self, pkt, cols):
     row = []
     for c in cols:
         for ch in pkt['channels']:
             if ch['chan'] == c:
                 row.append(tuple(ch['data']))
                 break
     orbtime = pkt['channels'][0]['time']
     row.append(NTP4Time(orbtime).to_ntp64())
     return row
コード例 #4
0
ファイル: cdip_plugin.py プロジェクト: scion-network/scion
    def acquire_samples(self, max_samples=0):
        log.debug('CDIP_DataAgentPlugin.acquire_samples')

        # Read server, extract last sample.
        data = requests.get(self.streaming_args.url)
        m = None
        for m in re.finditer(pattern, data.text, flags=re.MULTILINE):
            pass
        if not m:
            log.warning('CDIP_DataAgentPlugin.acquire_samples: No data found.')
            return None

        year = int(m.group(1))
        month = int(m.group(2))
        day = int(m.group(3))
        hour = int(m.group(4))
        minute = int(m.group(5))
        Hs = float(m.group(6))
        Tp = float(m.group(7))
        Dp = int(m.group(8))
        Ta = float(m.group(9))
        Temp = float(m.group(10))

        # Create sample.
        # [ntp64_ts, Hs, Tp, Dp, Ta, Temp]
        # ['\xdb\x07\x00,\x00\x00\x00\x00', 2.66, 9.09, 328, 6.67, 12.2]
        dt = datetime.datetime(year, month, day, hour, minute)
        ts = NTP4Time(dt).to_ntp64()
        sample = [ts, Hs, Tp, Dp, Ta, Temp]

        # Compare to last reading.
        if self.last_sample == sample:
            log.debug('CDIP_DataAgentPlugin.acquire_samples: No new data.')
            return None

        # Update, pack and return.
        log.debug('CDIP_DataAgentPlugin.acquire_samples: Got new data.')
        log.debug('CDIP data: %s' % str(sample))
        self.last_sample = sample
        sample_desc = dict(cols=["time", "Hs", "Tp", "Dp", "Ta", "Temp"],
                           data=[sample])
        return sample_desc
コード例 #5
0
    def acquire_samples(self, max_samples=0):
        if len(self.samples) <= self.sample_index:
            log.warn("Out of samples at index %s", self.sample_index)
            self.sample_index += 1
            return None

        data_row = self.samples[self.sample_index]
        self.sample_index += 1

        sample = [
            NTP4Time(data_row["time"]).to_ntp64(),
            tuple(data_row["sample_vector"])
        ]

        sample_desc = dict(cols=["time", "sample_vector"],
                           coltypes=dict(sample_vector="10i2"),
                           data=[sample])

        print sample_desc

        return sample_desc
コード例 #6
0
    def _get_data_packet(self, index, num_rows=1):
        """ Return a data packet with number of samples.
        The index indicates the offset from the starting timestamp, 10 sec per sample."""
        base_ts = 1000000000
        index_ts = base_ts + 10 * index

        # Core samples as provided by agent.acquire_samples
        sample_list = []
        for i in xrange(num_rows):
            ts = index_ts + i * 10
            sample = [
                NTP4Time(ts).to_ntp64(),
                float(index + i),
                random.random() * 100
            ]

            sample_list.append(sample)

        sample_desc = dict(cols=["time", "var1", "random1"], data=sample_list)

        packet = DataPacketBuilder.build_packet_from_samples(
            sample_desc, resource_id="ds_id", stream_name="basic_streams")

        return packet
コード例 #7
0
    def test_unix_time_fidelity(self):
        ts = time.time()
        it1 = NTP4Time(ts)

        ts_2 = it1.to_unix()
        self.assertTrue(np.abs(ts - ts_2) <= 1e-3)
コード例 #8
0
 def test_time_ntp_fidelity(self):
     it1 = NTP4Time()
     ntp_ts = it1.to_ntp64()
     it2 = NTP4Time.from_ntp64(ntp_ts)
     self.assertEquals(it1.seconds,it2.seconds)
     self.assertTrue(np.abs(it1.useconds - it2.useconds) <= 1)