Пример #1
0
    def _export_jls(self):
        view = self._view
        cfg = self._cfg
        sampling_frequency = view.sampling_frequency
        sample_step_size = sampling_frequency
        stream_buffer = StreamBuffer(sampling_frequency * 2, [])
        data_recorder = DataRecorder(cfg['filename'],
                                     calibration=view.calibration.data,
                                     sampling_frequency=sampling_frequency)
        data_recorder.process(stream_buffer)

        try:
            idx_start = cfg['sample_id_start']
            idx_stop = cfg['sample_id_stop']
            idx_range = idx_stop - idx_start
            idx = idx_start
            self.sigProgress.emit(0)
            while not self._stop and idx < idx_stop:
                log.info('export_jls iteration')
                idx_next = idx + sample_step_size
                if idx_next > idx_stop:
                    idx_next = idx_stop
                data = view.raw_get(idx, idx_next)
                log.info('export_jls (%d, %d) -> %d', idx, idx_next, len(data))
                stream_buffer.insert_raw(data)
                stream_buffer.process()
                data_recorder.process(stream_buffer)
                idx = idx_next
                self.sigProgress.emit(int(1000 * (idx - idx_start) /
                                          idx_range))
        finally:
            data_recorder.close()
Пример #2
0
    def _create_large_file(self, samples=None):
        """Create a large file.

        :param samples: The total number of samples which will be rounded
            to a full USB packet.
        """
        sample_rate = 2000000
        samples_total = sample_rate * 2
        packets_per_burst = 128
        bursts = int(
            np.ceil(samples / (SAMPLES_PER_PACKET * packets_per_burst)))
        stream_buffer = StreamBuffer(sample_rate, [100])
        fh = io.BytesIO()
        d = DataRecorder(fh, sampling_frequency=sample_rate)
        d.process(stream_buffer)
        for burst_index in range(bursts):
            packet_index = burst_index * packets_per_burst
            frames = usb_packet_factory_signal(packet_index,
                                               count=packets_per_burst,
                                               samples_total=samples_total)
            stream_buffer.insert(frames)
            stream_buffer.process()
            d.process(stream_buffer)
        d.close()
        fh.seek(0)

        # dfr = datafile.DataFileReader(fh)
        # dfr.pretty_print()
        # fh.seek(0)

        return fh
Пример #3
0
    def _create_file(self, packet_index, count=None):
        stream_buffer = StreamBuffer(2000, [10])
        stream_buffer.suppress_mode = 'off'
        if packet_index > 0:
            data = usb_packet_factory(0, packet_index - 1)
            stream_buffer.insert(data)
            stream_buffer.process()

        fh = io.BytesIO()
        d = DataRecorder(fh, sampling_frequency=1000)
        d.process(stream_buffer)
        data = usb_packet_factory(packet_index, count)
        stream_buffer.insert(data)
        stream_buffer.process()
        d.process(stream_buffer)
        d.close()
        fh.seek(0)

        # from joulescope import datafile
        # dfr = datafile.DataFileReader(fh)
        # dfr.pretty_print()
        # fh.seek(0)
        return fh