Ejemplo n.º 1
0
    def measurement_loop(self):
        self.HH.start_T2_mode()
        self.HH.calibrate()
        rawdata_idx = 1
        t_ofl = 0
        t_lastsync = 0

        # note: for the live data, 32 bit is enough ('u4') since timing uses overflows.
        dset_hhtime = self.h5data.create_dataset('HH_time-{}'.format(rawdata_idx), 
            (0,), 'u8', maxshape=(None,))
        dset_hhchannel = self.h5data.create_dataset('HH_channel-{}'.format(rawdata_idx), 
            (0,), 'u1', maxshape=(None,))
        dset_hhspecial = self.h5data.create_dataset('HH_special-{}'.format(rawdata_idx), 
            (0,), 'u1', maxshape=(None,))
        dset_hhsynctime = self.h5data.create_dataset('HH_sync_time-{}'.format(rawdata_idx), 
            (0,), 'u8', maxshape=(None,))
        
        current_dset_length = 0

        self.HH.StartMeas(int(MSMT_TIME*1e3))

        while self.HH.get_MeasRunning():
            _length, _data = self.HH.get_TTTR_Data()
            
            if _length > 0:
                _t, _c, _s = self._HH_decode(_data[:_length])
                hhtime, hhchannel, hhspecial, sync_time, newlength, t_ofl, t_lastsync = \
                    T2_tools.LDE_live_filter(_t, _c, _s, t_ofl, t_lastsync)

                if newlength > 0:

                    dset_hhtime.resize((current_dset_length+newlength,))
                    dset_hhchannel.resize((current_dset_length+newlength,))
                    dset_hhspecial.resize((current_dset_length+newlength,))
                    dset_hhsynctime.resize((current_dset_length+newlength,))

                    dset_hhtime[current_dset_length:] = hhtime
                    dset_hhchannel[current_dset_length:] = hhchannel
                    dset_hhspecial[current_dset_length:] = hhspecial
                    dset_hhsynctime[current_dset_length:] = sync_time

                    current_dset_length += newlength
                    self.h5data.flush()