How to build a stable communication between PyQt and Arduino?

0

I'm working on a python program in which I use a PyQt GUI to send data to an Arduino by pressing a button. The Arduino should then perform a measurement while python is waiting, and send a message back to the PC where the output is displayed on the GUI. The problem is that when I press the button, I only receive the following message while the window is closing:

Process finished with exit code -1073740791 (0xC0000409)

I guess that the GUI has problems to perform a delay or to wait for an input but I'm not sure. Does anyone have an idea?

Thanks for any attempt to help!

Python Code:

#check connection
try:
    arduino = serial.Serial('COM10', 9600, timeout=0)
    print("Connected to port!\n")
except Exception as e:
    print(e)


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.initWindow()

    def initWindow(self):
        self.resize(1000, 100)    #window size
        self.setWindowTitle("Test")
        startButton = QPushButton("Start",self)
        startButton.move(50,10)
        self.textBox = QTextEdit(self)
        self.textBox.move(300,10)
        self.textBox.resize(500,40)
        startButton.clicked.connect(self.action)

        self.show()

    def action(self):
        arduino.write('s'.encode())
        while not arduino.in_waiting():
            time.sleep(0.001)
        incomingData = arduino.readline().decode("utf-8")
        self.textBox.setText(incomingData)


app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec())

Arduino Code:

void setup() 
{
  Serial.begin(9600);
}

void loop() 
{
  if(Serial.available() > 0)
  {    
    String testString = Serial.readString();
    delay(4000);  //measurement simulation, taking several seconds
    Serial.println("Result");
  }

}
python
arduino
pyqt
serial-port
serial-communication
asked on Stack Overflow Apr 14, 2020 by Hi_Guys

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0