我有两个串口将数据输入Python。 一个是送GPS串(每秒约4行) 和来自气体监测器的其他进料数据串(每秒约1行)
我想同时监控gps和气体输入,并实时组合数据。我只需要从串口接收数据。
我的问题是我似乎无法弄清楚如何让两个python函数同时运行。
我在Python 2.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()
答案 0 :(得分:0)
我认为线程在你的情况下是一个不错的选择,因为你不期望非常高的频率。它将比多处理简单得多,因为内存仍然在线程之间共享,您不必担心。 唯一剩下的问题是你的收购不会完全同时,而是一个接一个。如果您确实需要同步数据,则需要进行多处理。
用于线程化:
ionic.Platform.ready(function() {
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});
现在你有2个采集线程正在运行。由于python的全局解释锁定,这不是同时正确,但将在2个线程之间交替。
有关线程的更多信息:https://pymotw.com/2/threading/ 有关GIL的更多信息:https://wiki.python.org/moin/GlobalInterpreterLock