📄 subject_40410.htm
字号:
<p>
序号:40410 发表者:桎梏 发表日期:2003-05-18 15:53:55
<br>主题:请教:串口采集数据可否边采集数据变画曲线?
<br>内容:各位大哥好!<BR>小弟做串口采集数据,在一个对话框有个按钮作为采集数据时候用<BR>当采集数据中,程序就不能动了,当满足采集数据停止后程序才可以鼠标操作<BR>这说明采集过程中程序占用资源很严重<BR>假如我想采集数据同时画出采集数据的趋势图形<BR>这样由于程序占用资源肯定不能画出来的<BR>这能否通过多线程或者其他方法实现呢<BR>请各位指点!<BR>谢谢!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2003-05-18 17:23:42
<br>内容:可建立一个数据采集线程,另外图形绘制也可单独使用一个线程。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:桎梏 回复日期:2003-05-18 18:07:50
<br>内容:我现在是在对话框里用MSCOMM采集数据<BR>现在要改为多线程容易吗?<BR>我以前没有涉及过多线程的编程<BR>请问具体该怎么做<BR>请指教!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fenghan 回复日期:2003-05-19 10:01:17
<br>内容:可以新建一个工作线程,在采集按钮按下后,启动线程。这些在很多书里都能找到。<BR>也就是在对话框文件中建立全局函数(工作线程函数)UINT MyThread(LPVOID ThreadParam){},在按钮OnClicked事件中使用AfxBeginThread(MyThread,ThreadParam);<BR>同时如果要使用画图线程的话,应该注意线程互斥的问题。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:桎梏 回复日期:2003-05-19 11:20:41
<br>内容:to fenghan :<BR>谢谢你的建议<BR>我大概懂了该在哪儿用线程了<BR>但是你说注意线程互斥问题<BR>这又是怎么回事啊?<BR>该如何解决?<BR>谢谢!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Jaeger 回复日期:2003-05-19 13:13:09
<br>内容:线程互斥指多线程同时访问一个公共的数据。在实时监测的情况下,例如采集的线程将串口的数据存储到数组中,而做图的线程需要按原始的数据进行绘图,如果同时访问,就会形成线程互斥。<BR>可以设置一个变量,判断两个线程的状态,避免线程之间的竞争。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:桎梏 回复日期:2003-05-19 14:40:50
<br>内容:我想在采集数据的同时实时的显示采集数据所画图形<BR>这就肯定涉及到同时访问一个公共的数据<BR>采集一个数据就画出来啊!<BR>而且在采集2个数据之间时间间隔非常短,大概50毫秒左右<BR>在采集数据(用了一个对话框)时候程序几乎不能动弹了<BR>这样用多线程应该能在另外一个界面如视图或者对话框里画采集数据曲线图<BR>但是就需要同时访问一个公共的数据<BR>请问该怎么办啊?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:稻子 回复日期:2003-05-20 16:45:29
<br>内容:我是这样做的:(比较简单易行)<BR>建个编辑控件:在控件里画矩形,宽度只是1,高度是你采集的数据。<BR>只要设置一个Ctop变量。<BR>void cmydialog::onpaint()<BR> CWnd*pWnd=GetDlgItem(IDC_QX);<BR> CDC*pControlDC=pWnd->GetDC();<BR> if(s1==0)<BR> {<BR> pWnd->Invalidate();<BR> pWnd->UpdateWindow();<BR> s1=1;<BR> }<BR> pControlDC->SelectStockObject(BLACK_BRUSH);<BR> pControlDC->Rectangle(Cleft,Ctop,Cright,Cbotten);<BR> pWnd->ReleaseDC(pControlDC);<BR><BR>不知是不是你需要的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:桎梏 回复日期:2003-05-20 17:56:44
<br>内容:to 稻子 :<BR>由于我采集数据时候需要不停的通过串口发送和接收数据<BR>时间间隔只有50毫秒<BR>所以程序几乎不能动弹<BR>你这样做就没有效果了<BR>所以我想知道是不是用多线程能否解决这个问题<BR>可惜我还不没有接触过多线程的编程<BR>所以还一筹莫展哦
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:syosinsya 回复日期:2003-05-21 13:03:19
<br>内容:看一下下面的4.3与4.4就什么都明白了<BR>http://www.vchelp.net/vchelp/zteach/teach_sp_4.asp?type_id=67&class_id=1&cata_id=14&article_id=764
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -