forked from M-Labs/artiq
moninj: Python-side fixes
This commit is contained in:
parent
7481eaff52
commit
26654e6a3a
|
@ -51,15 +51,15 @@ class MonInjComm:
|
||||||
async def _receive_cr(self):
|
async def _receive_cr(self):
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
ty = await self.reader.read(1)
|
ty = await self._reader.read(1)
|
||||||
if not ty:
|
if not ty:
|
||||||
return
|
return
|
||||||
if ty == "\x00":
|
if ty == b"\x00":
|
||||||
payload = await self.reader.read(9)
|
payload = await self._reader.read(9)
|
||||||
channel, probe, value = struct.unpack(">lbl", payload)
|
channel, probe, value = struct.unpack(">lbl", payload)
|
||||||
self.monitor_cb(channel, probe, value)
|
self.monitor_cb(channel, probe, value)
|
||||||
elif ty == "\x01":
|
elif ty == b"\x01":
|
||||||
payload = await self.reader.read(6)
|
payload = await self._reader.read(6)
|
||||||
channel, override, value = struct.unpack(">lbb", payload)
|
channel, override, value = struct.unpack(">lbb", payload)
|
||||||
self.injection_status_cb(channel, override, value)
|
self.injection_status_cb(channel, override, value)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -70,7 +70,7 @@ class _TTLWidget(QtWidgets.QFrame):
|
||||||
self.override.clicked.connect(self.override_toggled)
|
self.override.clicked.connect(self.override_toggled)
|
||||||
self.level.clicked.connect(self.level_toggled)
|
self.level.clicked.connect(self.level_toggled)
|
||||||
|
|
||||||
self.cur_value = False
|
self.cur_level = False
|
||||||
self.cur_oe = False
|
self.cur_oe = False
|
||||||
self.cur_override = False
|
self.cur_override = False
|
||||||
self.refresh_display()
|
self.refresh_display()
|
||||||
|
@ -105,7 +105,7 @@ class _TTLWidget(QtWidgets.QFrame):
|
||||||
self.set_mode(self.channel, "0")
|
self.set_mode(self.channel, "0")
|
||||||
|
|
||||||
def refresh_display(self):
|
def refresh_display(self):
|
||||||
value_s = "1" if self.cur_value else "0"
|
value_s = "1" if self.cur_level else "0"
|
||||||
if self.cur_override:
|
if self.cur_override:
|
||||||
value_s = "<b>" + value_s + "</b>"
|
value_s = "<b>" + value_s + "</b>"
|
||||||
color = " color=\"red\""
|
color = " color=\"red\""
|
||||||
|
@ -122,7 +122,7 @@ class _TTLWidget(QtWidgets.QFrame):
|
||||||
self.override.setChecked(self.cur_override)
|
self.override.setChecked(self.cur_override)
|
||||||
if self.cur_override:
|
if self.cur_override:
|
||||||
self.stack.setCurrentIndex(1)
|
self.stack.setCurrentIndex(1)
|
||||||
self.level.setChecked(self.cur_value)
|
self.level.setChecked(self.cur_level)
|
||||||
finally:
|
finally:
|
||||||
self.programmatic_change = False
|
self.programmatic_change = False
|
||||||
|
|
||||||
|
@ -173,7 +173,7 @@ class _DDSWidget(QtWidgets.QFrame):
|
||||||
TTL_PROBE_LEVEL = 0
|
TTL_PROBE_LEVEL = 0
|
||||||
TTL_PROBE_OE = 1
|
TTL_PROBE_OE = 1
|
||||||
|
|
||||||
TTL_OVERRIDE_ENABLE = 0
|
TTL_OVERRIDE_EN = 0
|
||||||
TTL_OVERRIDE_LEVEL = 1
|
TTL_OVERRIDE_LEVEL = 1
|
||||||
TTL_OVERRIDE_OE = 2
|
TTL_OVERRIDE_OE = 2
|
||||||
|
|
||||||
|
@ -272,6 +272,8 @@ class _DeviceManager:
|
||||||
if self.core_connection is not None:
|
if self.core_connection is not None:
|
||||||
self.core_connection.monitor(enable, channel, TTL_PROBE_LEVEL)
|
self.core_connection.monitor(enable, channel, TTL_PROBE_LEVEL)
|
||||||
self.core_connection.monitor(enable, channel, TTL_PROBE_OE)
|
self.core_connection.monitor(enable, channel, TTL_PROBE_OE)
|
||||||
|
if enable:
|
||||||
|
self.core_connection.get_injection_status(channel, TTL_OVERRIDE_EN)
|
||||||
|
|
||||||
def setup_dds_monitoring(self, enable, bus_channel, channel):
|
def setup_dds_monitoring(self, enable, bus_channel, channel):
|
||||||
if self.core_connection is not None:
|
if self.core_connection is not None:
|
||||||
|
@ -285,7 +287,7 @@ class _DeviceManager:
|
||||||
elif probe == TTL_PROBE_OE:
|
elif probe == TTL_PROBE_OE:
|
||||||
widget.cur_oe = bool(value)
|
widget.cur_oe = bool(value)
|
||||||
widget.refresh_display()
|
widget.refresh_display()
|
||||||
if (bus_channel, channel) in self.dds_widgets_by_channel:
|
if (channel, probe) in self.dds_widgets_by_channel:
|
||||||
widget = self.dds_widgets_by_channel[(channel, probe)]
|
widget = self.dds_widgets_by_channel[(channel, probe)]
|
||||||
widget.cur_frequency = value*self.dds_sysclk/2**32
|
widget.cur_frequency = value*self.dds_sysclk/2**32
|
||||||
widget.refresh_display()
|
widget.refresh_display()
|
||||||
|
|
Loading…
Reference in New Issue