我这几天学着使用API函数编写串口程序,用来接收工控机的数据,遇到了几个问题,希望大家帮帮忙。 
    1,我想显示具体的数据,同时能够显示图像,就是GDI图形,好比那些炒股软件一样,随着数据的变化,图形也会发生变化。这能不能用基本对话框实现?还是必须使用单文档或者多文档?需不需要使用线程?   
    2,我看到一些资料,一般有一个主线程和一个辅助线程,主线程用来处理图像数据以及数据发送给工控机等等;辅助线程在后台执行,用来监视串口,如果有数据送来了就接收。这是不是意味着WriteFile()要写在主线程里,ReadFile()函数要写在辅助线程里?可是我看到有些资料里并没有在辅助线程里使用ReadFile()函数,那麽数据还怎么被接收到啊?
    3,或者说使用线程编写串口程序需要那几个步骤呢?

解决方案 »

  1.   

    1、如果使用MFC,可以在任何基于CWnd的对象上绘图,CDialog或是一个CView都可以。单文档还是多文档要看软件的需求而定,需不需要使用线程是后台数据过程的问题和前台界面的表现形式没太大关系。2、一般分别为WriteFile和ReadFile建立两个线程,使读写互相不阻塞。3、对同一个串口读写都是串行的,不存在多线程向同一个串口上写的可能,读也是一样。写串口一般使用微软串口控件MSCOMM或者直接使用文件操作向串口设备进行读写。
      

  2.   


       基于对话框的可以实现,但你说的那样,象炒股软件一样,随着数据的变化,图形也会发生
    变化,比较难实现,用别人写好的一些控件吧,
       串口是比较容易实现的,在网上搜一下很多例子的,推荐你到VC知识库看看好多串口源程序可下载很不错的,也有很多。
       你的难点在曲线图形的绘制,ProEssentials v5图表组件实现科学图表绘制还不错
    不过是收费的控件,看看你能不能找到资料了,或是其他的控件,能找到曲线图形的绘制也不是难点了,就很容易了否则你自己编曲线图形的绘制程序很难的,祝你好运了!!
        
      

  3.   

    ProEssentials绘制速度有些慢,采样频率很高的话不好用
    这类程序源码网上挺多的,多搜搜应该能有收获,呵呵
      

  4.   

    ProEssentials挺好的,速度上应该能满足你的要求
      

  5.   

    这个应该用到多线程。
    对于串口操作,读和写分别建立线程,使读写互不阻塞,这里如果用到共享缓冲区,要处理好同步问题。
    当接收到数据时可以通过发送消息或其他方式通知主线程,使之进行必要计算,并显示为图形。
    具体图形显示,主要是GDI运用及逻辑计算,用什么显示都可以实现。
      

  6.   

    楼主的问题是Window基本概念还不清楚,先把基础学好,这些概念既然就有了。