从ser.read()读取字节

时间:2014-04-02 07:52:47

标签: python serial-port xbee

我有一个XBee路由器(XB-X)连接到超声波范围传感器,另一个XBee协调器(XB-Y)连接到我的PC。 XB-X将传感器读数发送到XB-Y。我试图使用Python从我的PC上的ser.read()中提取字节。

我输出了一个奇怪的字符串字符串“>>〜} 3@zi167.89”,我可能知道如何只提取浮点数(在本例中为167.89)?通过设置ser.read(size = xx)指定字节数。有没有其他方法可以做到这一点?

import serial
import zigbee
from xbee import ZigBee
import re

ser = serial.Serial("COM4", 9600)

while True:
   try:
      input = ser.read(20)
      m = re.search(r'(\d+\.\d+)', input)
      if m:
          num = m.group()
   # statements...

它现在正在运作,不小心将“群组”键入为“群组”。

1 个答案:

答案 0 :(得分:0)

只需使用正则表达式:

import re
input = ser.read()
m = re.search(r'(?P<num>\d+\.\d+)', input)
if m:
    num = float(m.group('num'))