fix many add windows
This commit is contained in:
parent
6b93db3442
commit
daa30c0818
@ -1,5 +1,9 @@
|
|||||||
|
import dataclasses
|
||||||
|
import json
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
from PIL.TiffImagePlugin import SOFTWARE
|
||||||
|
|
||||||
PLAYBACK_SOCKET_PORT = 5003
|
PLAYBACK_SOCKET_PORT = 5003
|
||||||
PLAYBACK_SOCKET = f'127.0.0.1:{PLAYBACK_SOCKET_PORT}'
|
PLAYBACK_SOCKET = f'127.0.0.1:{PLAYBACK_SOCKET_PORT}'
|
||||||
LIVE_SOCKET_IP = '11.6.1.66'
|
LIVE_SOCKET_IP = '11.6.1.66'
|
||||||
@ -22,5 +26,30 @@ LAST_CONFIG = BASE / 'config' / 'last_imaging_config.json'
|
|||||||
|
|
||||||
CONFIG_FOLDER.mkdir(exist_ok=True)
|
CONFIG_FOLDER.mkdir(exist_ok=True)
|
||||||
|
|
||||||
|
SOFTWARE_CONFIG_PATH = BASE / 'software.json'
|
||||||
|
|
||||||
|
|
||||||
|
@dataclasses.dataclass
|
||||||
|
class SoftwareConfig:
|
||||||
|
base_dir: Path = DS
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def read_config():
|
||||||
|
j = json.loads(SOFTWARE_CONFIG_PATH.read_text(encoding='utf-8'))
|
||||||
|
sc = SoftwareConfig()
|
||||||
|
sc.base_dir = Path(j['base_dir'])
|
||||||
|
return sc
|
||||||
|
|
||||||
|
def write_config(self):
|
||||||
|
SOFTWARE_CONFIG_PATH.write_text(json.dumps(dict(
|
||||||
|
base_dir=self.base_dir.__str__(),
|
||||||
|
), indent=4), encoding='utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
SOFTWARE_CONFIG = SoftwareConfig()
|
||||||
|
|
||||||
|
if SOFTWARE_CONFIG_PATH.exists():
|
||||||
|
SOFTWARE_CONFIG = SoftwareConfig.read_config()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print(BASE)
|
print(SOFTWARE_CONFIG)
|
||||||
|
|||||||
@ -13,6 +13,7 @@ from utils.Msg import BMMsg, ImageArgMsg, KillMsg, SeqMetaMsg, SetPlayMode, SetD
|
|||||||
RecordFrameMsg
|
RecordFrameMsg
|
||||||
from utils.RfFile import RfFrame, RfSequenceMeta
|
from utils.RfFile import RfFrame, RfSequenceMeta
|
||||||
from utils.RfMat import RfMat
|
from utils.RfMat import RfMat
|
||||||
|
from utils.RfMeta import RfFrameMeta
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -20,8 +21,8 @@ logger = logging.getLogger(__name__)
|
|||||||
class Beamformer(Node):
|
class Beamformer(Node):
|
||||||
topics = [ImageArgMsg, SeqMetaMsg, SetPlayMode, SetDeviceConfigMsg, SetRecordMsg]
|
topics = [ImageArgMsg, SeqMetaMsg, SetPlayMode, SetDeviceConfigMsg, SetRecordMsg]
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, level=logging.INFO):
|
||||||
super(Beamformer, self).__init__()
|
super(Beamformer, self).__init__(level=level)
|
||||||
self.arg = ImageArgMsg('', t_start=0, t_end=1499)
|
self.arg = ImageArgMsg('', t_start=0, t_end=1499)
|
||||||
self.seq_meta_live = None
|
self.seq_meta_live = None
|
||||||
self.seq_meta_playback = None
|
self.seq_meta_playback = None
|
||||||
@ -63,19 +64,18 @@ class Beamformer(Node):
|
|||||||
socks = dict(self.c.poller.poll())
|
socks = dict(self.c.poller.poll())
|
||||||
if device_socket in socks and socks[device_socket] == zmq.POLLIN:
|
if device_socket in socks and socks[device_socket] == zmq.POLLIN:
|
||||||
buffer = device_socket.recv()
|
buffer = device_socket.recv()
|
||||||
|
logger.debug(f'device receive {buffer.__len__()}')
|
||||||
_, sequence_id, encoder = struct.unpack_from('=iqi', buffer)
|
_, sequence_id, encoder = struct.unpack_from('=iqi', buffer)
|
||||||
s = buffer[4 + 8 + 4:]
|
s = buffer[4 + 8 + 4:]
|
||||||
seq_meta = None
|
logger.debug(f'live meta {self.seq_meta_live}, playback meta {self.seq_meta_playback}')
|
||||||
match self.play_mode:
|
seq_meta: RfSequenceMeta | None = {
|
||||||
case 'live':
|
"live": self.seq_meta_live,
|
||||||
seq_meta = self.seq_meta_live
|
"playback": self.seq_meta_playback,
|
||||||
case 'playback':
|
}.get(self.play_mode, None)
|
||||||
seq_meta = self.seq_meta_playback
|
|
||||||
|
|
||||||
if seq_meta is not None:
|
if seq_meta is not None:
|
||||||
fb1 = cp.frombuffer(s, dtype=cp.int16)
|
fb1 = cp.frombuffer(s, dtype=cp.int16)
|
||||||
if fb1.shape[0] == np.prod(seq_meta.shape):
|
if fb1.shape[0] == np.prod(seq_meta.shape):
|
||||||
mat = RfMat(fb1.reshape(seq_meta.shape), RfFrame.RfFrameMeta(
|
mat = RfMat(fb1.reshape(seq_meta.shape), RfFrameMeta(
|
||||||
encoder=encoder,
|
encoder=encoder,
|
||||||
sequence_id=sequence_id,
|
sequence_id=sequence_id,
|
||||||
), seq_meta)
|
), seq_meta)
|
||||||
@ -98,6 +98,7 @@ class Beamformer(Node):
|
|||||||
if isinstance(msg, ImageArgMsg):
|
if isinstance(msg, ImageArgMsg):
|
||||||
self.arg = msg
|
self.arg = msg
|
||||||
if isinstance(msg, SetPlayMode):
|
if isinstance(msg, SetPlayMode):
|
||||||
|
logger.debug(f'set playmode {msg}')
|
||||||
self.play_mode = msg.value
|
self.play_mode = msg.value
|
||||||
if msg.value == 'live':
|
if msg.value == 'live':
|
||||||
try:
|
try:
|
||||||
@ -111,6 +112,7 @@ class Beamformer(Node):
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
device_socket.connect(f"tcp://{PLAYBACK_SOCKET}")
|
device_socket.connect(f"tcp://{PLAYBACK_SOCKET}")
|
||||||
|
logger.debug('connect to playback')
|
||||||
if isinstance(msg, SetRecordMsg):
|
if isinstance(msg, SetRecordMsg):
|
||||||
self.record_enable = msg.enable
|
self.record_enable = msg.enable
|
||||||
if msg.enable:
|
if msg.enable:
|
||||||
|
|||||||
@ -5,9 +5,9 @@ from pathlib import Path
|
|||||||
|
|
||||||
import zmq
|
import zmq
|
||||||
|
|
||||||
from config import PLAYBACK_SOCKET_PORT
|
from config import PLAYBACK_SOCKET_PORT, SOFTWARE_CONFIG
|
||||||
from nodes.Node import Node
|
from nodes.Node import Node
|
||||||
from utils.Msg import MoveAxisMsg, KillMsg, SelectSeqMsg, SeqMetaMsg, SeqIdMinMax, SetBaseMsg, SeqListMsg
|
from utils.Msg import MoveAxisMsg, KillMsg, SelectSeqMsg, SeqMetaMsg, SeqIdMinMax, SetBaseMsg, SeqListMsg, SeqIdList
|
||||||
from utils.RfFile import RfSequence
|
from utils.RfFile import RfSequence
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -17,32 +17,39 @@ class Loader(Node):
|
|||||||
topics = [MoveAxisMsg, SelectSeqMsg, SetBaseMsg]
|
topics = [MoveAxisMsg, SelectSeqMsg, SetBaseMsg]
|
||||||
|
|
||||||
def loop(self):
|
def loop(self):
|
||||||
s2 = self.context.socket(zmq.PUSH)
|
playback_socket = self.context.socket(zmq.PUSH)
|
||||||
s2.bind(f"tcp://*:{PLAYBACK_SOCKET_PORT}")
|
playback_socket.bind(f"tcp://*:{PLAYBACK_SOCKET_PORT}")
|
||||||
|
|
||||||
# base = Path('/mnt/16T/private_dataset/us/')
|
# base = Path('/mnt/16T/private_dataset/us/')
|
||||||
base: Path | None = None
|
base: Path | None = None
|
||||||
|
|
||||||
rff = None
|
rff = None
|
||||||
while True:
|
while True:
|
||||||
r = self.recv()
|
msg = self.recv()
|
||||||
if isinstance(r, MoveAxisMsg) and rff is not None:
|
if isinstance(msg, MoveAxisMsg) and rff is not None:
|
||||||
logger.debug(f'Move axis: {rff}')
|
logger.debug(f'Move axis: {msg}')
|
||||||
for frame in rff.frames:
|
if msg.axis == 'S':
|
||||||
if frame.meta.sequence_id == r.value:
|
frame = rff.frames[msg.value]
|
||||||
buffer = io.BytesIO()
|
buffer = io.BytesIO()
|
||||||
buffer.write(struct.pack('=iqi', 114514, frame.meta.sequence_id, frame.meta.encoder))
|
buffer.write(struct.pack('=iqi', 114514, frame.meta.sequence_id, frame.meta.encoder))
|
||||||
buffer.write(frame.bytes)
|
buffer.write(frame.bytes)
|
||||||
s2.send(buffer.getvalue())
|
playback_socket.send(buffer.getvalue())
|
||||||
elif isinstance(r, SelectSeqMsg):
|
elif isinstance(msg, SelectSeqMsg):
|
||||||
if base is None:
|
if base is None:
|
||||||
continue
|
continue
|
||||||
rff = RfSequence.from_folder(base / r.value)
|
rff = RfSequence.from_folder(base / msg.value)
|
||||||
self.send(SeqMetaMsg('playback', rff.meta.name))
|
self.send(SeqMetaMsg('playback', rff.meta.name))
|
||||||
self.send(SeqIdMinMax(*rff.seq_id_minmax))
|
self.send(SeqIdMinMax(*rff.seq_id_minmax))
|
||||||
elif isinstance(r, SetBaseMsg):
|
self.send(SeqIdList([f.meta.sequence_id for f in rff.frames]))
|
||||||
base = Path(r.value)
|
elif isinstance(msg, SetBaseMsg):
|
||||||
self.send(SeqListMsg([f.name for f in base.glob('*')]))
|
base = Path(msg.value)
|
||||||
elif isinstance(r, KillMsg):
|
seq_list = [f.name for f in base.glob('*')]
|
||||||
if r.name == '':
|
if not seq_list:
|
||||||
|
logger.warning(f'No sequences found in {base}')
|
||||||
|
else:
|
||||||
|
SOFTWARE_CONFIG.base_dir = base
|
||||||
|
SOFTWARE_CONFIG.write_config()
|
||||||
|
self.send(SeqListMsg(seq_list))
|
||||||
|
elif isinstance(msg, KillMsg):
|
||||||
|
if msg.name == '':
|
||||||
break
|
break
|
||||||
|
|||||||
@ -6,7 +6,7 @@ from pathlib import Path
|
|||||||
|
|
||||||
from PyQt6 import QtCore
|
from PyQt6 import QtCore
|
||||||
from PyQt6.QtCore import QByteArray
|
from PyQt6.QtCore import QByteArray
|
||||||
from PyQt6.QtWidgets import QMainWindow, QApplication, QFrame, QMessageBox
|
from PyQt6.QtWidgets import QMainWindow, QApplication, QFrame, QMessageBox, QFileDialog
|
||||||
|
|
||||||
from Main import Ui_MainWindow
|
from Main import Ui_MainWindow
|
||||||
from ZMQReceiver import ZMQReceiver
|
from ZMQReceiver import ZMQReceiver
|
||||||
@ -14,9 +14,12 @@ 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, \
|
||||||
SetDeviceConnectedMsg, DeviceConfigListMsg, SetDeviceConfigMsg, SetRecordMsg, RobotRtsiMsg, RecordFrameMsg
|
SetDeviceConnectedMsg, DeviceConfigListMsg, SetDeviceConfigMsg, SetRecordMsg, RobotRtsiMsg, RecordFrameMsg, \
|
||||||
|
SeqIdList
|
||||||
from utils.RfMeta import RfSequenceMeta
|
from utils.RfMeta import RfSequenceMeta
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class LinkStatus(Enum):
|
class LinkStatus(Enum):
|
||||||
RED = auto()
|
RED = auto()
|
||||||
@ -54,7 +57,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.c_playback_seq_name.currentIndexChanged.connect(self.cbc)
|
self.c_playback_seq_name.currentIndexChanged.connect(self.on_select_plyayback_seq_name)
|
||||||
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(self.on_base)
|
self.b_base.clicked.connect(self.on_base)
|
||||||
@ -77,6 +80,14 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
self.record_frame_cnt = 0
|
self.record_frame_cnt = 0
|
||||||
self.update_device_buttons()
|
self.update_device_buttons()
|
||||||
|
|
||||||
|
self.seq_id_list = []
|
||||||
|
|
||||||
|
self.b_select_base.clicked.connect(self.on_select_base)
|
||||||
|
|
||||||
|
def on_select_base(self):
|
||||||
|
base = QFileDialog.getExistingDirectory(self, 'Select Base Folder', DS.__str__())
|
||||||
|
self.l_base.setText(Path(base).__str__())
|
||||||
|
|
||||||
def update_b_play_live_enabled(self):
|
def update_b_play_live_enabled(self):
|
||||||
self.b_play_live.setEnabled(all([self.b1, self.b2]))
|
self.b_play_live.setEnabled(all([self.b1, self.b2]))
|
||||||
|
|
||||||
@ -136,6 +147,7 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
self.l_record_commit.setEnabled(False)
|
self.l_record_commit.setEnabled(False)
|
||||||
self.p.send(SeqMetaMsg('playback', self.c_playback_seq_name.itemText(self.c_playback_seq_name.currentIndex())))
|
self.p.send(SeqMetaMsg('playback', self.c_playback_seq_name.itemText(self.c_playback_seq_name.currentIndex())))
|
||||||
self.p.send(SetPlayMode('playback'))
|
self.p.send(SetPlayMode('playback'))
|
||||||
|
logger.debug(f'set playmode playback')
|
||||||
self.b3 = True
|
self.b3 = True
|
||||||
self.update_c_playback_seq_name_enable()
|
self.update_c_playback_seq_name_enable()
|
||||||
|
|
||||||
@ -235,13 +247,13 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
match msg.axis:
|
match msg.axis:
|
||||||
case 'S':
|
case 'S':
|
||||||
self.s_sid.setValue(msg.value)
|
self.s_sid.setValue(msg.value)
|
||||||
elif isinstance(msg, SeqIdMinMax):
|
self.l_seq_current.setText(str(self.seq_id_list[msg.value]))
|
||||||
self.s_sid.setMinimum(msg.min)
|
elif isinstance(msg, SeqIdList):
|
||||||
self.s_sid.setMaximum(msg.max)
|
self.seq_id_list = msg.li
|
||||||
self.s_sid.setMinimum(msg.min)
|
self.s_sid.setMaximum(msg.li.__len__() - 1)
|
||||||
self.sp_sid.setMaximum(msg.max)
|
self.sp_sid.setMaximum(msg.li.__len__() - 1)
|
||||||
self.sp_sid.setValue(msg.min)
|
self.l_seq_min.setText(str(min(msg.li)))
|
||||||
self.sp_sid.setValue(msg.min)
|
self.l_seq_max.setText(str(max(msg.li)))
|
||||||
elif isinstance(msg, SeqListMsg):
|
elif isinstance(msg, SeqListMsg):
|
||||||
self.b4 = True
|
self.b4 = True
|
||||||
self.update_c_playback_seq_name_enable()
|
self.update_c_playback_seq_name_enable()
|
||||||
@ -306,7 +318,7 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
self.p.send(self.arg)
|
self.p.send(self.arg)
|
||||||
|
|
||||||
@QtCore.pyqtSlot(int)
|
@QtCore.pyqtSlot(int)
|
||||||
def cbc(self, v):
|
def on_select_plyayback_seq_name(self, v):
|
||||||
if self.c_playback_seq_name.sender() is None or isinstance(self.c_playback_seq_name.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.c_playback_seq_name.itemText(v)))
|
self.p.send(SelectSeqMsg(self.c_playback_seq_name.itemText(v)))
|
||||||
|
|
||||||
@ -328,7 +340,7 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
class MainUI(Node):
|
class MainUI(Node):
|
||||||
topics = [ImageArgMsg, SeqIdMinMax, MoveAxisMsg,
|
topics = [ImageArgMsg, SeqIdMinMax, MoveAxisMsg,
|
||||||
SeqListMsg, SeqMetaMsg,
|
SeqListMsg, SeqMetaMsg, SeqIdList,
|
||||||
DeviceConnectedMsg, DeviceEnabledMsg, DeviceOnlineMsg, DeviceConfigListMsg,
|
DeviceConnectedMsg, DeviceEnabledMsg, DeviceOnlineMsg, DeviceConfigListMsg,
|
||||||
RobotRtsiMsg,
|
RobotRtsiMsg,
|
||||||
RecordFrameMsg]
|
RecordFrameMsg]
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# Form implementation generated from reading ui file 'Main.ui'
|
# Form implementation generated from reading ui file '.\Main.ui'
|
||||||
#
|
#
|
||||||
# Created by: PyQt6 UI code generator 6.8.0
|
# Created by: PyQt6 UI code generator 6.8.0
|
||||||
#
|
#
|
||||||
@ -12,7 +12,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets
|
|||||||
class Ui_MainWindow(object):
|
class Ui_MainWindow(object):
|
||||||
def setupUi(self, MainWindow):
|
def setupUi(self, MainWindow):
|
||||||
MainWindow.setObjectName("MainWindow")
|
MainWindow.setObjectName("MainWindow")
|
||||||
MainWindow.resize(1177, 910)
|
MainWindow.resize(936, 479)
|
||||||
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
|
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
|
||||||
self.centralwidget.setObjectName("centralwidget")
|
self.centralwidget.setObjectName("centralwidget")
|
||||||
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
||||||
@ -22,26 +22,50 @@ class Ui_MainWindow(object):
|
|||||||
self.s_sid = QtWidgets.QSlider(parent=self.centralwidget)
|
self.s_sid = QtWidgets.QSlider(parent=self.centralwidget)
|
||||||
self.s_sid.setOrientation(QtCore.Qt.Orientation.Horizontal)
|
self.s_sid.setOrientation(QtCore.Qt.Orientation.Horizontal)
|
||||||
self.s_sid.setObjectName("s_sid")
|
self.s_sid.setObjectName("s_sid")
|
||||||
self.gridLayout_7.addWidget(self.s_sid, 2, 1, 1, 1)
|
self.gridLayout_7.addWidget(self.s_sid, 3, 1, 1, 1)
|
||||||
self.label_4 = QtWidgets.QLabel(parent=self.centralwidget)
|
|
||||||
self.label_4.setObjectName("label_4")
|
|
||||||
self.gridLayout_7.addWidget(self.label_4, 2, 0, 1, 1)
|
|
||||||
self.sp_sid = QtWidgets.QSpinBox(parent=self.centralwidget)
|
self.sp_sid = QtWidgets.QSpinBox(parent=self.centralwidget)
|
||||||
self.sp_sid.setObjectName("sp_sid")
|
self.sp_sid.setObjectName("sp_sid")
|
||||||
self.gridLayout_7.addWidget(self.sp_sid, 2, 2, 1, 1)
|
self.gridLayout_7.addWidget(self.sp_sid, 3, 2, 1, 1)
|
||||||
self.b_play_playback = QtWidgets.QPushButton(parent=self.centralwidget)
|
self.b_play_playback = QtWidgets.QPushButton(parent=self.centralwidget)
|
||||||
self.b_play_playback.setEnabled(False)
|
self.b_play_playback.setEnabled(False)
|
||||||
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.label_16 = QtWidgets.QLabel(parent=self.centralwidget)
|
||||||
|
self.label_16.setObjectName("label_16")
|
||||||
|
self.gridLayout_7.addWidget(self.label_16, 1, 0, 1, 1)
|
||||||
|
self.label_4 = QtWidgets.QLabel(parent=self.centralwidget)
|
||||||
|
self.label_4.setObjectName("label_4")
|
||||||
|
self.gridLayout_7.addWidget(self.label_4, 3, 0, 1, 1)
|
||||||
self.c_playback_seq_name = QtWidgets.QComboBox(parent=self.centralwidget)
|
self.c_playback_seq_name = QtWidgets.QComboBox(parent=self.centralwidget)
|
||||||
self.c_playback_seq_name.setEnabled(False)
|
self.c_playback_seq_name.setEnabled(False)
|
||||||
self.c_playback_seq_name.setEditable(False)
|
self.c_playback_seq_name.setEditable(False)
|
||||||
self.c_playback_seq_name.setObjectName("c_playback_seq_name")
|
self.c_playback_seq_name.setObjectName("c_playback_seq_name")
|
||||||
self.c_playback_seq_name.addItem("")
|
self.c_playback_seq_name.addItem("")
|
||||||
self.gridLayout_7.addWidget(self.c_playback_seq_name, 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.horizontalLayout_5 = QtWidgets.QHBoxLayout()
|
||||||
self.label_16.setObjectName("label_16")
|
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||||
self.gridLayout_7.addWidget(self.label_16, 1, 0, 1, 1)
|
self.label26 = QtWidgets.QLabel(parent=self.centralwidget)
|
||||||
|
self.label26.setObjectName("label26")
|
||||||
|
self.horizontalLayout_5.addWidget(self.label26)
|
||||||
|
self.l_seq_min = QtWidgets.QLabel(parent=self.centralwidget)
|
||||||
|
self.l_seq_min.setObjectName("l_seq_min")
|
||||||
|
self.horizontalLayout_5.addWidget(self.l_seq_min)
|
||||||
|
self.label_28 = QtWidgets.QLabel(parent=self.centralwidget)
|
||||||
|
self.label_28.setObjectName("label_28")
|
||||||
|
self.horizontalLayout_5.addWidget(self.label_28)
|
||||||
|
self.l_seq_current = QtWidgets.QLabel(parent=self.centralwidget)
|
||||||
|
self.l_seq_current.setObjectName("l_seq_current")
|
||||||
|
self.horizontalLayout_5.addWidget(self.l_seq_current)
|
||||||
|
self.label_29 = QtWidgets.QLabel(parent=self.centralwidget)
|
||||||
|
self.label_29.setObjectName("label_29")
|
||||||
|
self.horizontalLayout_5.addWidget(self.label_29)
|
||||||
|
self.l_seq_max = QtWidgets.QLabel(parent=self.centralwidget)
|
||||||
|
self.l_seq_max.setObjectName("l_seq_max")
|
||||||
|
self.horizontalLayout_5.addWidget(self.l_seq_max)
|
||||||
|
self.horizontalLayout_5.setStretch(1, 1)
|
||||||
|
self.horizontalLayout_5.setStretch(3, 1)
|
||||||
|
self.horizontalLayout_5.setStretch(5, 1)
|
||||||
|
self.gridLayout_7.addLayout(self.horizontalLayout_5, 2, 0, 1, 3)
|
||||||
self.gridLayout.addLayout(self.gridLayout_7, 1, 1, 1, 1)
|
self.gridLayout.addLayout(self.gridLayout_7, 1, 1, 1, 1)
|
||||||
self.gridLayout_6 = QtWidgets.QGridLayout()
|
self.gridLayout_6 = QtWidgets.QGridLayout()
|
||||||
self.gridLayout_6.setObjectName("gridLayout_6")
|
self.gridLayout_6.setObjectName("gridLayout_6")
|
||||||
@ -105,7 +129,6 @@ class Ui_MainWindow(object):
|
|||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setPointSize(20)
|
font.setPointSize(20)
|
||||||
font.setBold(False)
|
font.setBold(False)
|
||||||
font.setWeight(50)
|
|
||||||
self.label_3.setFont(font)
|
self.label_3.setFont(font)
|
||||||
self.label_3.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
self.label_3.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
||||||
self.label_3.setObjectName("label_3")
|
self.label_3.setObjectName("label_3")
|
||||||
@ -190,7 +213,6 @@ class Ui_MainWindow(object):
|
|||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setPointSize(20)
|
font.setPointSize(20)
|
||||||
font.setBold(False)
|
font.setBold(False)
|
||||||
font.setWeight(50)
|
|
||||||
self.label_2.setFont(font)
|
self.label_2.setFont(font)
|
||||||
self.label_2.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
self.label_2.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
||||||
self.label_2.setObjectName("label_2")
|
self.label_2.setObjectName("label_2")
|
||||||
@ -282,6 +304,9 @@ class Ui_MainWindow(object):
|
|||||||
self.l_base.setText("")
|
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_select_base = QtWidgets.QPushButton(parent=self.centralwidget)
|
||||||
|
self.b_select_base.setObjectName("b_select_base")
|
||||||
|
self.horizontalLayout_4.addWidget(self.b_select_base)
|
||||||
self.b_base = QtWidgets.QPushButton(parent=self.centralwidget)
|
self.b_base = QtWidgets.QPushButton(parent=self.centralwidget)
|
||||||
self.b_base.setObjectName("b_base")
|
self.b_base.setObjectName("b_base")
|
||||||
self.horizontalLayout_4.addWidget(self.b_base)
|
self.horizontalLayout_4.addWidget(self.b_base)
|
||||||
@ -320,7 +345,7 @@ class Ui_MainWindow(object):
|
|||||||
self.gridLayout.addLayout(self.gridLayout_2, 0, 1, 1, 1)
|
self.gridLayout.addLayout(self.gridLayout_2, 0, 1, 1, 1)
|
||||||
MainWindow.setCentralWidget(self.centralwidget)
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
|
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
|
||||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1177, 30))
|
self.menubar.setGeometry(QtCore.QRect(0, 0, 936, 18))
|
||||||
self.menubar.setObjectName("menubar")
|
self.menubar.setObjectName("menubar")
|
||||||
MainWindow.setMenuBar(self.menubar)
|
MainWindow.setMenuBar(self.menubar)
|
||||||
self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
|
self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
|
||||||
@ -333,10 +358,16 @@ class Ui_MainWindow(object):
|
|||||||
def retranslateUi(self, MainWindow):
|
def retranslateUi(self, MainWindow):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
|
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
|
||||||
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.c_playback_seq_name.setItemText(0, _translate("MainWindow", "Unset"))
|
|
||||||
self.label_16.setText(_translate("MainWindow", "SeqName"))
|
self.label_16.setText(_translate("MainWindow", "SeqName"))
|
||||||
|
self.label_4.setText(_translate("MainWindow", "Frame ID"))
|
||||||
|
self.c_playback_seq_name.setItemText(0, _translate("MainWindow", "Unset"))
|
||||||
|
self.label26.setText(_translate("MainWindow", "Min:"))
|
||||||
|
self.l_seq_min.setText(_translate("MainWindow", "0"))
|
||||||
|
self.label_28.setText(_translate("MainWindow", "Current:"))
|
||||||
|
self.l_seq_current.setText(_translate("MainWindow", "0"))
|
||||||
|
self.label_29.setText(_translate("MainWindow", "Max:"))
|
||||||
|
self.l_seq_max.setText(_translate("MainWindow", "0"))
|
||||||
self.label_17.setText(_translate("MainWindow", "RecordName"))
|
self.label_17.setText(_translate("MainWindow", "RecordName"))
|
||||||
self.b_record.setText(_translate("MainWindow", "Record"))
|
self.b_record.setText(_translate("MainWindow", "Record"))
|
||||||
self.label_18.setText(_translate("MainWindow", "Record Frames:"))
|
self.label_18.setText(_translate("MainWindow", "Record Frames:"))
|
||||||
@ -369,6 +400,7 @@ 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.b_select_base.setText(_translate("MainWindow", "Select"))
|
||||||
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"))
|
||||||
|
|||||||
141
src/ui/Main.ui
141
src/ui/Main.ui
@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1177</width>
|
<width>936</width>
|
||||||
<height>910</height>
|
<height>479</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -17,21 +17,14 @@
|
|||||||
<layout class="QGridLayout" name="gridLayout" rowstretch="0,0,0,0">
|
<layout class="QGridLayout" name="gridLayout" rowstretch="0,0,0,0">
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<layout class="QGridLayout" name="gridLayout_7">
|
<layout class="QGridLayout" name="gridLayout_7">
|
||||||
<item row="2" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QSlider" name="s_sid">
|
<widget class="QSlider" name="s_sid">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="3" column="2">
|
||||||
<widget class="QLabel" name="label_4">
|
|
||||||
<property name="text">
|
|
||||||
<string>Frame ID</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="2">
|
|
||||||
<widget class="QSpinBox" name="sp_sid"/>
|
<widget class="QSpinBox" name="sp_sid"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0" colspan="3">
|
<item row="0" column="0" colspan="3">
|
||||||
@ -44,6 +37,20 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_16">
|
||||||
|
<property name="text">
|
||||||
|
<string>SeqName</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Frame ID</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="1" column="1" colspan="2">
|
<item row="1" column="1" colspan="2">
|
||||||
<widget class="QComboBox" name="c_playback_seq_name">
|
<widget class="QComboBox" name="c_playback_seq_name">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
@ -59,12 +66,51 @@
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="2" column="0" colspan="3">
|
||||||
<widget class="QLabel" name="label_16">
|
<layout class="QHBoxLayout" name="horizontalLayout_5" stretch="0,1,0,1,0,1">
|
||||||
<property name="text">
|
<item>
|
||||||
<string>SeqName</string>
|
<widget class="QLabel" name="label26">
|
||||||
</property>
|
<property name="text">
|
||||||
</widget>
|
<string>Min:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="l_seq_min">
|
||||||
|
<property name="text">
|
||||||
|
<string>0</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_28">
|
||||||
|
<property name="text">
|
||||||
|
<string>Current:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="l_seq_current">
|
||||||
|
<property name="text">
|
||||||
|
<string>0</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_29">
|
||||||
|
<property name="text">
|
||||||
|
<string>Max:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="l_seq_max">
|
||||||
|
<property name="text">
|
||||||
|
<string>0</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
@ -164,7 +210,7 @@
|
|||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QSlider" name="horizontalSlider_5">
|
<widget class="QSlider" name="horizontalSlider_5">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -178,7 +224,7 @@
|
|||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QSlider" name="horizontalSlider_6">
|
<widget class="QSlider" name="horizontalSlider_6">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -187,7 +233,6 @@
|
|||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<pointsize>20</pointsize>
|
<pointsize>20</pointsize>
|
||||||
<weight>50</weight>
|
|
||||||
<bold>false</bold>
|
<bold>false</bold>
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
@ -195,7 +240,7 @@
|
|||||||
<string>Probe Position</string>
|
<string>Probe Position</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -214,14 +259,14 @@
|
|||||||
<item row="7" column="1">
|
<item row="7" column="1">
|
||||||
<widget class="QSlider" name="horizontalSlider_7">
|
<widget class="QSlider" name="horizontalSlider_7">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QSlider" name="horizontalSlider_10">
|
<widget class="QSlider" name="horizontalSlider_10">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -235,7 +280,7 @@
|
|||||||
<item row="5" column="1">
|
<item row="5" column="1">
|
||||||
<widget class="QSlider" name="horizontalSlider_9">
|
<widget class="QSlider" name="horizontalSlider_9">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -272,14 +317,14 @@
|
|||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QSlider" name="horizontalSlider_3">
|
<widget class="QSlider" name="horizontalSlider_3">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="1">
|
<item row="8" column="1">
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
@ -299,7 +344,7 @@
|
|||||||
<item row="6" column="1">
|
<item row="6" column="1">
|
||||||
<widget class="QSlider" name="horizontalSlider_8">
|
<widget class="QSlider" name="horizontalSlider_8">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -333,7 +378,7 @@
|
|||||||
<number>1500</number>
|
<number>1500</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -342,7 +387,6 @@
|
|||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<pointsize>20</pointsize>
|
<pointsize>20</pointsize>
|
||||||
<weight>50</weight>
|
|
||||||
<bold>false</bold>
|
<bold>false</bold>
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
@ -350,21 +394,21 @@
|
|||||||
<string>Imaging</string>
|
<string>Imaging</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QSlider" name="horizontalSlider_4">
|
<widget class="QSlider" name="horizontalSlider_4">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="1">
|
<item row="5" column="1">
|
||||||
<spacer name="verticalSpacer_2">
|
<spacer name="verticalSpacer_2">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
@ -387,7 +431,7 @@
|
|||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QSlider" name="horizontalSlider_2">
|
<widget class="QSlider" name="horizontalSlider_2">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -400,7 +444,7 @@
|
|||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QSlider" name="s_t_start">
|
<widget class="QSlider" name="s_t_start">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -461,7 +505,7 @@
|
|||||||
<string><html><head/><body><p style="line-height:0.3" align="center">Beam</p><p align="center">Status</p></body></html></string>
|
<string><html><head/><body><p style="line-height:0.3" align="center">Beam</p><p align="center">Status</p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -471,7 +515,7 @@
|
|||||||
<string>Disconnected</string>
|
<string>Disconnected</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -489,7 +533,7 @@
|
|||||||
<string>Device Offline</string>
|
<string>Device Offline</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -499,7 +543,7 @@
|
|||||||
<string>Disabled</string>
|
<string>Disabled</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -509,7 +553,7 @@
|
|||||||
<string><html><head/><body><p style="line-height:0.3" align="center">Connection</p><p align="center">Status</p></body></html></string>
|
<string><html><head/><body><p style="line-height:0.3" align="center">Connection</p><p align="center">Status</p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -531,6 +575,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="b_select_base">
|
||||||
|
<property name="text">
|
||||||
|
<string>Select</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="b_base">
|
<widget class="QPushButton" name="b_base">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -553,7 +604,7 @@
|
|||||||
<string>0,0,0,0,0,0</string>
|
<string>0,0,0,0,0,0</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -568,7 +619,7 @@
|
|||||||
<string>0,0,0,0,0,0</string>
|
<string>0,0,0,0,0,0</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -600,7 +651,7 @@
|
|||||||
<string>Robot Offline</string>
|
<string>Robot Offline</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -613,8 +664,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1177</width>
|
<width>936</width>
|
||||||
<height>30</height>
|
<height>18</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
|||||||
@ -29,6 +29,7 @@ class BG(Enum):
|
|||||||
SetRecordMsg = auto()
|
SetRecordMsg = auto()
|
||||||
RobotRtsiMsg = auto()
|
RobotRtsiMsg = auto()
|
||||||
RecordFrameMsg = auto()
|
RecordFrameMsg = auto()
|
||||||
|
SeqIdList = auto()
|
||||||
|
|
||||||
|
|
||||||
class Msg:
|
class Msg:
|
||||||
@ -153,6 +154,11 @@ class SeqIdMinMax(Msg):
|
|||||||
max: int
|
max: int
|
||||||
|
|
||||||
|
|
||||||
|
@dataclasses.dataclass
|
||||||
|
class SeqIdList(Msg):
|
||||||
|
li: list[int]
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
class MoveAxisMsg(Msg):
|
class MoveAxisMsg(Msg):
|
||||||
sender: str
|
sender: str
|
||||||
|
|||||||
@ -26,12 +26,12 @@ def main():
|
|||||||
pps = []
|
pps = []
|
||||||
ps = [
|
ps = [
|
||||||
Broker(),
|
Broker(),
|
||||||
WebRTC(),
|
# WebRTC(),
|
||||||
MainUI(),
|
MainUI(level=logging.DEBUG),
|
||||||
Device(level=logging.DEBUG),
|
Device(level=logging.DEBUG),
|
||||||
ImageCV(),
|
ImageCV(),
|
||||||
Beamformer(),
|
Beamformer(level=logging.DEBUG),
|
||||||
Loader(),
|
Loader(level=logging.DEBUG),
|
||||||
Robot(),
|
Robot(),
|
||||||
]
|
]
|
||||||
for p in ps:
|
for p in ps:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user