我想使用多线程来实现多串口读写数据,用的是spcomm控件,
  想的是一个线程读一个串口,因为在用moxa卡.一共有8个口要读,所以应当写一个通用的线程来读串口,但是要保存从线程读出来的数据,如果把读取的数据传给公有变量,那公有变量也得设定8份,如果定义成私有变量的话,我想通过什么方法来访问私有变量,那样,就不用定义那么多的公有变量.但我不明确这种方法行不行,所以请教各位

解决方案 »

  1.   

    SPComm本来就是多线程的,为什么还要用多线程读?
      

  2.   

    我是这样:在Comm1ReceiveData读出到数据来用多线程来处理.  bufferLength := 64;
      move(buffer^,rxdbuf1,bufferLength);
      TRecedata.Create(rxdbuf1);
      

  3.   

    我想可不可以在create后,调用线程的public函数?如果能,我的数据就可以从公有函数输入,但是我所看到的例子都是create线程之后就不管了.我不知这是什么原因,还请高手明示!
      

  4.   

    spcomm本来就有两个线程:读线程和写线程.  读的时候直接引用OnRecieveData事件就可以了.如果有8个串口,我看你还是得加8个变量.如果8个串口读的数据是同一种类型的,并且不需要区分的话,都存到一个变量中就可以了
      

  5.   

    兄弟,我现在也是用的moxa卡.一共有400个口要读应该怎么做为好,我只做过对一个口的读取
      

  6.   

    http://www.56kc.net/web/commwatch.aspx这个控件本身就是多现成实现的
      

  7.   

    想请问楼一下,你是用的打开COM 口方式来读写数据的吧?这种方式最多只能是打开256个COM口;现在我有一问题:以下为系统大概结构:
    PC --> COM转TCP/IP转换器 --> 以太网---> PLC --->温度仪我要对360个点进行读写数据,不能用打开COM 口方式来读写数据,想用Socket 来实现可以吗?http://community.csdn.net/Expert/topic/3932/3932976.xml?temp=.8356745