개발환경: 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화 해서 사용하려 합니다.)
감사합니다.