qt按钮功能循环触发_(五) Qt多线程的使用

本文介绍了如何在Qt环境中利用多线程技术实现实时监测FPGA数据。通过创建Monitor类并使用QThread,使得程序在等待FPGA结束信号的同时,窗口仍能正常响应用户操作,提高了程序的效率和用户体验。
摘要由CSDN通过智能技术生成

552e1ff3f448970e83a1a0fe644c2df9.png

先前的文章我们介绍了Qt编写可视化程序的大致框架。现在,我们可以在这个框架的基础上探索如何实现我们想要的功能。在第一篇文章中,我曾说过我的项目需要用FPGA来处理PMT产生的光子信号。这个信号以TTL信号的形式传入FPGA中,而FPGA在计算特定时间内的脉冲数后,会把结果报告给计算机进行后续的处理。

需求分析与程序逻辑设计

读取FPGA上的数据看上去并不困难,因为我们有GetWireOutValue()这个函数可以调用。但什么时候读取FPGA上的数据却是个不小的问题,需要根据应用好好的设计一番。

我的项目中,FPGA会按顺序执行一些序列,每个序列会在对应的端口输出给定的电平并执行给定的时间。FPGA将在最后一个序列执行的过程中对PMT传来的TTL信号进行计数。将计数传给电脑后开启下一个周期,而电脑需要实时地将这些数字显示出来。

显然,我们需要一个结束信号与一个触发信号分别告诉电脑与FPGA什么时候开始读取计数,什么时候该开始执行序列。而FrontPanel所提供的WIRE OUT与TRIGGER IN的API可以很好地接收并发送信号。

于是,一个朴素的想法就是设计一个start按钮,点击的时候执行以下语句:

unsigned int feedback = 0;
    dev->ActivateTriggerIn(0x40, 0);
    while (fee
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值