class ConfigureSerailConnectionDialog(QtWidgets.QDialog): def __init__(self, parent=None): super().__init__(parent) self.setupUi(SimpleFOCDevice.getInstance()) def setupUi(self, device=None): self.setObjectName('Dialog') self.resize(700, 188) self.gridLayout = QtWidgets.QGridLayout(self) self.gridLayout.setObjectName('gridLayout') self.portNameLabel = QtWidgets.QLabel(self) self.portNameLabel.setObjectName('portNameLabel') self.gridLayout.addWidget(self.portNameLabel, 0, 0, 1, 1) self.portNameComboBox = SerialPortComboBox(self) self.portNameComboBox.setObjectName('portNameComboBox') self.portNameComboBox.setMinimumWidth(250) self.gridLayout.addWidget(self.portNameComboBox, 0, 1, 1, 1) self.bitRateLabel = QtWidgets.QLabel(self) self.bitRateLabel.setObjectName('bitRateLabel') self.gridLayout.addWidget(self.bitRateLabel, 0, 2, 1, 1) self.bitRatelineEdit = QtWidgets.QLineEdit(self) self.bitRatelineEdit.setObjectName('bitRatelineEdit') self.bitRatelineEdit.setValidator( QtGui.QRegExpValidator(QtCore.QRegExp("^[0-9]*$"))) self.gridLayout.addWidget(self.bitRatelineEdit, 0, 3, 1, 1) self.parityLabel = QtWidgets.QLabel(self) self.parityLabel.setObjectName('parityLabel') self.gridLayout.addWidget(self.parityLabel, 1, 0, 1, 1) self.parityComboBox = QtWidgets.QComboBox(self) self.parityComboBox.setObjectName('parityComboBox') self.parityComboBox.addItems(serial.PARITY_NAMES.values()) self.gridLayout.addWidget(self.parityComboBox, 1, 1, 1, 1) serial.PARITY_NAMES.values() self.byteSizeLabel = QtWidgets.QLabel(self) self.byteSizeLabel.setObjectName('byteSizeLabel') self.gridLayout.addWidget(self.byteSizeLabel, 1, 2, 1, 1) self.byteSizeComboBox = QtWidgets.QComboBox(self) self.byteSizeComboBox.setObjectName('byteSizeComboBox') byteSizeList = [ str(serial.EIGHTBITS), str(serial.FIVEBITS), str(serial.SIXBITS), str(serial.SEVENBITS) ] self.byteSizeComboBox.addItems(byteSizeList) self.gridLayout.addWidget(self.byteSizeComboBox, 1, 3, 1, 1) self.stopBitsLabel = QtWidgets.QLabel(self) self.stopBitsLabel.setObjectName('stopBitsLabel') self.gridLayout.addWidget(self.stopBitsLabel, 2, 0, 1, 1) self.stopBitsComboBox = QtWidgets.QComboBox(self) byteStopBitsList = [ str(serial.STOPBITS_ONE), str(serial.STOPBITS_ONE_POINT_FIVE), str(serial.STOPBITS_TWO) ] self.stopBitsComboBox.addItems(byteStopBitsList) self.stopBitsComboBox.setObjectName('stopBitsComboBox') self.gridLayout.addWidget(self.stopBitsComboBox, 2, 1, 1, 1) self.connectionIDLabel = QtWidgets.QLabel(self) self.connectionIDLabel.setObjectName('connectionNameLabel') self.gridLayout.addWidget(self.connectionIDLabel, 2, 2, 1, 1) self.connectionIDlineEdit = QtWidgets.QLineEdit(self) self.connectionIDlineEdit.setMaxLength(10) self.connectionIDlineEdit.setObjectName('connectionNameEdit') self.gridLayout.addWidget(self.connectionIDlineEdit, 2, 3, 1, 1) self.buttonBox = QtWidgets.QDialogButtonBox(self) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setObjectName('buttonBox') self.gridLayout.addWidget(self.buttonBox, 3, 0, 1, 4) self.setWindowTitle('Configure serial connection') self.portNameLabel.setText('Port Name') self.bitRateLabel.setText('Bit rate') self.parityLabel.setText('Parity') self.byteSizeLabel.setText('Byte size') self.stopBitsLabel.setText('Stop bits') self.connectionIDLabel.setText('Conn ID') self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) QtCore.QMetaObject.connectSlotsByName(self) if device is not None: self.fillForm(device) def fillForm(self, deviceConnector): self.connectionIDlineEdit.setText(deviceConnector.connectionID) self.portNameComboBox.setCurrentText(deviceConnector.serialPortName) self.bitRatelineEdit.setText(str(deviceConnector.serialRate)) self.stopBitsComboBox.setCurrentText(str(deviceConnector.stopBits)) self.byteSizeComboBox.setCurrentText( str(deviceConnector.serialByteSize)) self.parityComboBox.setCurrentText(str(deviceConnector.serialParity)) def getConfigValues(self): values = { 'connectionID': self.connectionIDlineEdit.text(), 'serialPortName': self.portNameComboBox.currentText(), 'serialRate': self.bitRatelineEdit.text(), 'stopBits': self.stopBitsExtractor(self.stopBitsComboBox.currentText()), 'serialByteSize': int(str(self.byteSizeComboBox.currentText())), 'serialParity': list(serial.PARITY_NAMES.keys())[list( serial.PARITY_NAMES.values()).index( self.parityComboBox.currentText())][0] } return values def stopBitsExtractor(self, value): if value == '1.5': return float(self.stopBitsComboBox.currentText()) else: return int(self.stopBitsComboBox.currentText())
def __init__(self, parent=None): super().__init__(parent) self.device = SimpleFOCDevice.getInstance() self.setTitle('Configure serial connection') self.setObjectName('configureConnection') self.configCoonLayout = QtWidgets.QHBoxLayout(self) self.configCoonLayout.setObjectName( 'configureConnectionorizontalLayout') self.portNameLabel = QtWidgets.QLabel(self) self.portNameLabel.setObjectName('portNameLabel') self.configCoonLayout.addWidget(self.portNameLabel) self.portNameComboBox = SerialPortComboBox(self) self.portNameComboBox.setObjectName('portNameComboBox') self.portNameComboBox.setMinimumWidth(250) self.configCoonLayout.addWidget(self.portNameComboBox) self.bitRateLabel = QtWidgets.QLabel(self) self.bitRateLabel.setObjectName('bitRateLabel') self.configCoonLayout.addWidget(self.bitRateLabel) self.bitRatelineEdit = QtWidgets.QLineEdit(self) self.bitRatelineEdit.setObjectName('bitRatelineEdit') self.bitRatelineEdit.setValidator( QtGui.QRegExpValidator(QtCore.QRegExp("^[0-9]*$"))) self.bitRatelineEdit.setText('115200') self.configCoonLayout.addWidget(self.bitRatelineEdit) self.parityLabel = QtWidgets.QLabel(self) self.parityLabel.setObjectName('parityLabel') self.configCoonLayout.addWidget(self.parityLabel) self.parityComboBox = QtWidgets.QComboBox(self) self.parityComboBox.setObjectName('parityComboBox') self.parityComboBox.addItems(serial.PARITY_NAMES.values()) self.configCoonLayout.addWidget(self.parityComboBox) serial.PARITY_NAMES.values() self.byteSizeLabel = QtWidgets.QLabel(self) self.byteSizeLabel.setObjectName('byteSizeLabel') self.configCoonLayout.addWidget(self.byteSizeLabel) self.byteSizeComboBox = QtWidgets.QComboBox(self) self.byteSizeComboBox.setObjectName('byteSizeComboBox') byteSizeList = [ str(serial.EIGHTBITS), str(serial.FIVEBITS), str(serial.SIXBITS), str(serial.SEVENBITS) ] self.byteSizeComboBox.addItems(byteSizeList) self.configCoonLayout.addWidget(self.byteSizeComboBox) self.stopBitsLabel = QtWidgets.QLabel(self) self.stopBitsLabel.setObjectName('stopBitsLabel') self.configCoonLayout.addWidget(self.stopBitsLabel) self.stopBitsComboBox = QtWidgets.QComboBox(self) byteStopBitsList = [ str(serial.STOPBITS_ONE), str(serial.STOPBITS_ONE_POINT_FIVE), str(serial.STOPBITS_TWO) ] self.stopBitsComboBox.addItems(byteStopBitsList) self.stopBitsComboBox.setObjectName('stopBitsComboBox') self.configCoonLayout.addWidget(self.stopBitsComboBox) self.connectDisconnectButton = QtWidgets.QPushButton(self) self.connectDisconnectButton.setIcon( GUIToolKit.getIconByName('connect')) self.connectDisconnectButton.setObjectName('connectDeviceButton') self.connectDisconnectButton.setText('Connect') self.connectDisconnectButton.clicked.connect( self.connectDisconnectDeviceAction) self.configCoonLayout.addWidget(self.connectDisconnectButton) self.portNameLabel.setText('Port Name') self.bitRateLabel.setText('Bit rate') self.parityLabel.setText('Parity') self.byteSizeLabel.setText('Byte size') self.stopBitsLabel.setText('Stop bits') self.device.addConnectionStateListener(self) self.connectionStateChanged(self.device.isConnected)
def setupUi(self, device=None): self.setObjectName('Dialog') self.resize(700, 188) self.gridLayout = QtWidgets.QGridLayout(self) self.gridLayout.setObjectName('gridLayout') self.portNameLabel = QtWidgets.QLabel(self) self.portNameLabel.setObjectName('portNameLabel') self.gridLayout.addWidget(self.portNameLabel, 0, 0, 1, 1) self.portNameComboBox = SerialPortComboBox(self) self.portNameComboBox.setObjectName('portNameComboBox') self.portNameComboBox.setMinimumWidth(250) self.gridLayout.addWidget(self.portNameComboBox, 0, 1, 1, 1) self.bitRateLabel = QtWidgets.QLabel(self) self.bitRateLabel.setObjectName('bitRateLabel') self.gridLayout.addWidget(self.bitRateLabel, 0, 2, 1, 1) self.bitRatelineEdit = QtWidgets.QLineEdit(self) self.bitRatelineEdit.setObjectName('bitRatelineEdit') self.bitRatelineEdit.setValidator( QtGui.QRegExpValidator(QtCore.QRegExp("^[0-9]*$"))) self.gridLayout.addWidget(self.bitRatelineEdit, 0, 3, 1, 1) self.parityLabel = QtWidgets.QLabel(self) self.parityLabel.setObjectName('parityLabel') self.gridLayout.addWidget(self.parityLabel, 1, 0, 1, 1) self.parityComboBox = QtWidgets.QComboBox(self) self.parityComboBox.setObjectName('parityComboBox') self.parityComboBox.addItems(serial.PARITY_NAMES.values()) self.gridLayout.addWidget(self.parityComboBox, 1, 1, 1, 1) serial.PARITY_NAMES.values() self.byteSizeLabel = QtWidgets.QLabel(self) self.byteSizeLabel.setObjectName('byteSizeLabel') self.gridLayout.addWidget(self.byteSizeLabel, 1, 2, 1, 1) self.byteSizeComboBox = QtWidgets.QComboBox(self) self.byteSizeComboBox.setObjectName('byteSizeComboBox') byteSizeList = [ str(serial.EIGHTBITS), str(serial.FIVEBITS), str(serial.SIXBITS), str(serial.SEVENBITS) ] self.byteSizeComboBox.addItems(byteSizeList) self.gridLayout.addWidget(self.byteSizeComboBox, 1, 3, 1, 1) self.stopBitsLabel = QtWidgets.QLabel(self) self.stopBitsLabel.setObjectName('stopBitsLabel') self.gridLayout.addWidget(self.stopBitsLabel, 2, 0, 1, 1) self.stopBitsComboBox = QtWidgets.QComboBox(self) byteStopBitsList = [ str(serial.STOPBITS_ONE), str(serial.STOPBITS_ONE_POINT_FIVE), str(serial.STOPBITS_TWO) ] self.stopBitsComboBox.addItems(byteStopBitsList) self.stopBitsComboBox.setObjectName('stopBitsComboBox') self.gridLayout.addWidget(self.stopBitsComboBox, 2, 1, 1, 1) self.connectionIDLabel = QtWidgets.QLabel(self) self.connectionIDLabel.setObjectName('connectionNameLabel') self.gridLayout.addWidget(self.connectionIDLabel, 2, 2, 1, 1) self.connectionIDlineEdit = QtWidgets.QLineEdit(self) self.connectionIDlineEdit.setMaxLength(10) self.connectionIDlineEdit.setObjectName('connectionNameEdit') self.gridLayout.addWidget(self.connectionIDlineEdit, 2, 3, 1, 1) self.buttonBox = QtWidgets.QDialogButtonBox(self) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setObjectName('buttonBox') self.gridLayout.addWidget(self.buttonBox, 3, 0, 1, 4) self.setWindowTitle('Configure serial connection') self.portNameLabel.setText('Port Name') self.bitRateLabel.setText('Bit rate') self.parityLabel.setText('Parity') self.byteSizeLabel.setText('Byte size') self.stopBitsLabel.setText('Stop bits') self.connectionIDLabel.setText('Conn ID') self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) QtCore.QMetaObject.connectSlotsByName(self) if device is not None: self.fillForm(device)
class ConfigureConnection(QtWidgets.QGroupBox): def __init__(self, parent=None): super().__init__(parent) self.device = SimpleFOCDevice.getInstance() self.setTitle('Configure serial connection') self.setObjectName('configureConnection') self.configCoonLayout = QtWidgets.QHBoxLayout(self) self.configCoonLayout.setObjectName( 'configureConnectionorizontalLayout') self.portNameLabel = QtWidgets.QLabel(self) self.portNameLabel.setObjectName('portNameLabel') self.configCoonLayout.addWidget(self.portNameLabel) self.portNameComboBox = SerialPortComboBox(self) self.portNameComboBox.setObjectName('portNameComboBox') self.portNameComboBox.setMinimumWidth(250) self.configCoonLayout.addWidget(self.portNameComboBox) self.bitRateLabel = QtWidgets.QLabel(self) self.bitRateLabel.setObjectName('bitRateLabel') self.configCoonLayout.addWidget(self.bitRateLabel) self.bitRatelineEdit = QtWidgets.QLineEdit(self) self.bitRatelineEdit.setObjectName('bitRatelineEdit') self.bitRatelineEdit.setValidator( QtGui.QRegExpValidator(QtCore.QRegExp("^[0-9]*$"))) self.bitRatelineEdit.setText('115200') self.configCoonLayout.addWidget(self.bitRatelineEdit) self.parityLabel = QtWidgets.QLabel(self) self.parityLabel.setObjectName('parityLabel') self.configCoonLayout.addWidget(self.parityLabel) self.parityComboBox = QtWidgets.QComboBox(self) self.parityComboBox.setObjectName('parityComboBox') self.parityComboBox.addItems(serial.PARITY_NAMES.values()) self.configCoonLayout.addWidget(self.parityComboBox) serial.PARITY_NAMES.values() self.byteSizeLabel = QtWidgets.QLabel(self) self.byteSizeLabel.setObjectName('byteSizeLabel') self.configCoonLayout.addWidget(self.byteSizeLabel) self.byteSizeComboBox = QtWidgets.QComboBox(self) self.byteSizeComboBox.setObjectName('byteSizeComboBox') byteSizeList = [ str(serial.EIGHTBITS), str(serial.FIVEBITS), str(serial.SIXBITS), str(serial.SEVENBITS) ] self.byteSizeComboBox.addItems(byteSizeList) self.configCoonLayout.addWidget(self.byteSizeComboBox) self.stopBitsLabel = QtWidgets.QLabel(self) self.stopBitsLabel.setObjectName('stopBitsLabel') self.configCoonLayout.addWidget(self.stopBitsLabel) self.stopBitsComboBox = QtWidgets.QComboBox(self) byteStopBitsList = [ str(serial.STOPBITS_ONE), str(serial.STOPBITS_ONE_POINT_FIVE), str(serial.STOPBITS_TWO) ] self.stopBitsComboBox.addItems(byteStopBitsList) self.stopBitsComboBox.setObjectName('stopBitsComboBox') self.configCoonLayout.addWidget(self.stopBitsComboBox) self.connectDisconnectButton = QtWidgets.QPushButton(self) self.connectDisconnectButton.setIcon( GUIToolKit.getIconByName('connect')) self.connectDisconnectButton.setObjectName('connectDeviceButton') self.connectDisconnectButton.setText('Connect') self.connectDisconnectButton.clicked.connect( self.connectDisconnectDeviceAction) self.configCoonLayout.addWidget(self.connectDisconnectButton) self.portNameLabel.setText('Port Name') self.bitRateLabel.setText('Bit rate') self.parityLabel.setText('Parity') self.byteSizeLabel.setText('Byte size') self.stopBitsLabel.setText('Stop bits') self.device.addConnectionStateListener(self) self.connectionStateChanged(self.device.isConnected) def getConfigValues(self): values = { 'connectionID': '', 'serialPortName': self.portNameComboBox.currentText(), 'serialRate': self.bitRatelineEdit.text(), 'stopBits': self.stopBitsExtractor(self.stopBitsComboBox.currentText()), 'serialByteSize': int(str(self.byteSizeComboBox.currentText())), 'serialParity': list(serial.PARITY_NAMES.keys())[list( serial.PARITY_NAMES.values()).index( self.parityComboBox.currentText())][0] } return values def stopBitsExtractor(self, value): if value == '1.5': return float(self.stopBitsComboBox.currentText()) else: return int(self.stopBitsComboBox.currentText()) def connectionStateChanged(self, isConnectedFlag): if isConnectedFlag: self.connectDisconnectButton.setText('Disconnect') self.connectDisconnectButton.setIcon( GUIToolKit.getIconByName('disconnect')) else: self.connectDisconnectButton.setText('Connect') self.connectDisconnectButton.setIcon( GUIToolKit.getIconByName('connect')) self.portNameLabel.setEnabled(not isConnectedFlag) self.portNameComboBox.setEnabled(not isConnectedFlag) self.bitRateLabel.setEnabled(not isConnectedFlag) self.bitRatelineEdit.setEnabled(not isConnectedFlag) self.parityLabel.setEnabled(not isConnectedFlag) self.parityComboBox.setEnabled(not isConnectedFlag) self.byteSizeLabel.setEnabled(not isConnectedFlag) self.byteSizeComboBox.setEnabled(not isConnectedFlag) self.stopBitsLabel.setEnabled(not isConnectedFlag) self.stopBitsComboBox.setEnabled(not isConnectedFlag) def connectDisconnectDeviceAction(self): if self.device.isConnected: self.disConnectAction() else: self.connectAction() def connectAction(self): deviceConfig = self.getConfigValues() self.device.configureConnection(deviceConfig) self.device.connect(SimpleFOCDevice.ONLY_CONNECT) def disConnectAction(self): self.device.disConnect()