【发布时间】:2016-10-20 17:05:43
【问题描述】:
我正在制作一个 python 脚本,它从 arduino 发送的串行端口读取数据并将其插入数据库。我正在使用 java 来制作一个图形化数据的 gui。我想在打开 java gui 时让我的 python 脚本在后台运行,但是我想在 java gui 关闭后立即关闭 python 脚本。下面是我的python代码,我还没有实现java gui。
import serial, sqlite3
conn=sqlite3.connect("ProyectoFinal1.db")
c=conn.cursor()
ser = serial.Serial('COM5', 9600)
def tableCreate():
c.execute("CREATE TABLE Temperatura(ID INT,valor INT,Fecha TIMESTAMP)")
c.execute("CREATE TABLE Humedad(ID INT,valor INT,Fecha TIMESTAMP)")
def dataEntry(tabla,valor):
c.execute("INSERT INTO %(tabla)s (Fecha,valor) VALUES(CURRENT_TIMESTAMP,%(valor)s)"%{"tabla":tabla,"valor":valor})
conn.commit()
def serialRead():
ser = serial.Serial("/dev/ttyUSB0")
for data in ser.readline():
if data:
serial=data
return serial
def parse(toParse):
toParse=toParse.split(" ")
humidity=toParse[0]
temperature=toParse[1]
toParse=[humidity,temperature]
return toParse
while True:
temperatura=parse(ser.readline())[1]
humedad=parse(ser.readline())[0]
dataEntry("Temperatura",temperatura)
dataEntry("Humedad",humedad)
print (humedad)
print (temperatura)
【问题讨论】:
-
这样运行
$ ./script_name.py & -
如果你想从 java 运行程序,那么它应该被标记为 java question,而不是 python。
-
你也可以考虑使用线程。运行 python 脚本的恶魔线程。在这种情况下,你杀死了 gui,你杀死了里面有 python 的线程。
-
@cdarke 这个问题可以在 python 孩子中解决(在 java 代码中进行调整)所以我认为我们应该保留 python 标签。
-
Pd 我正在考虑做一个打开java gui和python脚本的批处理文件,然后当你关闭java gui时,它也会关闭python进程
标签: python python-3.x arduino background-process