串行EOT作为终止符

时间:2019-01-23 17:46:00

标签: python pyserial

我用<STX>RFID String<EOT>读了一些RFID标签

我如何将read_until与这个EOT字符一起使用。我尝试过:

serResponse = self.ser.read_until(chr(4))

没有用,超时后我得到了字符串

[编辑]

while True:
    for c in ser.read():
        line.append(c)
        if c == '\n':
            print("Line: " + ''.join(line))
            line = []
            break

如何更改'\ n'以检查EOT或STX字符。

一个标签的print(c)输出: 2 82 51 48 52 50 70 65岁 50 49 65岁 49 4

我以为我可以检查c =='4'或c == 4,但这没用。

1 个答案:

答案 0 :(得分:1)

该代码段对我有用,eol作为字节数组,然后一个字节地读入一个字节数组,并检查最后一个字节是否为eol

eol = bytearray([4])
    leneol = len(eol)
    line = bytearray()
    while True:
         c = self.ser.read(1)
          if c:
              line += c
              if line[-leneol:] == eol:
                  break
          else:
              break