forked from M-Labs/artiq
1
0
Fork 0

waveform: add LogWaveform

Simon Renblad 2024-01-26 13:29:35 +08:00
parent 6c9f1cbf7c
commit 55f7583c9b
1 changed files with 28 additions and 0 deletions

View File

@ -99,6 +99,34 @@ class ReceiverProxyClient(_BaseProxyClient):
await self.receiver.close()
class LogWaveform(_BaseWaveform):
def __init__(self, name, width, parent=None):
_BaseWaveform.__init__(self, name, width, parent, pen=None, symbol="x")
def onDataChange(self, data):
try:
x_data = zip(*data)[0]
self.plot_data_item.setData(
x=x_data, y=np.ones(len(x_data)))
old_msg = ""
old_x = 0
for x, msg in data:
if x == old_x:
old_msg += "\n" + msg
else:
lbl = pg.TextItem(old_msg)
self.addItem(lbl)
lbl.setPos(old_x, 1)
old_msg = msg
old_x = x
lbl = pg.TextItem(old_msg)
self.addItem(lbl)
lbl.setPos(old_x, 1)
except:
logger.error('Error caught when displaying waveform: {}'.format(self.name), exc_info=True)
self.plot_data_item.setData(x=[], y=[])
class _WaveformModel(QtCore.QAbstractTableModel):
def __init__(self):
self.backing_struct = []