|
그렇게 따로 따로 보내실 필요 없습니다.
만약 제가 그런 통신을 한다면 이렇게 할겁니다.
AnsiString SendData;
SendData.sprintf("\x02\x41%s\x03\x42", Edit2->Text.c_str() );
ComPort1-> WriteStr(SendData);
이렇게 보내면 됩니다.
이런 방식이 더 간단하고 ..
아래와 같은 방식으로 보낼때는
데이터 받는 쪽에서 한꺼번에 못 받을수도 있기때문에
그런 상황을 제대로 처리 하지 않은 장비라면
통신 문제가 발생할수도 있죠
물론 위와 같이 보낸다고
받는쪽에서 데이터를 항상 한꺼번에 받는다는건 아닙니다.
그런 경우를 신경써서 처리해야죠.
모든 통신이 거의 그러니까요..
멋진빌더 님이 쓰신 글 :
: 아까 도움 주신 고수님 감사 드리구요..
: 한가지 더 질문 드리겠습니다.
: 일단, 장비의 setting 을 하려고 하는데
: setting data값이 hex(0x02),hex(0x41),dec(1000),hex(0x03),hex(0x42) 입니다.
: dec(1000) 값전송에 AnsiString 값으로 날리면 안되는 것 같아요..
:
: AnsiString Str_meter;
: Str_meter = Edit2 ->Text;
:
: Panel4 -> Caption = Edit2 -> Text;
:
: char meter1[1] ={0x02};
: char meter2[1] ={0x41};
: char meter3[1] ={0x03};
: char meter4[1] ={0x42};
:
: ComPort1 -> Write(meter1,1);
: ComPort1 -> Write(meter2,1);
: ComPort1-> WriteStr(Str_meter); <--------- 이부분 입니다.
: ComPort1 -> Write(meter3,1);
: ComPort1 -> Write(meter4,1);
:
: 그냥 프로그램으로 날렸을때는 값이 날라 가는 것 같았는데..
:
: Str_meter 값은 1.000 ~ 9999 가지 변할수 있습니다.
: 한번 더 도움을 주세요.. 감사 합니다.
|