|
폼에 메모장 하나 올려놓으시고
아래 처럼 Count라도 찍어보시고
void __fastcall TForm1::Comm1RxChar(TObject *Sender, DWORD Count)
{
Memo1->Lines->Add("Count="+IntToStr(Count);
아니면 데이터를 직접 Hexa 코드로 찍어보시면 답이 나오지 않을까요?
번외편님이 올린 코드만으로는 data[6]에 뭐가 들어가서 조건에 안들어가는지
알 수 있는 방법이 없죠
번외편 님이 쓰신 글 :
: 안녕하십니까.
: 현재 C++ Builder6에 comm 컴포넌트를 가지고 시리얼 통신을 하고 있습니다.
:
: 데이터를 받을때
:
: 변수들 선언
:
: void __fastcall TForm1::Comm1RxChar(TObject *Sender, DWORD Count)
: {
:
: if(data[6] == 0x12)
: {
: 변수에 저장;
: Timer로 실행;
: }
:
: if(data[6] == 0x22)
: {
: 변수에 저장;
: Timer로 실행;
: }
: ...
:
: }
: 이런식으로 코딩하는데 제 PC에서는 잘 통신이 잘 되는데
: 다른 PC에 실행파일을 옮겨서 실행하면 통신이 되지만 저중에 특정 if문만을 실행하지 못합니다.
: 그 특정 if문은 테이블값이라서 데이터가 1800Byte인데
: ReadTimeout시간이나 WriteTimeout시간을 초과해서 이러한 문제가 생기는것 같아
: 시간을 늘려줬는데도 마찬가지입니다.
:
: 운영체제는 같은 windowsXP를 쓰고 있어서 변수선언상의 문제는 아닌걸로 판단됩니다.
: 혹시 같은경험이 있거나 어떤한부분을 손봐줘야 제 PC뿐만 아니라 다른 PC에서도 동작을 정상적으로
: 할수 있는지 아시는분 있으시면 도움 부탁드립니다.
:
: 그럼.. 좋은 하루 보내세요
|