但是我不知道上传多少个字节,
SPcomm有没有receiveenmptyde 的
Spcomm有没有receiveempty的事件?

解决方案 »

  1.   

    SpComm没有提供你所要的方法,你只要不停地查询接收缓存区即可,
    不需要知道具体上传的字节数。
      

  2.   

    只有onreceivedata事件,而且spcomm的这个事件只是把当时接收到的数据反馈给你,但这些数据并不一定是发送段一次发送的数据,有可能是多次连续发送的结果。你的问题说的很含糊,你并不知道对方发的数据的格式,长度,以及发送结束的最终期限。那你怎么可能知道对方已经发完了。 
    如果真如我所说,问题肯定无解喽
      

  3.   

    在OnReveiveData事件中有两个参数,Buffer存储接收内容地址,BufferLength为地址长度:
    var
      RBuf:array[0..4096] of char;
    begin
      Move(Buffer^,Pchar(@RBuf)^,BufferLength);  for i:=0 to BufferLength do
      begin
        TmpStr:=TmpStr+RBuf[i];
      end;
    end;
    如果一段内容分几次发出,在发送处人为加入开始或结束标志,串口接收内容到
    缓存,你不必担心接收不完整!