add ui update

This commit is contained in:
remilia 2025-01-20 17:37:18 +08:00
parent 8887c358d2
commit eb2a316100
3 changed files with 34 additions and 26 deletions

View File

@ -8,6 +8,7 @@ from PyQt6.QtWidgets import QMainWindow, QApplication, QFrame
from Main import Ui_MainWindow from Main import Ui_MainWindow
from ZMQReceiver import ZMQReceiver from ZMQReceiver import ZMQReceiver
from config import DS
from nodes.Node import Node from nodes.Node import Node
from utils.Msg import KillMsg, Msg, ImageArgMsg, SelectSeqMsg, SeqIdMinMax, MoveAxisMsg, SeqListMsg, SetBaseMsg, \ from utils.Msg import KillMsg, Msg, ImageArgMsg, SelectSeqMsg, SeqIdMinMax, MoveAxisMsg, SeqListMsg, SetBaseMsg, \
SeqMetaMsg, SetPlayMode, DeviceConnectedMsg, DeviceEnabledMsg, DeviceOnlineMsg, SetDeviceEnabledMsg, \ SeqMetaMsg, SetPlayMode, DeviceConnectedMsg, DeviceEnabledMsg, DeviceOnlineMsg, SetDeviceEnabledMsg, \
@ -31,7 +32,7 @@ class Adv(QMainWindow, Ui_MainWindow):
zmq_receiver.start() zmq_receiver.start()
self.s_t_start.valueChanged.connect(self.on_t_start) self.s_t_start.valueChanged.connect(self.on_t_start)
self.s_t_end.valueChanged.connect(self.on_t_end) self.s_t_end.valueChanged.connect(self.on_t_end)
self.comboBox.currentIndexChanged.connect(self.cbc) self.c_playback_seq_name.currentIndexChanged.connect(self.cbc)
self.s_sid.valueChanged.connect(self.c_sid) self.s_sid.valueChanged.connect(self.c_sid)
self.arg = ImageArgMsg('ui', t_start=0, t_end=1499) self.arg = ImageArgMsg('ui', t_start=0, t_end=1499)
self.b_base.clicked.connect(lambda: self.p.send(SetBaseMsg(self.l_base.text()))) self.b_base.clicked.connect(lambda: self.p.send(SetBaseMsg(self.l_base.text())))
@ -45,28 +46,35 @@ class Adv(QMainWindow, Ui_MainWindow):
# self.b_device_enabled.clicked.connect(lambda: self.p.send(SetDeviceEnabledMsg(not self.device_enabled))) # self.b_device_enabled.clicked.connect(lambda: self.p.send(SetDeviceEnabledMsg(not self.device_enabled)))
# self.b_device_connected.clicked.connect(lambda: self.p.send(SetDeviceConnectedMsg(not self.device_connected))) # self.b_device_connected.clicked.connect(lambda: self.p.send(SetDeviceConnectedMsg(not self.device_connected)))
self.c_seq_meta.currentIndexChanged.connect(self.on_m) self.c_seq_meta.currentIndexChanged.connect(self.on_m)
self.l_base.setText(DS.__str__())
def set_device_connection(self, status: LinkStatus): def set_device_connection(self, status: LinkStatus):
match status: match status:
case LinkStatus.RED: case LinkStatus.RED:
self.device_connected = False
self.c_seq_meta.setEnabled(False)
self.lb_device_connection.setText('Disconnected') self.lb_device_connection.setText('Disconnected')
self.lb_device_connection.setStyleSheet('background-color: pink;') self.lb_device_connection.setStyleSheet('background-color: pink;')
case LinkStatus.YELLOW: case LinkStatus.YELLOW:
self.lb_device_connection.setText('Waiting') self.lb_device_connection.setText('Waiting')
self.lb_device_connection.setStyleSheet('background-color: yellow;') self.lb_device_connection.setStyleSheet('background-color: yellow;')
case LinkStatus.GREEN: case LinkStatus.GREEN:
self.device_connected = True
self.c_seq_meta.setEnabled(True)
self.lb_device_connection.setText('Connected') self.lb_device_connection.setText('Connected')
self.lb_device_connection.setStyleSheet('background-color: LightGreen;') self.lb_device_connection.setStyleSheet('background-color: LightGreen;')
def set_device_enable(self, status: LinkStatus): def set_device_enable(self, status: LinkStatus):
match status: match status:
case LinkStatus.RED: case LinkStatus.RED:
self.device_enabled = False
self.lb_device_enable.setText('Disabled') self.lb_device_enable.setText('Disabled')
self.lb_device_enable.setStyleSheet('background-color: pink;') self.lb_device_enable.setStyleSheet('background-color: pink;')
case LinkStatus.YELLOW: case LinkStatus.YELLOW:
self.lb_device_enable.setText('Waiting') self.lb_device_enable.setText('Waiting')
self.lb_device_enable.setStyleSheet('background-color: yellow;') self.lb_device_enable.setStyleSheet('background-color: yellow;')
case LinkStatus.GREEN: case LinkStatus.GREEN:
self.device_enabled = True
self.lb_device_enable.setText('Enabled') self.lb_device_enable.setText('Enabled')
self.lb_device_enable.setStyleSheet('background-color: LightGreen;') self.lb_device_enable.setStyleSheet('background-color: LightGreen;')
@ -77,16 +85,16 @@ class Adv(QMainWindow, Ui_MainWindow):
self.l_record_commit.setEnabled(True) self.l_record_commit.setEnabled(True)
self.p.send(SeqMetaMsg(self.c_seq_meta.itemText(self.c_seq_meta.currentIndex()))) self.p.send(SeqMetaMsg(self.c_seq_meta.itemText(self.c_seq_meta.currentIndex())))
self.p.send(SetPlayMode('live')) self.p.send(SetPlayMode('live'))
self.comboBox.setEnabled(False) self.c_playback_seq_name.setEnabled(False)
def on_play_playback(self): def on_play_playback(self):
self.b_play_live.setStyleSheet('') self.b_play_live.setStyleSheet('')
self.b_play_playback.setStyleSheet('background-color: red;') self.b_play_playback.setStyleSheet('background-color: red;')
self.b_record.setEnabled(False) self.b_record.setEnabled(False)
self.l_record_commit.setEnabled(False) self.l_record_commit.setEnabled(False)
self.p.send(SeqMetaMsg(self.comboBox.itemText(self.comboBox.currentIndex()))) self.p.send(SeqMetaMsg(self.c_playback_seq_name.itemText(self.c_playback_seq_name.currentIndex())))
self.p.send(SetPlayMode('playback')) self.p.send(SetPlayMode('playback'))
self.comboBox.setEnabled(True) self.c_playback_seq_name.setEnabled(True)
def on_device_disable(self): def on_device_disable(self):
self.p.send(SetDeviceEnabledMsg(False)) self.p.send(SetDeviceEnabledMsg(False))
@ -184,31 +192,27 @@ class Adv(QMainWindow, Ui_MainWindow):
self.s_sid.setMaximum(msg.max) self.s_sid.setMaximum(msg.max)
self.s_sid.setValue(msg.min) self.s_sid.setValue(msg.min)
elif isinstance(msg, SeqListMsg): elif isinstance(msg, SeqListMsg):
self.comboBox.setEnabled(True) self.c_playback_seq_name.setEnabled(True)
self.comboBox.clear() self.c_playback_seq_name.clear()
for name in msg.value: for name in msg.value:
self.comboBox.addItem(name) self.c_playback_seq_name.addItem(name)
self.p.send(SelectSeqMsg(self.comboBox.itemText(self.comboBox.currentIndex()))) if msg.value.__len__() > 0:
self.b_play_playback.setEnabled(True) self.p.send(SelectSeqMsg(self.c_playback_seq_name.itemText(self.c_playback_seq_name.currentIndex())))
self.b_play_playback.setEnabled(True)
elif isinstance(msg, SeqMetaMsg): elif isinstance(msg, SeqMetaMsg):
self.seq_meta = RfSequenceMeta.from_name(msg.s) self.seq_meta = RfSequenceMeta.from_name(msg.s)
self.s_t_start.setMaximum(max(self.seq_meta.shape)) self.s_t_start.setMaximum(max(self.seq_meta.shape))
self.s_t_end.setMaximum(max(self.seq_meta.shape)) self.s_t_end.setMaximum(max(self.seq_meta.shape))
elif isinstance(msg, DeviceConnectedMsg): elif isinstance(msg, DeviceConnectedMsg):
if msg.value: if msg.value:
self.device_connected = True
self.set_device_connection(LinkStatus.GREEN) self.set_device_connection(LinkStatus.GREEN)
else: else:
self.device_connected = False
self.set_device_connection(LinkStatus.RED) self.set_device_connection(LinkStatus.RED)
self.update_device_buttons() self.update_device_buttons()
elif isinstance(msg, DeviceEnabledMsg): elif isinstance(msg, DeviceEnabledMsg):
if msg.value: if msg.value:
self.device_enabled = True
self.set_device_enable(LinkStatus.GREEN) self.set_device_enable(LinkStatus.GREEN)
else: else:
self.device_enabled = False
self.set_device_enable(LinkStatus.RED) self.set_device_enable(LinkStatus.RED)
self.update_device_buttons() self.update_device_buttons()
elif isinstance(msg, DeviceOnlineMsg): elif isinstance(msg, DeviceOnlineMsg):
@ -244,8 +248,8 @@ class Adv(QMainWindow, Ui_MainWindow):
@QtCore.pyqtSlot(int) @QtCore.pyqtSlot(int)
def cbc(self, v): def cbc(self, v):
if self.comboBox.sender() is None or isinstance(self.comboBox.sender(), QFrame): if self.c_playback_seq_name.sender() is None or isinstance(self.c_playback_seq_name.sender(), QFrame):
self.p.send(SelectSeqMsg(self.comboBox.itemText(v))) self.p.send(SelectSeqMsg(self.c_playback_seq_name.itemText(v)))
@QtCore.pyqtSlot(int) @QtCore.pyqtSlot(int)
def c_sid(self, v): def c_sid(self, v):

