python 3 readline() 两次来自 arduino Serial Monitor
python 3 readline() twice from arduino Serial Monitor
我正在开发一个从 arduino 串行监视器读取一行的函数
线路输出:Licht:870 Temp:19.01
该函数第一次工作,但在我再次调用该函数后,它读取一个空行
这是我的代码:
import serial
import time
class Serializer:
def __init__(self, port, baudrate=9600, timeout=2):
self.port = serial.Serial(port = port, baudrate=baudrate,
timeout=timeout)
def open(self):
''' Open the serial port.'''
self.port.open()
def close(self):
''' Close the serial port.'''
self.port.close()
def write(self, msg):
time.sleep(1.6)
self.port.write(msg.encode())
def recv(self):
return self.port.readline()
这是我获取温度或勒克斯的代码:
def getLux(self):
lux = int(self.getTempLight()[1])
print(lux)
def getTemp(self):
temp = float(self.getTempLight()[3])
print(temp)
def getTempLight(self):
data =self.recv()
data = str(data)
list = data.split()
return list
调用函数 getTemp 后,我想调用函数 getLux() 以从与温度值相同的行中获取勒克斯值。
例如来自以下行:
光线:870 温度:19.01
我想要值 870 和 19.01 以及函数 getTemp 和 getLux
如果您在端口对象上执行readline()
,它将占用一行。 IE。如果你执行第二个 readline()
它将 return 你的 arduino 发送的下一行或者如果没有第二行可用则为空字符串。
因此,要么您的 arduino 连续发送值,要么将读取的行存储在 Serializer
-object 中。
我正在开发一个从 arduino 串行监视器读取一行的函数 线路输出:Licht:870 Temp:19.01 该函数第一次工作,但在我再次调用该函数后,它读取一个空行
这是我的代码:
import serial
import time
class Serializer:
def __init__(self, port, baudrate=9600, timeout=2):
self.port = serial.Serial(port = port, baudrate=baudrate,
timeout=timeout)
def open(self):
''' Open the serial port.'''
self.port.open()
def close(self):
''' Close the serial port.'''
self.port.close()
def write(self, msg):
time.sleep(1.6)
self.port.write(msg.encode())
def recv(self):
return self.port.readline()
这是我获取温度或勒克斯的代码:
def getLux(self):
lux = int(self.getTempLight()[1])
print(lux)
def getTemp(self):
temp = float(self.getTempLight()[3])
print(temp)
def getTempLight(self):
data =self.recv()
data = str(data)
list = data.split()
return list
调用函数 getTemp 后,我想调用函数 getLux() 以从与温度值相同的行中获取勒克斯值。
例如来自以下行: 光线:870 温度:19.01
我想要值 870 和 19.01 以及函数 getTemp 和 getLux
如果您在端口对象上执行readline()
,它将占用一行。 IE。如果你执行第二个 readline()
它将 return 你的 arduino 发送的下一行或者如果没有第二行可用则为空字符串。
因此,要么您的 arduino 连续发送值,要么将读取的行存储在 Serializer
-object 中。