updates
This commit is contained in:
86
main.py
86
main.py
@@ -69,12 +69,25 @@ class MainWindow(QMainWindow):
|
||||
self.ui.connButton.setCheckable(True)
|
||||
self.ui.connButton.clicked.connect(self.conn_button_press)
|
||||
|
||||
# Add radio button actions
|
||||
self.ui.radiolocal.toggled.connect(self.handle_all_radios)
|
||||
self.ui.radioscript.toggled.connect(self.handle_all_radios)
|
||||
self.ui.radiopulse.toggled.connect(self.handle_all_radios)
|
||||
|
||||
# Hide other controls
|
||||
self.ui.sn.setHidden(True)
|
||||
self.ui.snLabel.setHidden(True)
|
||||
self.ui.fw.setHidden(True)
|
||||
self.ui.fwLabel.setHidden(True)
|
||||
|
||||
self.ui.radiolocal.setHidden(True)
|
||||
self.ui.radioscript.setHidden(True)
|
||||
self.ui.radiopulse.setHidden(True)
|
||||
self.ui.powerButton.setHidden(True)
|
||||
self.ui.setvLabel.setHidden(True)
|
||||
self.ui.setv.setHidden(True)
|
||||
self.ui.actvLabel.setHidden(True)
|
||||
self.ui.actv.setHidden(True)
|
||||
|
||||
# Set initial size
|
||||
initial_width = 1000
|
||||
initial_height = 600
|
||||
@@ -88,8 +101,8 @@ class MainWindow(QMainWindow):
|
||||
self.setFixedSize(1000, 600)
|
||||
|
||||
# Setup serial port
|
||||
self.serial = QSerialPort(self)
|
||||
self.serial.readyRead.connect(self.on_data_received)
|
||||
#self.serial = QSerialPort(self)
|
||||
#self.serial.readyRead.connect(self.on_data_received)
|
||||
|
||||
# Create serial rx flag
|
||||
self.serial_rx_flag = False
|
||||
@@ -113,6 +126,39 @@ class MainWindow(QMainWindow):
|
||||
|
||||
self.show()
|
||||
|
||||
def handle_all_radios(self):
|
||||
# sender() returns the widget that sent the signal
|
||||
button = self.sender()
|
||||
|
||||
if button.isChecked():
|
||||
if button.text() == "LOCAL CONTROL":
|
||||
self.ui.powerButton.setHidden(False)
|
||||
self.ui.setvLabel.setHidden(False)
|
||||
self.ui.setv.setHidden(False)
|
||||
self.ui.actvLabel.setHidden(False)
|
||||
self.ui.actv.setHidden(False)
|
||||
|
||||
elif button.text() == "SCRIPT CONTROL":
|
||||
self.ui.powerButton.setHidden(True)
|
||||
self.ui.setvLabel.setHidden(True)
|
||||
self.ui.setv.setHidden(True)
|
||||
self.ui.actvLabel.setHidden(True)
|
||||
self.ui.actv.setHidden(True)
|
||||
|
||||
elif button.text() == "PULSE TRIGGERED":
|
||||
self.ui.powerButton.setHidden(True)
|
||||
self.ui.setvLabel.setHidden(True)
|
||||
self.ui.setv.setHidden(True)
|
||||
self.ui.actvLabel.setHidden(True)
|
||||
self.ui.actv.setHidden(True)
|
||||
|
||||
else:
|
||||
self.ui.powerButton.setHidden(True)
|
||||
self.ui.setvLabel.setHidden(True)
|
||||
self.ui.setv.setHidden(True)
|
||||
self.ui.actvLabel.setHidden(True)
|
||||
self.ui.actv.setHidden(True)
|
||||
|
||||
def conn_button_press (self):
|
||||
text_conn = self.ui.connButton.text()
|
||||
|
||||
@@ -125,21 +171,23 @@ class MainWindow(QMainWindow):
|
||||
QApplication.processEvents()
|
||||
|
||||
# Specify serial port and baud
|
||||
self.serial.setPortName("/dev/ttyACM0")
|
||||
self.serial.setBaudRate(115200)
|
||||
#self.serial.setPortName("/dev/ttyACM0")
|
||||
#self.serial.setBaudRate(115200)
|
||||
|
||||
if not self.serial.open(QIODevice.ReadWrite):
|
||||
print(f"Failed to open port: {self.serial.errorString()}")
|
||||
#if not self.serial.open(QIODevice.ReadWrite):
|
||||
#print(f"Failed to open port: {self.serial.errorString()}")
|
||||
|
||||
command = 73 #0x49 'I' ASCII
|
||||
state = 0
|
||||
data = (command, state)
|
||||
byte_data = self.pack_integers_to_bytes(*data)
|
||||
|
||||
self.serial.write(QByteArray(byte_data))
|
||||
#self.serial.write(QByteArray(byte_data))
|
||||
|
||||
self.timeouttimer.start()
|
||||
|
||||
self.serial_rx_flag = True
|
||||
|
||||
while ((self.serial_rx_flag == False) and (self.timeoutflag == False)):
|
||||
QApplication.processEvents()
|
||||
|
||||
@@ -147,7 +195,7 @@ class MainWindow(QMainWindow):
|
||||
|
||||
if self.timeoutflag == True:
|
||||
self.windowresponse = NoDeviceWindow.get_response(self)
|
||||
self.serial.close()
|
||||
#self.serial.close()
|
||||
self.ui.connButton.setText("CONNECT")
|
||||
self.ui.sn.setHidden(True)
|
||||
self.ui.snLabel.setHidden(True)
|
||||
@@ -155,6 +203,9 @@ class MainWindow(QMainWindow):
|
||||
self.ui.fwLabel.setHidden(True)
|
||||
self.ui.sn.setText("---")
|
||||
self.ui.fw.setText("---")
|
||||
self.ui.radiolocal.setHidden(True)
|
||||
self.ui.radioscript.setHidden(True)
|
||||
self.ui.radiopulse.setHidden(True)
|
||||
|
||||
else:
|
||||
self.process_serial_number()
|
||||
@@ -164,14 +215,17 @@ class MainWindow(QMainWindow):
|
||||
self.timeoutflag = False
|
||||
|
||||
else:
|
||||
self.serial.close()
|
||||
#self.serial.close()
|
||||
self.ui.connButton.setText("CONNECT")
|
||||
self.ui.sn.setHidden(True)
|
||||
self.ui.snLabel.setHidden(True)
|
||||
self.ui.fw.setHidden(True)
|
||||
self.ui.fwLabel.setHidden(True)
|
||||
self.ui.sn.setText("---")
|
||||
self.ui.fw.setText("---")
|
||||
self.ui.fw.setText("---")
|
||||
self.ui.radiolocal.setHidden(True)
|
||||
self.ui.radioscript.setHidden(True)
|
||||
self.ui.radiopulse.setHidden(True)
|
||||
|
||||
QApplication.processEvents()
|
||||
|
||||
@@ -228,7 +282,8 @@ class MainWindow(QMainWindow):
|
||||
# Get and update serial number
|
||||
sub_sn = self.store_buffer[0:19]
|
||||
sn_chars = [chr(c) for c in sub_sn if 0 <= c <= 127]
|
||||
sn_str = "".join(sn_chars)
|
||||
sn_str = "".join(sn_chars)
|
||||
sn_str = "ARRIVE-POWERSIM-001"
|
||||
self.ui.sn.setText(sn_str)
|
||||
|
||||
# Get and update FW Rev
|
||||
@@ -239,13 +294,18 @@ class MainWindow(QMainWindow):
|
||||
minor = sub_fw[2:3]
|
||||
full = major + sep + minor
|
||||
fw_chars = [chr(c) for c in full if 0 <= c <= 127]
|
||||
fw_str = "".join(fw_chars)
|
||||
fw_str = "".join(fw_chars)
|
||||
fw_str = "0:1"
|
||||
self.ui.fw.setText(fw_str)
|
||||
|
||||
self.ui.sn.setHidden(False)
|
||||
self.ui.snLabel.setHidden(False)
|
||||
self.ui.fw.setHidden(False)
|
||||
self.ui.fwLabel.setHidden(False)
|
||||
self.ui.radiolocal.setHidden(False)
|
||||
self.ui.radioscript.setHidden(False)
|
||||
self.ui.radiopulse.setHidden(False)
|
||||
self.ui.radiolocal.setChecked(True)
|
||||
|
||||
|
||||
def pack_integers_to_bytes(self, *integers: int) -> bytes:
|
||||
|
||||
Reference in New Issue
Block a user