xiazhifei 发表于 2010-6-30 22:17:05

求教线程中安装的回调函数是否属于该线程

小弟初学CVI,想做一个232串口软件,收发FA ** ** ** **这样的数据,5个构成一个完整的数据帧吧,想了一下大体框架,其中发送我想应该利用异步定时器,接收应该有2个线程,一个负责将232数据放到安全队列中,一个线程负责处理安全队列中数据(可以有条件地读取,比如以FA开头的连续5个数据)。
撇开这些不谈,遇到一个问题,读取232应该是利用InstallComCallback 比不断地检测232队列长度要好吧,处理安全队列也是利用CmtInstallTSQCallback比不断检测安全队列长度要好吧,但Install的函数好像有时执行,有时不执行,不知道为什么,本人的思路来源于一篇论文《基于LabWindows/CVI的多线程通信技术》。是不是线程中安装的回调函数不属于该线程,还是其它什么语法等问题。

附上写的一个Demo和论文,求助


xiazhifei 发表于 2010-6-30 22:22:17

有时看网上的帖子,是不是开2个进程池要比开2个进程更加好些啊?

胆生毛 发表于 2010-7-1 01:36:57

此问题有些难,我也遇到过,仍然没有想通,哥们有好解决办法麻烦发上来分享下。

xiazhifei 发表于 2010-7-1 11:50:04

http://www.tctl.com.cn/accp/1490/1492/138772.html
有点启发,但具体的目前还是不知道。

xiazhifei 发表于 2010-7-1 16:12:13

我想应该是主进程获得了消息,但没有传递给次进程,所以就不能够触发次进程的回调函数。次进程中的回调函数如何能够获得主进程的消息呢?

ssmyjiob 发表于 2018-8-23 12:03:51

今天看到帖子,发现里面存在在了几个问题:
1、串口回调函数使用问题,假如使用特殊字符事件中断触发的话,貌似事件未选对。。
2、串口输入输出的清除位置不对,对于楼主在写入队列之前清除接收缓存区肯定会出现有时候有数据有时候无数据。
3、还有一个问题便是在线程中增加while(temp),挑不出来,写队列读队列,延时处理不当肯定会导致数据传输不稳定。最好不要延时对于快速数据接收起到实时。
最后看到楼主2010年发的贴,现在楼主应该是个大神了吧。这么多年没有人回帖,感觉接触CVI的人好少,同时感谢楼主分享,对于我们初学者来说,学习了很多,谢谢。

ssmyjiob 发表于 2018-8-23 12:11:43

小做修改,共同学习
页: [1]
查看完整版本: 求教线程中安装的回调函数是否属于该线程