Serial port 在Python中同时异步监视两(2)个串行端口

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

我有两个串行端口将数据输入Python。 一个是输入GPS串(大约每秒4行) 以及来自气体监测器的其他馈送数据串(大约每秒1行)

我想同时监控gps和天然气供给,并实时合并数据。我只需要从串行端口接收数据

我的问题是,我似乎不知道如何让这两个python函数同时运行

我在Python2.7中安装了线程模块和多处理模块

有什么好办法可以把序列信息结合起来吗?这是我的第三个Python程序,所以请温柔地对待我:-)

代码如下:

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的更多信息:

谢谢!对于链接:-)谢谢!而对于链接:-)