123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QCheckBox, QBoxLayout
- import sys
- import struct
- import socket
- def setPinout(pinout):
- pass
- class Window(QWidget):
- def __init__(self):
- QWidget.__init__(self)
- self.setWindowTitle('Magnetometer Control Client')
- layout = QBoxLayout(QBoxLayout.TopToBottom)
- self.setLayout(layout)
- label_layout = QBoxLayout(QBoxLayout.LeftToRight)
- self.label = QLabel('Magnetometer Controller')
- label_layout.addWidget(self.label, 0)
- layout.addLayout(label_layout)
- button_layout = QBoxLayout(QBoxLayout.LeftToRight)
- self.check1 = QCheckBox('PIN1')
- self.check1.setEnabled(False)
- self.check1.toggled.connect(self.toggleChecks)
- button_layout.addWidget(self.check1)
- self.check2 = QCheckBox('PIN2')
- self.check2.setEnabled(False)
- self.check2.toggled.connect(self.toggleChecks)
- button_layout.addWidget(self.check2)
- self.check3 = QCheckBox('PIN3')
- self.check3.setEnabled(False)
- self.check3.toggled.connect(self.toggleChecks)
- button_layout.addWidget(self.check3)
- self.check4 = QCheckBox('PIN4')
- self.check4.setEnabled(False)
- self.check4.toggled.connect(self.toggleChecks)
- button_layout.addWidget(self.check4)
- layout.addLayout(button_layout)
- control_layout = QBoxLayout(QBoxLayout.LeftToRight)
- self.connected = False
- self.buttonCon = QPushButton('Connect')
- self.buttonCon.clicked.connect(self.connectPressed)
- control_layout.addWidget(self.buttonCon)
- layout.addLayout(control_layout)
- self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
- #@Slot()
- def toggleChecks(self):
- pinout = 0b00000000
- if(self.check1.isChecked()):
- pinout = pinout | 0b00000001
- else:
- pinout = pinout & 0b11111110
- if(self.check2.isChecked()):
- pinout = pinout | 0b00000010
- else:
- pinout = pinout & 0b11111101
- if(self.check3.isChecked()):
- pinout = pinout | 0b00000100
- else:
- pinout = pinout & 0b11111011
-
- if(self.check4.isChecked()):
- pinout = pinout | 0b00001000
- else:
- pinout = pinout & 0b11110111
- data = struct.pack('<BB', 0x03, pinout)
- self.sock.sendall(data)
- data = self.sock.recv(1024)
- #@Slot()
- def connectPressed(self):
- if(self.connected):
- self.check1.setEnabled(False)
- self.check2.setEnabled(False)
- self.check3.setEnabled(False)
- self.check4.setEnabled(False)
- self.sock.close()
- self.buttonCon.setText('Connect')
- self.connected = False
- else:
- self.check1.setEnabled(True)
- self.check2.setEnabled(True)
- self.check3.setEnabled(True)
- self.check4.setEnabled(True)
- self.sock.connect(('rp-f0cf82.local', 5005))
- self.buttonCon.setText('Disconnect')
- self.connected = True
-
- app = QApplication(sys.argv)
- win = Window()
- win.show()
- sys.exit(app.exec())
|