Получение ошибки pyserial "TypeError: '>' не поддерживается между экземплярами 'byte' и 'int' - PullRequest
1 голос
/ 24 июня 2019

Я пытаюсь прочитать последовательный вывод с устройства и получаю вышеуказанную ошибку.

Добавил int () в следующую строку и получил ту же ошибку: rtn = self.ser.read (int (self.numbytes))

def doSerial(self, cmd=''):
    self.ser = serial.Serial(self.port,self.baud)
    time.sleep(1)
    if self.ser.isOpen():
        if self.sel == 5:#RSOIS
            self.StatusButton.setStyleSheet(_fromUtf8("background-color: rgb(0, 255, 0);"))
            self.statusLabel.setText('connected')
            time.sleep(2)
            while True:
                self.numbytes = self.ser.inWaiting()#size of input buffer
                print ('bytes in waiting: '+str(self.numbytes))
                rtn = self.ser.read(int(self.numbytes))
                if self.numbytes > 0:
                    self.Response_textEdit.setText(self.ser.read(rtn))
                else:
                    self.Response_textEdit.setText('No serial ouput/n')
                    break
    else:
        print ('serial not open')

Я получаю 'байтов в ожидании: 74' из моего заявления на печать, есть идеи?

Вот фактическая ошибка:

Traceback (последний последний вызов): Файл "SensComm \ SensComRes.py", строка 95, в doSerial Файл "site-packages \ serial \ serialwin32.py", строка 268, в прочтении Ошибка типа:> не поддерживается между экземплярами 'байтов' и 'int'

1 Ответ

0 голосов
/ 24 июня 2019

Вы уверены, что ошибка не в этой строке self.Response_textEdit.setText(self.ser.read(rtn))? Вы предоставляете serial.read с rtn в качестве параметра размера. Переменная rtn является выводом предыдущего serial.read, она будет байтовым объектом и вызовет полученную ошибку.

...