def __init__(self, fs_new=128, channels=1): super(EpochViewer, self).__init__() self.resize(1000, 1800) self.fs_new = fs_new self.setWindowTitle('Epoch Viewer') self.monitor = QDesktopWidget().screenGeometry(0) self.move(self.monitor.left(), self.monitor.top()) self.plots = [] streams = resolve_byprop( "type", "EPOCH", timeout=20) # Contains information about all available lsl inlets if StreamInfo.type(streams[0]) == 'EPOCH': self.inlet_epoch = StreamInlet(streams[0]) self.info = self.inlet_epoch.info() ch = self.info.desc().child("channels").child("channel") # Check if LSL contains channel labels if self.info.desc().child("channels").child("channel").child_value( "label"): self.channels = [] for k in range(channels): self.channels.append(ch.child_value("label")) ch = ch.next_sibling() else: self.channels = [] for i in range(0, channels): self.channels.append("Channel " + str(i + 1)) self.x = np.linspace(-0.2, 0.8, self.fs_new) self.legend = None self.target = True self.non_target = True self.epochOneAlphas = np.array([0.8, 1, 0.1, 0.2, 0.3]) self.epochTwoAlphas = np.array([0.8, 1, 0.1, 0.2, 0.3]) self.epochOneWidth = np.array([3, 5, 0.2, 0.5, 1]) self.epochTwoWidth = np.array([3, 5, 0.2, 0.5, 1]) self.linesPlotted = False self.epochOne = [[0 for i in range(5)] for c in range(len(self.channels))] self.epochTwo = [[0 for i in range(5)] for c in range(len(self.channels))] self.epochOneIndex = 0 self.epochTwoIndex = 0 self.ci.layout.setColumnMaximumWidth(0, 700) self.ci.layout.setColumnMaximumWidth(1, 700) for i in range(len(self.channels)): p = self.addPlot(title="%s" % self.channels[i], rowspan=1) # p.setYRange(-2, 2) self.plots.append(p) # p.addLegend() if i == 0: l = pg.LegendItem((10, 10), offset=(-10, 10)) l.setParentItem(p.graphicsItem()) self.legend = l p.enableAutoRange(axis=pg.ViewBox.YAxis, enable=True) # p.enableAutoRange(x=False, y=True) if i % 2: self.nextRow() self.createTimer()