我同时打开了多个串口,如果我收到串口1发来的数据,那么我就通过串口1把收到数据的确认信息发过去,如果我收到串口2的数据,我就通过串口2把确认信息发过去。这个功能怎么实现。

解决方案 »

  1.   

    用spcomm监控串口1,2
    它是多线程接收的,所以接收到以后你就会知道是哪个串口传过去的
      

  2.   

    我刚好做了一个串口通信协议,就是如果我收到串口1发送过来的信息和我想要得一样我就给他回复数据,一部分固定一部分从文本里读出来,给串口1发送回去你有用吗?这是部分代码:我自己的代码是这样的:begin
      setLength(strRecv,BufferLength);
      Move(Buffer^,pchar(strRecv)^,BufferLength);
      mmoComm.Lines.Add('已收到:'+intTostr(BufferLength)+'字节的数据');
       mmoComm.Lines.Add(strRecv);
            aa:=Tstringlist.Create();
            aa.LoadFromFile('c:\1.txt');
            a1:=aa.Strings[0];
            a2:=aa.Strings[1];
            a3:=aa.strings[2];
            a4:=aa.strings[3];
            a5:=aa.strings[4];
            a6:=aa.Strings[5];
            a7:=aa.strings[6];
            a8:=aa.strings[7];
            a9:=aa.Strings[8];
            a10:=aa.strings[9];
            aa.free;
        if strrecv='02,06,00,01,00,01,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,11,22,03' then
          begin
         v:=('02,06,00,01,00,01,'+a1+','+a2+','+a3+','+a4+','+a5+',11,22,03');
           Count:= Length(v);
         comm.writecommdata(pchar(v),count);
            end;
    希望能给你带来帮助,打开串口就不用说了吧!需要的话我给你代码。
      

  3.   

    用N个Spcomm控件,分别监视N个COM口
      

  4.   

    spcomm用多了,有时会产生错误
    介意用多线程比较好