C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[20479] Re:Re:Re:Re:[질문] CPort 컴포넌트를 설치하고 예제까지 돌려봤는데요.. 질문이 있습니다.
kabaliero [] 1002 읽음    2002-07-29 14:02
저렇게 버튼 이벤트로 넣어서 해보면.. 정확히 12바이트 올라오네요..

OnRxChar 이벤트와는 다른 개념이라는것을 알겠습니다.

그런데요.. 이런식으로 버튼으로 Receive를 받는다는건 Test의 의미밖에 없는것 같습니다.

실시간으로.. Timeout 구조체에 정의해 놓은 조건을 만족시킬때 발생하는 이벤트는 없습니까?

OnRxBuf 라고 이벤트가 있는것 같은데.. 한번 테스트 해보려고 하면..

"Property and method Comxxxxxx are not Compatible" 이라고 나오네요..

암튼.. Timeout 구조체의 조건을 만족시킬때 발생하는 이벤트.. 없다면.. 그 방법을 부탁드리겠습니다.

도움을 주시면 감사하겠습니다...

빈센트 님이 쓰신 글 :
: void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
:
: 이 이벤트는 님께서 쓰시는 그런 용도는 아니구요..
: 위의 이벤트에 있는 코드 삭제하시구요..
: 이렇게 해보세요..
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: AnsiString Str;
: Str = "Test";
: ComPort1->WriteStr(Str);
: }
:
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
:    AnsiString Str;
:    ComPort1->ReadStr(Str, Count);
:    ShowMessage(Str);
: }
:
: kabaliero 님이 쓰신 글 :
: : 데이타 중간에 0x00은 있는데요.. 구조는 이렇게 올라옵니다.
: :
: : 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x57
: :
: : 그런데도..
: :
: : 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 이렇게 한패킷.
: :
: : 0x00, 0x00, 0x03, 0x57 이렇게 한패킷 끊어서 받는다는게 좀 이상하네요..
: :
: : InputCount를 검사해도 처음에는 8 이라고 읽힙니다.
: :
: : 도대체 무슨 문제일런지...부탁드리겠습니다.
: :
: : ComPort 설정은 하나도 건드리지 않았습니다.
: :
: : FlowControl 은 하지 않습니다.
: :
: : 빈센트 님이 쓰신 글 :
: : : 혹시 데이타 중간에 0x00이 있진 않나요?.
: : : 있다면 아래와 같이 변경하셔야 하구요..
: : : ReadStr() == > Read()
: : : WriteStr() == > Write()
: : :
: : : 아니라면 타임 인터벌,하드웨어 문제 일것 같네요..
: : :
: : : 플로우는 하시는 작업에 따라서 달라 질텐데,
: : : 예제와 같다면 한 루틴에서 하드웨어로 데이타를 보내고,
: : : InputCount를 검사해서 버퍼의 내용을 읽어 오는 방식이 되어야 할 것 같은데요..
: : :
: : : 그러니까, 작성하신 테스트 프로그램같은 방식에서는
: : : 같은 루틴에서 주고 받고가 이루어지는게 좋습니다.
: : :
: : :
: : :
: : :
: : : kabaliero 님이 쓰신 글 :
: : : : 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);
: : : : }
: : : : //---------------------------------------------------------------------------
: : : :

+ -

관련 글 리스트
20423 [질문] CPort 컴포넌트를 설치하고 예제까지 돌려봤는데요.. 질문이 있습니다. kabaliero 969 2002/07/26
20461     Re:[질문] CPort 컴포넌트를 설치하고 예제까지 돌려봤는데요.. 질문이 있습니다. 그냥 1229 2002/07/27
20446     Re:[질문] CPort 컴포넌트를 설치하고 예제까지 돌려봤는데요.. 질문이 있습니다. 빈센트 916 2002/07/27
20450         Re:Re:[질문] CPort 컴포넌트를 설치하고 예제까지 돌려봤는데요.. 질문이 있습니다. kabaliero 903 2002/07/27
20452             Re:Re:Re:[질문] CPort 컴포넌트를 설치하고 예제까지 돌려봤는데요.. 질문이 있습니다. 빈센트 976 2002/07/27
20479                 Re:Re:Re:Re:[질문] CPort 컴포넌트를 설치하고 예제까지 돌려봤는데요.. 질문이 있습니다. kabaliero 1002 2002/07/29
20488                     Re:Re:Re:Re:Re:[질문] CPort 컴포넌트를 설치하고 예제까지 돌려봤는데요.. 질문이 있습니다. 빈센트 1242 2002/07/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.