|
CPort 컴포넌트를 깔고 예제까지 돌려봤는데요..
간단하게 프로그램을 짜서 하드웨어와 물려서 테스트를 해봤습니다.
문제는.. 12바이트가 올라와야하는데.. 8바이트, 4바이트로 잘려서 올라오네요..
타임 인터벌은.. ReadInterval만 50 줬거든요? 이 수치를 변환시켜봐도 8 + 4 로 올라오는건 변함이 없고요..
중간에 Event Char때문에 그런가..해서 evRxFlag를 false로도 해봤습니다만.. 여전히 8 + 4로 올라오네요..
8 bit, 1 stop bit, No Parity로 설정을 했고요.. FlowControl은 건들지 않았습니다.
무엇을 더 컨트롤해야하는지 궁금합니다. 아래 소스 올릴께요.. 답변 부탁드리겠습니다.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CPort"
#pragma link "CPortCtl"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ComPort1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ComPort1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
ComPort1->ShowSetupDialog();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Str;
Str = "Test";
ComPort1->WriteStr(Str);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
{
AnsiString Str;
ComPort1->ReadStr(Str, Count);
ShowMessage(Str);
}
//---------------------------------------------------------------------------
|