MSComm1.Output := Command; // Command 는 String 변수
이렇게 했는데 데이타가 #128 보다 작으면 괜찮은데
이보다 크게, 즉 $AD 나 $C0 같은 큰 값을 보내면 받는 쪽에서 항상 그 값이
#00 으로 클리어 되어 버리더군요. 보내는 데이타 값은 확인 했었습니다.
보내는 부분은 정상인데 받을 때 이 부분이 클리어 되서 보내지는 걸 보고 상당히 당황했습니다.
짐작컨데 보내는 쪽에서 128 데이타를 넘기면 이런 문제가 발생하는가 보더군요.
이용하는 장비중에 (지금은 아니지만 조만간에) #128 을 넘는 프로토콜을 데이타로 갖는 놈이 있거든요. 그래서 고민입니다.
고수님들 방법이 없을까요?
검색을 해보시고 질문을 해주시는게 좋을 것 같네요.. ^^
일단 원문을 그냥 밑에 붙였습니다.
=====================================================================
안녕하세요 여유로움입니다.
MSComm을 이용하여 이진형식의 데이터를 보내려면
바이트배열을 가지고 있는 Variant를 보내야 합니다.
간단히 코딩해 보면
var
SendStr : Variant;
begin
SendStr := VarArrayCreate([0,9],varByte);
SendStr[0] := 3;
SendStr[1] := 32;
SendStr[2] := 33;
SendStr[3] := 48;
SendStr[4] := 60;
SendStr[5] := 97;
SendStr[6] := 128;
SendStr[7]:= 129;
SendStr[8] := 200;
SendStr[9] := 255;
MSComm1.Output := SendStr;
위와 같이 하시면 될것 같습니다.
부디 도움이 되었길.....
늦지 않았나 모르겠네요
=====================================================================