Basic QT ui done - mode table to do
This commit is contained in:
@ -156,7 +156,7 @@ class ControllerInterface:
|
|||||||
time.sleep(0.002)
|
time.sleep(0.002)
|
||||||
self.controller.sendRequest(command_code, target, data)
|
self.controller.sendRequest(command_code, target, data)
|
||||||
|
|
||||||
self.controller.packet_id = self.controller.packet_id + 1
|
self.controller.packet_id = (self.controller.packet_id + 1) % 255
|
||||||
return True
|
return True
|
||||||
except SerialException as e:
|
except SerialException as e:
|
||||||
print(e)
|
print(e)
|
||||||
@ -165,7 +165,7 @@ class ControllerInterface:
|
|||||||
def sendPacketWithResponse(self, command_code: int, target: tuple, data: list, throw_if_error=False) -> list:
|
def sendPacketWithResponse(self, command_code: int, target: tuple, data: list, throw_if_error=False) -> list:
|
||||||
try:
|
try:
|
||||||
self.controller.sendRequest(command_code, target, data)
|
self.controller.sendRequest(command_code, target, data)
|
||||||
self.controller.packet_id = self.controller.packet_id + 1
|
self.controller.packet_id = (self.controller.packet_id + 1) % 255
|
||||||
return self.controller.readData()
|
return self.controller.readData()
|
||||||
except SerialException as e:
|
except SerialException as e:
|
||||||
print(e)
|
print(e)
|
||||||
@ -186,10 +186,16 @@ class ControllerInterface:
|
|||||||
"device info": (0xBF, 0x00),
|
"device info": (0xBF, 0x00),
|
||||||
"device mode set": (0xBF, 0x10),
|
"device mode set": (0xBF, 0x10),
|
||||||
"device mode get": (0xBF, 0x11),
|
"device mode get": (0xBF, 0x11),
|
||||||
# "address": (0x00, 0xF0),
|
|
||||||
# "device info": (0x00, 0x60),
|
##### OLD
|
||||||
# "device mode set": (0x00, 0xE0),
|
# "currents set": (0xBE, 0xEE),
|
||||||
# "device mode get": (0x00, 0xE1),
|
# "currents get": (0xBE, 0xEF),
|
||||||
|
# "powers set": (0xBE, 0x10),
|
||||||
|
# "powers get": (0xBE, 0x11),
|
||||||
|
# "address": (0xBF, 0x20),
|
||||||
|
# "device info": (0xBF, 0x00),
|
||||||
|
# "device mode set": (0xBF, 0x10),
|
||||||
|
# "device mode get": (0xBF, 0x11),
|
||||||
}
|
}
|
||||||
|
|
||||||
# Currents #
|
# Currents #
|
||||||
|
40
main.py
40
main.py
@ -49,7 +49,8 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
def clearAllFields(self) -> None:
|
def clearAllFields(self) -> None:
|
||||||
for f in self.currentFields:
|
for f in self.currentFields:
|
||||||
f.setText("")
|
f.setText("")
|
||||||
|
self.ui.ModeSelection.clear()
|
||||||
|
self.ui.DmxAddressField.clear()
|
||||||
|
|
||||||
def resetStatus(self) -> None:
|
def resetStatus(self) -> None:
|
||||||
self.setStatus(self.savedStatus)
|
self.setStatus(self.savedStatus)
|
||||||
@ -109,6 +110,7 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
|
|
||||||
self.setStatus(f'Чтение адреса {self.controller.controller.ser.port}...')
|
self.setStatus(f'Чтение адреса {self.controller.controller.ser.port}...')
|
||||||
address = self.controller.readAddress()
|
address = self.controller.readAddress()
|
||||||
|
print(f'Address {address}')
|
||||||
|
|
||||||
if address == -1:
|
if address == -1:
|
||||||
self.ui.DmxAddressField.setStyleSheet(self.redLineEdit)
|
self.ui.DmxAddressField.setStyleSheet(self.redLineEdit)
|
||||||
@ -120,6 +122,7 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
|
|
||||||
self.setStatus(f'Чтение режимов {self.controller.controller.ser.port}...')
|
self.setStatus(f'Чтение режимов {self.controller.controller.ser.port}...')
|
||||||
dev_info = self.controller.readDeviceInfo()
|
dev_info = self.controller.readDeviceInfo()
|
||||||
|
print(f'Dev info: {dev_info}')
|
||||||
if dev_info:
|
if dev_info:
|
||||||
mode_count = dev_info[2]
|
mode_count = dev_info[2]
|
||||||
for index in range(mode_count):
|
for index in range(mode_count):
|
||||||
@ -131,12 +134,14 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
self.modes.append(mode)
|
self.modes.append(mode)
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
|
|
||||||
|
print(f'Dev info: {dev_info}')
|
||||||
if not self.modes:
|
if not self.modes:
|
||||||
self.ui.ModeSelection.clear()
|
self.ui.ModeSelection.clear()
|
||||||
self.ui.ModeSelection.setCurrentText('ERROR')
|
self.ui.ModeSelection.setCurrentText('ERROR')
|
||||||
else:
|
else:
|
||||||
self.ui.ModeSelection.setStyleSheet('QComboBox {}')
|
self.ui.ModeSelection.setStyleSheet('QComboBox {}')
|
||||||
self.ui.ModeSelection.clear()
|
self.ui.ModeSelection.clear()
|
||||||
|
|
||||||
for m in self.modes:
|
for m in self.modes:
|
||||||
self.ui.ModeSelection.addItem(m[1])
|
self.ui.ModeSelection.addItem(m[1])
|
||||||
|
|
||||||
@ -144,9 +149,12 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
for index, m in enumerate(self.modes):
|
for index, m in enumerate(self.modes):
|
||||||
mode_names.append(f'{index + 1}:{m[1]}')
|
mode_names.append(f'{index + 1}:{m[1]}')
|
||||||
|
|
||||||
self.ui.ModeSelection.setCurrentText(mode_names[dev_info[1] - 1])
|
|
||||||
self.ui.ModeSelection.clear()
|
self.ui.ModeSelection.clear()
|
||||||
self.ui.ModeSelection.addItems(mode_names)
|
self.ui.ModeSelection.addItems(mode_names)
|
||||||
|
self.ui.ModeSelection.setCurrentText(mode_names[dev_info[1] - 1])
|
||||||
|
else:
|
||||||
|
self.ui.ModeSelection.setStyleSheet(
|
||||||
|
'QComboBox { background: rgb(255, 0, 0); selection-background-color: rgb(111, 136, 222); }')
|
||||||
|
|
||||||
return values or address != -1 or self.modes
|
return values or address != -1 or self.modes
|
||||||
|
|
||||||
@ -171,7 +179,6 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
self.connectionLost()
|
self.connectionLost()
|
||||||
return
|
return
|
||||||
|
|
||||||
# TODO Mode is not being written
|
|
||||||
self.setStatus(f'Запись режима в {self.controller.controller.ser.port}...')
|
self.setStatus(f'Запись режима в {self.controller.controller.ser.port}...')
|
||||||
if not self.controller.writeMode(self.ui.ModeSelection.currentIndex() + 1):
|
if not self.controller.writeMode(self.ui.ModeSelection.currentIndex() + 1):
|
||||||
self.connectionLost()
|
self.connectionLost()
|
||||||
@ -183,7 +190,7 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
else:
|
else:
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
dmx_save = self.ui.DmxAddressField.text()
|
dmx_save = self.ui.DmxAddressField.text()
|
||||||
pers_save = self.ui.Personality.text()
|
pers_save = self.ui.ModeSelection.currentText()
|
||||||
currents_save = []
|
currents_save = []
|
||||||
for entry in self.currentFields:
|
for entry in self.currentFields:
|
||||||
currents_save.append(entry.text())
|
currents_save.append(entry.text())
|
||||||
@ -198,34 +205,35 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
currents_real = self.controller.readCurrents()
|
currents_real = self.controller.readCurrents()
|
||||||
|
print(f'Save: {dmx_save}, {pers_save}, {currents_save}')
|
||||||
|
print(f'Real: {dmx_real}, {dev_info}, {currents_real}')
|
||||||
if dmx_real == -1 or not dev_info or not currents_real:
|
if dmx_real == -1 or not dev_info or not currents_real:
|
||||||
self.connectionLost()
|
self.connectionLost()
|
||||||
return
|
return
|
||||||
|
|
||||||
pers_real = f'{dev_info[1]}:{self.modes[dev_info[1] - 1][1]}'
|
pers_real = f'{dev_info[1]}:{self.modes[dev_info[1] - 1][1]}'
|
||||||
|
print(f'Pers real: {pers_real}')
|
||||||
failed = False
|
failed = False
|
||||||
if dmx_save == "" or int(dmx_save) != dmx_real:
|
if dmx_save == "" or int(dmx_save) != dmx_real:
|
||||||
failed = True
|
failed = True
|
||||||
# TODO self.dmx_address_field.configure(style='failedToRead.TEntry')
|
self.ui.DmxAddressField.setStyleSheet(self.redLineEdit)
|
||||||
else:
|
else:
|
||||||
...
|
self.ui.DmxAddressField.setStyleSheet(self.defLineEdit)
|
||||||
# TODO dmx_address_field.configure(style='TEntry')
|
|
||||||
|
|
||||||
if pers_save != pers_real:
|
if pers_save != pers_real:
|
||||||
failed = True
|
failed = True
|
||||||
# TODO personality_combobox.set('ERROR')
|
self.ui.ModeSelection.clear()
|
||||||
|
self.ui.ModeSelection.setStyleSheet('QComboBox { background: rgb(255, 0, 0); selection-background-color: rgb(111, 136, 222); }')
|
||||||
else:
|
else:
|
||||||
...
|
self.ui.ModeSelection.setStyleSheet('QComboBox {}')
|
||||||
# TODOpersonality_combobox.configure(style='TCombobox')
|
|
||||||
|
|
||||||
for index in range(4):
|
for index in range(4):
|
||||||
if currents_save[index] == "" or int(currents_save[index]) != currents_real[index] * 10:
|
if currents_save[index] == "" or int(currents_save[index]) != currents_real[index] * 10:
|
||||||
failed = True
|
failed = True
|
||||||
# TODO current_entries[index].configure(style='failedToRead.TEntry')
|
print(f'Failed current: {index}')
|
||||||
|
self.currentFields[index].setStyleSheet(self.redLineEdit)
|
||||||
else:
|
else:
|
||||||
...
|
self.currentFields[index].setStyleSheet(self.defLineEdit)
|
||||||
# TODO current_entries[index].configure(style='TEntry')
|
|
||||||
|
|
||||||
self.setStatus(f'Выбранный порт: {self.controller.controller.ser.port}')
|
self.setStatus(f'Выбранный порт: {self.controller.controller.ser.port}')
|
||||||
if failed:
|
if failed:
|
||||||
@ -234,8 +242,10 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
self.setTempStatus('Проверка прошла успешно', 1)
|
self.setTempStatus('Проверка прошла успешно', 1)
|
||||||
|
|
||||||
def refreshDeviceList(self):
|
def refreshDeviceList(self):
|
||||||
|
selected = self.ui.DeviceSelection.currentText()
|
||||||
self.ui.DeviceSelection.clear()
|
self.ui.DeviceSelection.clear()
|
||||||
self.ui.DeviceSelection.addItems(self.controller.readComPorts())
|
self.ui.DeviceSelection.addItems(self.controller.readComPorts())
|
||||||
|
self.ui.DeviceSelection.setCurrentText(selected)
|
||||||
|
|
||||||
def readCallback(self) -> None:
|
def readCallback(self) -> None:
|
||||||
if time.time() - self.last_click_time < 1:
|
if time.time() - self.last_click_time < 1:
|
||||||
@ -249,7 +259,7 @@ class Window(QtWidgets.QMainWindow):
|
|||||||
return
|
return
|
||||||
|
|
||||||
self.setStatus(f'Выбранный порт: {self.controller.controller.ser.port}')
|
self.setStatus(f'Выбранный порт: {self.controller.controller.ser.port}')
|
||||||
self.setTempStatus(f'Токи прочитаны, порт: {self.controller.controller.ser.port}', 1)
|
self.setTempStatus(f'Данные прочитаны, порт: {self.controller.controller.ser.port}', 1)
|
||||||
else:
|
else:
|
||||||
self.setTempStatus('Порт не выбран!', 1)
|
self.setTempStatus('Порт не выбран!', 1)
|
||||||
|
|
||||||
|
10
ui.py
10
ui.py
@ -187,23 +187,17 @@ class Ui_Controller(object):
|
|||||||
Controller.setWindowTitle(_translate("Controller", "Controller"))
|
Controller.setWindowTitle(_translate("Controller", "Controller"))
|
||||||
self.ComPort.setText(_translate("Controller", "COM Порт:"))
|
self.ComPort.setText(_translate("Controller", "COM Порт:"))
|
||||||
self.DmxAddress.setText(_translate("Controller", "DMX Адрес:"))
|
self.DmxAddress.setText(_translate("Controller", "DMX Адрес:"))
|
||||||
self.DmxAddressField.setText(_translate("Controller", "10"))
|
self.DmxAddressField.setPlaceholderText(_translate("Controller", ""))
|
||||||
self.DmxAddressField.setPlaceholderText(_translate("Controller", "no data"))
|
|
||||||
self.Personality.setText(_translate("Controller", "Personality:"))
|
self.Personality.setText(_translate("Controller", "Personality:"))
|
||||||
self.Current1.setText(_translate("Controller", " I1"))
|
self.Current1.setText(_translate("Controller", " I1"))
|
||||||
self.Current1Field.setText(_translate("Controller", "1000"))
|
|
||||||
self.ma1.setText(_translate("Controller", " mA"))
|
self.ma1.setText(_translate("Controller", " mA"))
|
||||||
self.Current2.setText(_translate("Controller", " I2"))
|
self.Current2.setText(_translate("Controller", " I2"))
|
||||||
self.Current2Field.setText(_translate("Controller", "450"))
|
|
||||||
self.ma2.setText(_translate("Controller", " mA"))
|
self.ma2.setText(_translate("Controller", " mA"))
|
||||||
self.Current3.setText(_translate("Controller", " I3"))
|
self.Current3.setText(_translate("Controller", " I3"))
|
||||||
self.Current3Field.setText(_translate("Controller", "520"))
|
|
||||||
self.ma3.setText(_translate("Controller", " mA"))
|
self.ma3.setText(_translate("Controller", " mA"))
|
||||||
self.Current4.setText(_translate("Controller", " I4"))
|
self.Current4.setText(_translate("Controller", " I4"))
|
||||||
self.Current4Field.setText(_translate("Controller", "780"))
|
|
||||||
self.ma4.setText(_translate("Controller", " mA"))
|
self.ma4.setText(_translate("Controller", " mA"))
|
||||||
self.ModeSelection.setItemText(0, _translate("Controller", "28:CH RGB45 SLO"))
|
|
||||||
self.Read.setText(_translate("Controller", "Чтение"))
|
self.Read.setText(_translate("Controller", "Чтение"))
|
||||||
self.Write.setText(_translate("Controller", "Запись"))
|
self.Write.setText(_translate("Controller", "Запись"))
|
||||||
self.Check.setText(_translate("Controller", "Проверить"))
|
self.Check.setText(_translate("Controller", "Проверить"))
|
||||||
self.Status.setText(_translate("Controller", "Выбранный порт: /dev/ttyUSB0"))
|
self.Status.setText(_translate("Controller", "Пожалуйста, выберите порт"))
|
||||||
|
Reference in New Issue
Block a user