Python不断刷新变量

时间:2016-10-26 20:11:29

标签: python real-time obd-ii real-time-updates

我不知道这是一个愚蠢的问题,但我真的很难解决这个问题。

我使用obd库进行编码。 现在我的问题是我的变量的持续实现。 例如,一个变量输出汽车的实际速度。 此变量必须每秒或2秒更新一次。要执行此更新,我必须运行2行代码

cmd = obd.commands.RPM
rpm = connection.query(cmd)

但我必须检查一些while循环和if语句中的rpm变量。 (实时)

有没有机会完成这件事? (另一个类或线程或其他东西)这将帮助我在编程项目中实现跨越式发展。

谢谢:)

1 个答案:

答案 0 :(得分:0)

使用Async接口而不是OBD:

  

由于标准query()函数是阻塞的,因此它可能会对UI事件循环造成危害。为了解决这个问题,python-OBD有一个Async连接对象,可以用来代替标准的OBD对象。 Async是OBD的子类,因此继承了所有标准方法。但是,Async添加了一些以控制线程更新循环。此循环将使您的命令值与车辆保持同步。这样,当用户查询汽车时,会立即返回最新的响应。

     

通过调用start()和stop()来控制更新循环。要订阅更新命令,请使用您请求的OBDCommand调用watch()。由于更新循环是线程化的,因此只能在循环停止时监视命令。

import obd

connection = obd.Async() # same constructor as 'obd.OBD()'

connection.watch(obd.commands.RPM) # keep track of the RPM

connection.start() # start the async update loop

print connection.query(obd.commands.RPM) # non-blocking, returns immediately

http://python-obd.readthedocs.io/en/latest/Async%20Connections/