![](/img/trans.png)
[英]Arduino to Python - is serial input from readline() an integer or an actual string?
[英]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()以從與temp值相同的行獲取lux值。
例如,從線:Licht:870 Temp:19.01
我希望值為870和19.01的函數為getTemp和getLux
如果在port-object上readline()
,它將占用一行。 即如果你執行第二個readline()
,它將返回你的arduino發送的下一行,如果沒有第二行可用,則返回一個空字符串。
因此,您的arduino要么連續發送值,要么將讀取行存儲在Serializer
-object中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.