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
[74630] [질문] Escape Sequence control 문제..
단단한돌 [heaven2] 3151 읽음    2017-10-25 13:15
개발환경: C++ Builder XE5

측정 장비에서 수집한 데이터를 RS232로 수신합니다.
이상한 형태로 데이터가 수신되는데요,.. 특정한 Protocol Format이 있는 것이 아니라
0x1B(Escape Character) 이후 몇 개의 Character가 온 후 측정 데이터가 수신됩니다.
터미널 창에서 데이터를 수신해 보니 Escape문자 이후 수신되는 데이터는 터미널 창의 좌표 정보로 보입니다.

<1B>[4;08HLDV177#<1B>[4;08HLDV2161#<1B>[4;08HLDV3209#<1B>[4;08HLDV40#<1B>[4;08HLDV50#<1B>[4;08HLDV60#<1B>[4;08HLDV70#<1B>[4;08HLDV80#<1B>[4;08HLDG19#<1B>[4;08HLDG24#<1B>[4;08HLDG314#<1B>[4;08HLDG440#<1B>[4;08HLDG540#<1B>[4;08HLDG640#<1B>[4;08HLDG740#<1B>[4

//<1B>    => 0x1B Escape Control Character
//[4;08H  => 좌표 정보
//LDV177# => 실제 데이터: LDV(항목), 177(데이터)
//LDV2161# => 실제 데이터: LDV(항목), 177(데이터)


이렇게 데이터가 나오는 것은, RS232로 데이터 출력하는 것이 외부 장비에 데이터를 전달하기 위한
것이 아닌, 장비에 붙어 있는 조그만 액정에 표시하기 위한 데이터를 RS232로 분기해서 받아오는 것
같습니다.(이미 오래 전에 다른 분이 해 놓은 작업이라..)

질문: 이렇게 Escape Character 이후 터미널의 좌표 데이터나 기타 제어 데이터를 전송하고, 이후에 측정 데이터를
전송하는 것이 일반적인 것인 지? 질문드립니다.

인터넷에 Escape Sequence Control로 전송해도 '\n' 등과 같은 printf문에서의 Control 만 보이는데요..
이렇게 하는 것이 일반적인 지, 일반적인 규약은 어떤 것인 지, 제어 데이터가 아닌 실제 데이터를 취득하기 위해
String Parsing할 때.. 그냥 생짜로 새로 만들어야 하는 것인 지, 기존 라이브러리가 있는 지 궁금합니다.

현재는 날코딩으로 제어문자를 모두 날리고 데이터용 문자들만 취해서 Token화 해서 처리하려 합니다.
('#'을 delimiter로 해서 Token화 해서 사용하려 합니다.)
감사합니다.


+ -

관련 글 리스트
74630 [질문] Escape Sequence control 문제.. 단단한돌 3151 2017/10/25
74632     Re:[질문] Escape Sequence control 문제.. 송신영 3193 2017/10/26
74634         감사.. VT100 터미널 화면 제어 코드..Re:Re:[질문] Escape Sequence control 문제.. 단단한돌 3419 2017/10/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.