gpt4 book ai didi

python - 获取从串行到输出到 TexCtrl 的持续更新

转载 作者:行者123 更新时间:2023-11-30 23:07:44 24 4
gpt4 key购买 nike

我有一个用 wxPython 编写的 GUI,它用作 PID 类型热 Controller 的软件 Controller 。我需要从热 Controller 获取恒定的读数,以一致地输出设备的当前温度。

假设我在另一个文件中有这个函数:

    def temp_read():
#this function will query a controller, then read the value

我导入该函数,并将其设置为 TextCtrl 小部件的值:

    out_current = wx.TextCtrl(self, pos=(250,8), size=(110,23), style=TE_READONLY)
out_temp = temp_read()#get value from function
out_current.SetValue(out_temp)#set value to widget

我如何设置它,以便它不断输出,同时保留 GUI 功能以允许用户设置其余的控制参数(设置温度和其他项目)?

最佳答案

您没有指定如何获取串行数据。不过我想你会使用pyserial。读取序列的主要问题是读取它会阻塞,直到下一个字符到达。而且因为它会立即尝试读取下一个字节(并再次阻塞),所以 GUI 永远不会空闲。

因此,本质上您必须在单独的线程中分离串行读取,并以线程安全的方式将结果传回。

为了读取 Arduino,我创建了一个 small running example (这也更详细地解释了为什么需要线程)。删除 DRS/DTR 行时,它将适用于任何串行设备。

编辑:如果您进一步查看 pyserial 库并查看 wxPython 示例,它正在使用线程。

关于python - 获取从串行到输出到 TexCtrl 的持续更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32062499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com