我有一个执行一些工作的python进程。程序必须循环执行。它从串口接收数据,对数据执行处理,并在Sqlite中每1秒存储一次数据。
我阅读了许多关于使用Timer对象进行线程化的帖子,但我无法解决问题。 结构基础代码是:
import sqlite3
from datetime import datetime
import json
import serial
from threading import Timer
#global variables
sqlpath = 'db.sqlite3'
def insertdata(sqlpath,data):
#insert data in sqlite
def process_data(strdata):
#process serial information
t = Timer(1,insertdata,[sqlpath,data])
t.start()
if __name=='__main__':
while True:
serial_str = serialport.readline()
#process data
data = process_data(serial_str)
我有两个问题: 1 - 数据在循环内刷新。如何将数据传递给回调函数? 2 - 回调函数(在此代码中)仅执行1次
有什么想法解决这个问题吗? 非常感谢!