Ejemplo n.º 1
0
class TestReadWriteHeader(unittest.TestCase):
    """
    Test for reading and writing header data.

    Start a ringbuffer instance and write some data to the header block,
    then read it back.
    """
    def setUp(self):
        """Test setup."""
        os.system("dada_db -d 2> /dev/null ; dada_db -k dada")

        self.writer = Writer()
        self.writer.connect(0xdada)

        self.reader = Reader()
        self.reader.connect(0xdada)

    def tearDown(self):
        """Test teardown."""
        self.writer.disconnect()
        self.reader.disconnect()

        os.system("dada_db -d -k dada 2> /dev/null")

    def test_writing_header(self):
        """
        Header reading and writing test.

        Read a previously written header from the ringbuffer,
        and test if the headers are equal.
        """
        self.writer.setHeader(HEADER_TEST_DATA)
        header = self.reader.getHeader()

        del header['__RAW_HEADER__']
        self.assertDictEqual(header, HEADER_TEST_DATA)
Ejemplo n.º 2
0
"""
Show how to read multiple datasets, separated by EODs.

Version with iterors.
"""
import numpy as np

from psrdada import Reader

reader = Reader(0xdbda)

nheader = 0
done = False
while not done:
    nheader += 1
    header = reader.getHeader()

    del header['__RAW_HEADER__']  # prettier output

    print(nheader, header)
    if 'QUIT' in header.keys():
        print('Header contains the QUIT key, so we quit')
        done = True
    else:
        # loop over the pages until EOD is encountered
        # the EOD flag is (like mark_cleared etc.) automagically kept in sync
        npages = 0
        for page in reader:
            npages += 1
            data = np.asarray(page)
            print("page:", npages, np.sum(data))