def run(self, timeout_ms=30000):
    '[test run the interface forever, just getting and storing data]\n\n        Args:\n            timeout_ms (int, optional): [description]. Defaults to 30000.\n        '
    t0 = self.getTimeStamp()
    tstart = self.data_timestamp
    trlen_ms = 5000
    while (self.getTimeStamp() < (t0 + timeout_ms)):
        self.update()
        if (tstart is None):
            tstart = self.data_timestamp
        if (tstart and (self.data_timestamp > (tstart + trlen_ms))):
            X = self.extract_data_segment(tstart, (tstart + trlen_ms))
            print('Got data: {}->{}\n{}'.format(tstart, (tstart + trlen_ms), X[:, (- 1)]))
            Y = self.extract_stimulus_segment(tstart, (tstart + trlen_ms))
            print('Got stimulus: {}->{}\n{}'.format(tstart, (tstart + trlen_ms), Y[:, (- 1)]))
            tstart = (self.data_timestamp + 5000)
        print('.', flush=True)
[test run the interface forever, just getting and storing data]

Args:
    timeout_ms (int, optional): [description]. Defaults to 30000.
def run(self, timeout_ms=30000):
    '[test run the interface forever, just getting and storing data]\n\n        Args:\n            timeout_ms (int, optional): [description]. Defaults to 30000.\n        '
    t0 = self.getTimeStamp()
    tstart = self.data_timestamp
    trlen_ms = 5000
    while (self.getTimeStamp() < (t0 + timeout_ms)):
        self.update()
        if (tstart is None):
            tstart = self.data_timestamp
        if (tstart and (self.data_timestamp > (tstart + trlen_ms))):
            X = self.extract_data_segment(tstart, (tstart + trlen_ms))
            print('Got data: {}->{}\n{}'.format(tstart, (tstart + trlen_ms), X[:, (- 1)]))
            Y = self.extract_stimulus_segment(tstart, (tstart + trlen_ms))
            print('Got stimulus: {}->{}\n{}'.format(tstart, (tstart + trlen_ms), Y[:, (- 1)]))
            tstart = (self.data_timestamp + 5000)
        print('.', flush=True)