|
저는 개인적으로 CportLib 컴포넌트 설치하여 사용하고 있는데, 쉽게 사용가능합니다...
저의 답변은 이 컴포넌트를 사용한다는 가정이구요~~ ^^
아래의 질문은... 정확한 내용은 잘 모르겠지만, 개인적으로 해석을 해보면
님께서 사용한 예제에서 일단 컴포트가 연결이되면 데이터가 나간다고 했는데
(어떤 데이터인지는 모르지만) 아마 예제상에서 미리 데이터를 내보내게끔 처리가 되어있지않나
생각이 듭니다.
저는 1byte씩 보내는 함수를 만들어 사용하며,
void PutChar(unsigned char txdata)
{
try
{
FormMain->ComPort->Write(&txdata,1);
}
catch (...) {}
}
이런식말구도 string나 기타 방법으로 보내는 것이 가능합니다.
수신데이터 처리는 OnRxChar 이벤트를 이용합니다.
ComPort->Read하여 임의의 버퍼에 저장하도록 하죠...
그리고, 원하는 데이터를 추출하여 사용합니다.
아니면 Read하면서 count나 기타 방법으로 필요없는 데이터는 버리고
필요한 부분만 Read하여 사용하시면 됩니다.
물론 전자를 추천하구요...
그럼~~ 즐프하십시오~~
chac1_초보 님이 쓰신 글 :
: 프로그램 한지 얼마 안되서 cport로 통신 중인대 궁금 한것이 있어서 질문
:
: cport의 예제 프로그램으로 데이터를 받아서 그걸 변환을 하려 하는대여...
: 도대체 예제 프로그램에 소스가 얼마 안나와 있어서 데이터가 어떻게 전송이 되는르지 모르겠습니다
:
: /---------------------------------------------------------------------------
: #include <vcl.h>
: #pragma hdrstop
:
: #include "MTMainForm.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TMainForm *MainForm;
: //---------------------------------------------------------------------------
: __fastcall TMainForm::TMainForm(TComponent* Owner)
: : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
: void __fastcall TMainForm::ConnButtonClick(TObject *Sender)
: {
:
: ComTerminal->Connected = !ComTerminal->Connected;
:
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TMainForm::ComPortAfterOpen(TObject *Sender)
: {
: ConnButton->Caption = "Disconnect";
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TMainForm::ComPortAfterClose(TObject *Sender)
: {
: ConnButton->Caption = "Connect";
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TMainForm::PortButtonClick(TObject *Sender)
: {
: ComPort->ShowSetupDialog();
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TMainForm::TermButtonClick(TObject *Sender)
: {
: ComTerminal->ShowSetupDialog();
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TMainForm::FontButtonClick(TObject *Sender)
: {
: ComTerminal->SelectFont();
: }
: //---------------------------------------------------------------------------
:
: 이코드는 이해가 되는대 실행을 시키고 ConnButton을 누르면 어떻게 데이터가 전송이 되는지 궁금합니다..
:
: 또질문 실행을 시키는 16자리의 16진수가 올라오는대여
: 첨에 4개는 첫번째 n코더의 위치, 다음4개는 두번째 n코더의 위치
: 다음 4개는 " 속도, " 속도 인대
:
: 이중 두번째 n코더의 위치만 읽어 올라면 어떻게 해야 하는지여
|