block을 정해서 해당 block 만큼 들어올때까지 String Type의 변수에 넣었다가 length가 차면 처리하던지... 아니면 임의로 block의 시작부분에 특정 char(예를 들어 STX)를 넣고 block의 마지막부분에 특정 char(예를 들어 ETX)를 넣어서 STX와 ETX가 모두 수신될때까지 기다리다가 ETX가 수신되면 STX부터 ETX까지 잘라서 처리를 하던지... 아니면 두가지 방법을 모두 사용하기도 하죠. Serial 통신 프로토콜 자체에 오류를 감지하는 기능이 없기 때문에 일반적으로 두가지 방법을 보두 사용합니다.(그러나 가변길이일때는 위의 방법은 사용하지 못합니다. 대신 마지막에 BCC등을 붙여서 오류를 check 하기도 하죠.)
만약 받은 문자열을 그냥 Tmemo에 보여주기만 하면 된다면 전송부에 따라 다르겠지만 한줄이 끝날때마다 #10#13 등이 붙어서 오는 경우가 대부분입니다. 그러면 수신되는 data를 받아서 String type의 변수에 차곡차곡 쌓아두다가 #10#13이 수신되면 그 앞까지 잘라서 Tmemo로 Lines.Add 하시면 됩니다.
전 지금 Varian Async32를 쓰는데 이게 말씀하신 Async32인지는 모르겠네요. ^^;; 뭐 별로 확인하지 않고 사용한다는...
안녕하세요.
Lines.Add를 사용하지 마시고, Memo.Text := Memo.Text + ReadText를 사용하시면 될 것 같습니다.
즐코하세요.