View File

@ -34,12 +34,12 @@ class Ui_MainWindow(object):
self.b_play_playback.setStyleSheet("background-color : red") self.b_play_playback.setStyleSheet("background-color : red")
self.b_play_playback.setObjectName("b_play_playback") self.b_play_playback.setObjectName("b_play_playback")
self.gridLayout_7.addWidget(self.b_play_playback, 0, 0, 1, 3) self.gridLayout_7.addWidget(self.b_play_playback, 0, 0, 1, 3)
self.comboBox = QtWidgets.QComboBox(parent=self.centralwidget) self.c_playback_seq_name = QtWidgets.QComboBox(parent=self.centralwidget)
self.comboBox.setEnabled(False) self.c_playback_seq_name.setEnabled(False)
self.comboBox.setEditable(False) self.c_playback_seq_name.setEditable(False)
self.comboBox.setObjectName("comboBox") self.c_playback_seq_name.setObjectName("c_playback_seq_name")
self.comboBox.addItem("") self.c_playback_seq_name.addItem("")
self.gridLayout_7.addWidget(self.comboBox, 1, 1, 1, 2) self.gridLayout_7.addWidget(self.c_playback_seq_name, 1, 1, 1, 2)
self.label_16 = QtWidgets.QLabel(parent=self.centralwidget) self.label_16 = QtWidgets.QLabel(parent=self.centralwidget)
self.label_16.setObjectName("label_16") self.label_16.setObjectName("label_16")
self.gridLayout_7.addWidget(self.label_16, 1, 0, 1, 1) self.gridLayout_7.addWidget(self.label_16, 1, 0, 1, 1)
@ -212,6 +212,7 @@ class Ui_MainWindow(object):
self.label_20.setObjectName("label_20") self.label_20.setObjectName("label_20")
self.horizontalLayout.addWidget(self.label_20) self.horizontalLayout.addWidget(self.label_20)
self.c_seq_meta = QtWidgets.QComboBox(parent=self.centralwidget) self.c_seq_meta = QtWidgets.QComboBox(parent=self.centralwidget)
self.c_seq_meta.setEnabled(False)
self.c_seq_meta.setObjectName("c_seq_meta") self.c_seq_meta.setObjectName("c_seq_meta")
self.c_seq_meta.addItem("") self.c_seq_meta.addItem("")
self.horizontalLayout.addWidget(self.c_seq_meta) self.horizontalLayout.addWidget(self.c_seq_meta)
@ -257,6 +258,7 @@ class Ui_MainWindow(object):
self.label.setObjectName("label") self.label.setObjectName("label")
self.horizontalLayout_4.addWidget(self.label) self.horizontalLayout_4.addWidget(self.label)
self.l_base = QtWidgets.QLineEdit(parent=self.centralwidget) self.l_base = QtWidgets.QLineEdit(parent=self.centralwidget)
self.l_base.setText("")
self.l_base.setObjectName("l_base") self.l_base.setObjectName("l_base")
self.horizontalLayout_4.addWidget(self.l_base) self.horizontalLayout_4.addWidget(self.l_base)
self.b_base = QtWidgets.QPushButton(parent=self.centralwidget) self.b_base = QtWidgets.QPushButton(parent=self.centralwidget)
@ -312,7 +314,7 @@ class Ui_MainWindow(object):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label_4.setText(_translate("MainWindow", "Frame ID")) self.label_4.setText(_translate("MainWindow", "Frame ID"))
self.b_play_playback.setText(_translate("MainWindow", "Playback")) self.b_play_playback.setText(_translate("MainWindow", "Playback"))
self.comboBox.setItemText(0, _translate("MainWindow", "Unset")) self.c_playback_seq_name.setItemText(0, _translate("MainWindow", "Unset"))
self.label_16.setText(_translate("MainWindow", "SeqName")) self.label_16.setText(_translate("MainWindow", "SeqName"))
self.b_record.setText(_translate("MainWindow", "Record")) self.b_record.setText(_translate("MainWindow", "Record"))
self.label_17.setText(_translate("MainWindow", "RecordName")) self.label_17.setText(_translate("MainWindow", "RecordName"))
@ -341,7 +343,6 @@ class Ui_MainWindow(object):
self.lb_device_enable.setText(_translate("MainWindow", "Disabled")) self.lb_device_enable.setText(_translate("MainWindow", "Disabled"))
self.label_21.setText(_translate("MainWindow", "<html><head/><body><p style=\"line-height:0.3\" align=\"center\">Connection</p><p align=\"center\">Status</p></body></html>")) self.label_21.setText(_translate("MainWindow", "<html><head/><body><p style=\"line-height:0.3\" align=\"center\">Connection</p><p align=\"center\">Status</p></body></html>"))
self.label.setText(_translate("MainWindow", "Base Path")) self.label.setText(_translate("MainWindow", "Base Path"))
self.l_base.setText(_translate("MainWindow", "/mnt/16T/private_dataset/us/"))
self.b_base.setText(_translate("MainWindow", "Open")) self.b_base.setText(_translate("MainWindow", "Open"))
self.l_robot_pos.setText(_translate("MainWindow", "0,0,0,0,0,0")) self.l_robot_pos.setText(_translate("MainWindow", "0,0,0,0,0,0"))
self.l_robot_force.setText(_translate("MainWindow", "0,0,0,0,0,0")) self.l_robot_force.setText(_translate("MainWindow", "0,0,0,0,0,0"))

View File

@ -48,7 +48,7 @@
</widget> </widget>
</item> </item>
<item row="1" column="1" colspan="2"> <item row="1" column="1" colspan="2">
<widget class="QComboBox" name="comboBox"> <widget class="QComboBox" name="c_playback_seq_name">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>
@ -387,6 +387,9 @@
</item> </item>
<item> <item>
<widget class="QComboBox" name="c_seq_meta"> <widget class="QComboBox" name="c_seq_meta">
<property name="enabled">
<bool>false</bool>
</property>
<item> <item>
<property name="text"> <property name="text">
<string>Empty</string> <string>Empty</string>
@ -485,7 +488,7 @@
<item> <item>
<widget class="QLineEdit" name="l_base"> <widget class="QLineEdit" name="l_base">
<property name="text"> <property name="text">
<string>/mnt/16T/private_dataset/us/</string> <string/>
</property> </property>
</widget> </widget>
</item> </item>