예제 #1
0
 def major_data(self, inval):
     """
     read in and add major data to the class
     """
     inval = FIREdata.hex2int(inval)
     dt = FIREdata.dat2time(inval[0:8])
     d1 = FIREdata.dat2time(inval[ majorTimelen:])
     self.dat['Epoch'] = dm.dmarray.append(self.dat['Epoch'], dt)
     self.dat['Time'] = dm.dmarray.append(self.dat['Time'], d1)
예제 #2
0
 def major_data(self, inval):
     """
     read in and add major data to the class
     """
     if (np.asarray(inval) == 0).all(): # is this line fill?
         return
     dt = FIREdata.dat2time(inval[0:8])
     d1 = FIREdata.dat2time(inval[ self._majorTimelen:])
     self.append([dt, d1])
예제 #3
0
 def test_dat2time(self):
     """dat2time has known behaviour"""
     self.assertEqual(
         FIREdata.dat2time("0D 04 12 12 28 38 00 55"), datetime.datetime(2013, 4, 18, 18, 40, 56, 85000)
     )
     self.assertEqual(
         FIREdata.dat2time("0D 04 12 12 28 38 00 55".split(" ")), datetime.datetime(2013, 4, 18, 18, 40, 56, 85000)
     )
     self.assertEqual(
         FIREdata.dat2time([int(v, 16) for v in "0D 04 12 12 28 38 00 55".split(" ")]),
         datetime.datetime(2013, 4, 18, 18, 40, 56, 85000),
     )
     self.assertTrue(FIREdata.dat2time([int(v, 16) for v in "0D 15 12 12 28 38 00 55".split(" ")]) is None)
예제 #4
0
파일: hires.py 프로젝트: abcrew/FIREL0-L1
 def majorStamps(self):
     """
     return the major time stamps
     """
     major = []
     for v in self:
         if v.pktnum == '01': # this is a major stamp
             major.append(v)
     stamps = []
     for v in major:
         stamps.append(FIREdata.dat2time(FIREdata.hex2int(v.data[:8])))
     return stamps
예제 #5
0
파일: context.py 프로젝트: abcrew/FIREL0-L1
 def major_data(self, inval):
     """
     read in and add major data to the class
     """
     if (np.asarray(inval) == 0).all(): # is this line fill?
         return
     dt = FIREdata.dat2time(inval[0:8])
     d1 = np.asarray(inval[ majorTimelen:])
     d1 = np.asanyarray(['{0}'.format(v) for v in d1])
     d2 = int(d1[2] + d1[1] + d1[0], 16)
     d3 = int(d1[5] + d1[4] + d1[3], 16)
     dout = [d2, d3]
     self.append( (dt, dout) )
예제 #6
0
    def __init__(self, inpage, h):
        len1 = datalen+majorTimelen
        len2 = datalen+minorTimelen
        dat = FIREdata.hex2int(inpage)

        if len(inpage) == len1: # major
            try:
                self.t0 = FIREdata.dat2time(dat[0:8])
                self.major_data(dat)
            except ValueError:
                return
            print("\tData at time {0} decoded".format(self[-1][0].isoformat()))
        elif len(inpage) == len2: # minor
            try:
                self.minor_data(dat, h)
            except ValueError:
                return
예제 #7
0
    def __init__(self, inpage):
        self._datalen = 8
        self._majorTimelen = 8
        dat = inpage.split(' ')
        dat = [int(v, 16) for v in dat]

        self.t0 = FIREdata.dat2time(inpage[0:25])

        # now the data length is 8
        for ii in range(0, len(dat), self._datalen): # the index of the start of each FIRE data
            stop = ii+self._datalen+self._majorTimelen  # 24 bytes of data and 2 for a minor time stamp
            self.major_data(dat[ii:stop])
        # cull any bad data
        ## this has None in place of data
        self = [v for v in self if None not in v]    
        # sort the data
        self = sorted(self, key = lambda x: x[0])
예제 #8
0
    def __init__(self, inpage):
        self._datalen = 24
        self._majorTimelen = 8
        self._minorTimelen = 2

        dat = inpage.split(' ')
        dat = [int(v, 16) for v in dat]

        self.t0 = FIREdata.dat2time(inpage[0:25])
        # now the data length is 24
        self.major_data(dat[0:self._datalen+self._majorTimelen])
        start = self._datalen+self._majorTimelen
        for ii in range(start, len(dat), self._datalen+self._minorTimelen): # the index of the start of each FIRE data
            stop = ii+self._datalen+self._minorTimelen  # 24 bytes of data and 2 for a minor time stamp
            self.minor_data(dat[ii:stop])
        # sort the data
        self = sorted(self, key = lambda x: x[0])
예제 #9
0
파일: context.py 프로젝트: abcrew/FIREL0-L1
 def __init__(self, inpage):
     len1 = datalen+majorTimelen
     len2 = datalen+minorTimelen
     dat = FIREdata.hex2int(inpage)
     try:
         self.t0 = FIREdata.dat2time(dat[0:8])
     except ValueError:
         return
     self.major_data(dat[0:datalen+majorTimelen])
     start = datalen+majorTimelen
     # the index of the start of each FIRE data
     for ii in range(start, len(dat), datalen+minorTimelen):
         stop = ii+datalen+majorTimelen
         try:
             self.minor_data(dat[ii:stop])
         except IndexError: # malformed data for some reason, skip it
             print("Skipping malformed context: {0}".format(dat[ii:stop]))
     # sort the data
     self = sorted(self, key = lambda x: x[0])
예제 #10
0
    def major_data(self, inval):
        """
        read in and add major data to the class
        """
        dt = FIREdata.dat2time(inval[0:8])
        # there are 10 times 100ms each before this one

        # dt is the time that was in the fill stamp
        #   the data that follow are each 100 ms after dt
        dt2 = [dt + datetime.timedelta(microseconds=100e3)*i for i in range(0,10)]
        # get the data from inval
        d1 = np.asarray(inval[ majorTimelen:])
        # change in the invals back to hex so that they can be
        #    split on the nibble
        d1 = np.asanyarray(['{:02x}'.format(v) for v in d1])
        # split them on the nibble
        d2 = [int(v[0], 16) for v in d1]
        d3 = [int(v[1], 16) for v in d1]
        dout = zip(d2, d3)
        for v1, v2 in zip(dt2, dout):
            self.append( (v1, v2) )