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
[10874] Re:Re:Re:Re:Re:[질문] 그런데요...
개박살.U&I [inutero] 1055 읽음    2001-09-09 12:54

안녕하세요? 또, 접니다 ^^;

소스를 보니까요

이것이 왜이렇게 됐는지 알겠네요

일단, 상황을 정리하자면, LF는 LineFeed의 약어로 보통 ASCII 통신의 프로토콜의 Tail(꼬리부분)

으로 많이 쓰이는 문자이죠 ^^

라인피드란, 키보드에서 엔터를 치면 나오는 거 맞습니다. (한줄내림 = Enter)

'SYST:REM<여기에 커서를 위치시키고 엔터!>LF'

여기서, 왜 이런현상이 나오냐면,, 소스를 보면,,

ret = Wincom1->writecom(m_PortNumber, WideString(edtSEND->Text), getlen-2);

이부분있죠? 여기서 getlen-2 가 문제이죠

보낼때 전체문자열의 -2를 해서 보내니까,
 
'SYST:REM<여기에 커서를 위치시키고 엔터!>LF' (여기서 LF는 꼭 아무문자 2개를 쳐도 됩니다. AB, CD)

이렇식으로 쳐야지면 'SYST:REM(0x0D)(0x0A)' 가 나갈수 있었겠죠?

-2 만 제거하시고 해보시면, SYST:REM(엔터) 를 치시면 정확히 나간다고 생각이 드네요

그럼 참고하세요 (제생각이 맞기를... ^^)

박보연 님이 쓰신 글 :
: 먼저 답변 감사드립니다.
:
: <엔터>키가 LF라는 말씀인가요? (또 잘못 이해한건지...)

: 만약 그렇다면..
: 명령어 끝에 LF를 쓰지 않고 'SYST:REM<엔터>'라고 보냈을때..
: DMM이 제대로 동작해야 할텐데, 에러가 발생한다는겁니다.
: 말씀 드렸듯이 'SYST:REM<여기에 커서를 위치시키고 엔터!>LF'라고 보내면
: 제대로 동작을 하구요...
:
: 아래 코드는 전송 부분인데...
: ------------------------------------------------------------------------------------
: void __fastcall TForm1::edtSendChange(TObject *Sender)
: {
:    long  ret;
:    int   getlen;
:
:    getlen = edtSEND->Text.Length();
:
:    if( getlen > 2)
:      {
:       if( edtSEND->Text.Pos((char)0xd)!= 0 )
:        if( edtSEND->Text.Pos((char)0xa)!= 0 )
:           ret = Wincom1->writecom(m_PortNumber, WideString(edtSEND->Text), getlen-2);
:           edtSEND->Text = "";
:        }
: }
: --------------------------------------------------------------------------------------
: 아무래도 제가 제대로 이해하지 못해서 이런 문제가 발생하는것 같다는 생각이 듭니다.
: 위 코드에대해 설명해 주시면 감사하겠구요...
:
: 그리고 제가 하려는 것은 DMM에서 계속적으로 전압값을 읽어오는 것입니다.
: 따라서 전압을 읽어올 때마다 명령어를 수동으로 전송할 순 없으니까
: 프로그램상에서 자동적으로 전송하려고 하는데,
: 그렇다면 for문에서 명령어를 반복적으로 전송하면서
: 전송할때마다 끝에 'LF'를 붙여주면 될것같기도 한데...
: 혹 맞다면 어떻게 해야 끝에 'LF'를 추가해서 전송할 수 있는지..
: 아님 다른 방법은 없는지 가르쳐 주시면 감사하겠습니다.
:
: 답답하시더라도 이해해주세요...^__^  아직 모르는게 너무 많아서...
:
: 늘 답변에 감사드리구요...
:
: 기다리겠습니다.

+ -

관련 글 리스트
10811 [질문] 시리얼통신으로 DMM에 명령어를 전송할때... 박보연 1128 2001/09/07
10813     Re:[질문] 시리얼통신으로 DMM에 명령어를 전송할때... 개박살.U&I 1157 2001/09/07
10855         Re:Re:[질문] 수신 데이터가 이렇습니다. 박보연 943 2001/09/08
10856             Re:Re:Re:[질문] 수신 데이터가 이렇습니다. 개박살.U&I 902 2001/09/08
10859                 Re:Re:Re:Re:[질문] 그런데요... 박보연 942 2001/09/08
10874                     Re:Re:Re:Re:Re:[질문] 그런데요... 개박살.U&I 1055 2001/09/09
10895                         Re:Re:Re:Re:Re:Re:[감사] 고맙습니다! ^__^ 박보연 909 2001/09/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.