Serial port 在Python中同时异步监视两(2)个串行端口
我有两个串行端口将数据输入Python。 一个是输入GPS串(大约每秒4行) 以及来自气体监测器的其他馈送数据串(大约每秒1行) 我想同时监控gps和天然气供给,并实时合并数据。我只需要从串行端口接收数据 我的问题是,我似乎不知道如何让这两个python函数同时运行 我在Python2.7中安装了线程模块和多处理模块 有什么好办法可以把序列信息结合起来吗?这是我的第三个Python程序,所以请温柔地对待我:-) 代码如下:Serial port 在Python中同时异步监视两(2)个串行端口,serial-port,python-multithreading,python-multiprocessing,Serial Port,Python Multithreading,Python Multiprocessing,我有两个串行端口将数据输入Python。 一个是输入GPS串(大约每秒4行) 以及来自气体监测器的其他馈送数据串(大约每秒1行) 我想同时监控gps和天然气供给,并实时合并数据。我只需要从串行端口接收数据 我的问题是,我似乎不知道如何让这两个python函数同时运行 我在Python2.7中安装了线程模块和多处理模块 有什么好办法可以把序列信息结合起来吗?这是我的第三个Python程序,所以请温柔地对待我:-) 代码如下: import threading import multiprocess
import threading
import multiprocessing
def readGas():
global GAScount
global GASline
while GAScount<15:
GASline = gas.readline()
GasString = GASline.startswith('$')
if GasString is True:
print GASline
GAScount = GAScount+1
def readGPS():
global GPScount
global GPSline
while GPScount<50:
GPSline = gps.readline()
GPSstring = GPSline.startswith('$')
if GPSstring is True:
print GPSline
GPScount = GPScount+1
openGPS()
openGas()
导入线程
导入多处理
def readGas():
全球煤气量
全球输气管道
而GAScount我认为线程在您的情况下是一个不错的选择,因为您不期望非常高的频率。它将比多处理简单得多,因为内存在线程之间保持共享,您不必担心。
剩下的唯一问题是,你的收购不会完全同时进行,而是一个接一个地进行。如果您确实需要同步数据,则需要进行多处理
对于螺纹:
import threading
# create your threads:
gps = threading.Thread(target=openGPS)
gas=threading.Thread(target=openGas)
#start your threads:
gps.start()
gas.start()
现在有2个采集线程正在运行。由于python的全局解释锁,这不是同时正确执行的,而是在两个线程之间交替执行
有关线程的更多信息:
关于GIL的更多信息:我认为线程在您的情况下将是一个不错的选择,因为您不期望非常高的频率。它将比多处理简单得多,因为内存在线程之间保持共享,您不必担心。
剩下的唯一问题是,你的收购不会完全同时进行,而是一个接一个地进行。如果您确实需要同步数据,则需要进行多处理
对于螺纹:
import threading
# create your threads:
gps = threading.Thread(target=openGPS)
gas=threading.Thread(target=openGas)
#start your threads:
gps.start()
gas.start()
现在有2个采集线程正在运行。由于python的全局解释锁,这不是同时正确执行的,而是在两个线程之间交替执行
有关线程的更多信息:
有关GIL的更多信息:谢谢!对于链接:-)谢谢!而对于链接:-)