我目前正在处理我必须为测量设备设置的 Qt GUI。该设备正在使用图像采集卡,它可以非常快速地从线阵相机中抓取图像。我的图像处理并不复杂,需要 0.2 毫秒才能完成,而使用 QCustomPlot 显示信号和处理结果大约需要 40 毫秒,完全可以。除了 GUI 输出之外,处理后的信号也将作为模拟信号由 NI DAQ 设备输出。
我的问题是我必须以恒定频率更新模拟信号,并且仍然不时更新 GUI。
我目前的方法或想法是创建一个数据池线程和两个工作线程。一个工作线程从图像采集卡接收数据,对其进行处理并更新数据池。第二个工作线程使用 NI DAQ 设备中的时钟给定的大约 2-5kHz 的特定频率更新 NI DAQ 的模拟通道。并且GUI线程会不定期地读取数据池,以大约20-30Hz的速率更新信号显示。
我想使用 Qt 线程管理和他的信号和槽机制,因为它的“简单性”并且因为我已经将线程与 Qt 及其线程类结合使用。
有没有更好的方法,有人有想法或任何建议吗?我是否有可能在线程计时方面遇到问题?
此外,是否可以在多核 CPU 上将一个线程分配给一个 CPU 内核,以便该内核仅处理该单个线程?