시리얼통신프로그램사용설명서 Written by choi hong chul ggubugiya@hanmail.net 인터페이스 (Main Window) 메뉴바툴바 통신화면 데이터분석 데이터전송 - 메인윈도우는메뉴바, 툴바, 통신화면, 데이터분석을위한도구, 그리고데이터전송을위한부분으로나뉘어져있습니다. - 기본적인기능은툴바와메뉴바를통해서사용할수있으며, 데이터분석및데이터전송에필요한몇몇기능은메뉴바혹은툴바에구현되어있지않습니다. - 시리얼통신을통해수신되는데이터는통신화면을통해볼수있습니다. - 그리고데이터분석도구를이용해센서데이터등을그래프를통해분석할수도있습니다. - 마지막으로데이터전송도구를이용해데이터를전송할수있습니다. 인터페이스 ( 데이터분석 Window) 차트 그래프뷰 On/Off 그래프뷰컨트롤 - 그래프분석윈도우는메인윈도우에서수신데이터가있을시에 "Analysis Start" 버튼을통해실행할수있습니다. - 그래프분석윈도우는메인윈도우의데이터를그래프로그려주는차트영역과, 여러데이터그래프를선택적으로볼수있는컨트롤도구, 그리고그래프의확대 / 축소등을할수있는영역으로구성되어있습니다. - 1 -
통신시작 / 종료 - 시리얼통신을시작하기위해서는우선포트설정을해야합니다. - 포트설정을위해서는메뉴바의통신-> 포트설정을선택하거나툴바에서버튼을클릭하거나단축키로 Alt+P를누르면아래와같은포트설정창이나타납니다. - 위와같은포트설정창에서 Com Port 콤보박스에는현재연결가능한컴포트목록이나타나며, 컴포트가없거나다른프로그램에서사용중일경우더이상연결할수있는통신포트가없을경우 해당장치없음 이라고나타납니다. - 연결하고자하는포트를선택하고, 보레이트및기타설정을마치고 "Ok" 버튼을클릭하면포트설정이적용됩니다. - 포트설정이끝나고통신을시작하기위해서는메뉴바의통신-> 통신시작버튼을클릭하거나, 툴바에서버튼을클릭하거나, 단축키로 Alt+S를누르면됩니다. - 현재연결된통신을중단하고자할경우메뉴바에서통신-> 통신종료버튼을클릭하거나, 툴바에서버튼을클릭하거나, 단축키로 Alt+X를누르면됩니다. - 연결종료후이전에설정했던통신환경을그대로사용하여재통신할경우 통신시작 에관련된버튼을클릭하면되고, 보레이트등을바꾸기원하면, 포트설정 관련버튼을클릭하여재통신하면됩니다. 데이터의송신 / 수신 - 본시리얼통신프로그램은 RS-232 직렬통신중 TX, RX, GND선만을이용한 3선식비동기통신방식을사용합니다. - 그이외의통신은현재테스트해보지않아서통신의무결성을보장하지못합니다. - 수신기능 - 통신이연결된상태에서시리얼포트를통해들어오는데이터는 ASCII 문자포맷혹은헥사 (HEX) 포맷으로확인할수있습니다. - 기본데이터뷰형태는 ASCII 포맷형태이며, 이모드로데이터수신중 0x80이상의데이터가수신될경우자동으로헥사모드로변경됩니다. - ASCII 뷰모드에서헥사뷰모드로변경하고자할경우에는메뉴바에서화면설정-> 출력포멧메뉴를선택하거나, 툴바에서버튼을클릭하면됩니다. 그러면통신화면좌측에위치한첫줄의줄번호가숫자 0에서 00000h로변하는것을확인할수있습니다. - 반대로헥사뷰모드에서 ASCII 뷰모드로변경하고자할경우에는메뉴바에서위와동일한메뉴를선택하거나, 툴바에서버튼을클릭하면됩니다. - 송신기능 - 데이터송신은데이터수신화면에직접숫자혹은영문자등의 ASCII 문자를키보드로입력하여즉시전송을할수도있고, 메인윈도우하단에위치한데이터전송도구를이용하여전송할수도있습니다. - 통신화면에직접타이핑하여전송할경우는데이터뷰모드가 ASCII 모드일경우에만가능하며 Backspace는금지되어있습니다. - 또다른데이터전송방법은아래의도구를이용하는것입니다. - 위그림을통해알수있듯이총 6개의독립된형태의데이터를전송할수있습니다. - 위그림에서 ASCII 라고씌어진버튼은데이터전송포맷을변경하는버튼으로, 우측의 SEND" 버튼을클릭하면, 현재화면상에보여지는버튼상의글자데이터포맷형태로전송됩니다. - 전송가능한포맷으로는기본적으로 ASCII, HEX 모드가지원되며, 추가적으로 C언어에서정수데이터타입과같은형태인 char, unsigned char, short(int2:2bytes), unsigned short(uint2:2bytes), int(int4:4bytes), unsigned int(uint4:4bytes) 와같은형태의데이터포맷으로전송할수있습니다. - 2 -
- ASCII 포맷으로데이터전송시영문, 숫자를비롯한특수문자까지전송이가능합니다. 문자전송순서는좌측에서부터우측으로차례로전송됩니다. 전송예는아래와같습니다. - HEX 포맷으로데이터를전송할때는숫자, 영문 (A~F) 이외의특수문자나영문 (G~Z) 문자등은입력할수없습니다. 영문헥사문자입력시대 / 소문자도모두가능합니다. 그리고입력되는헥사문자의총개수는짝수개수로구성되어야만합니다. 또한헥사값을의미하는 0x" 등의선행문자는입력할필요없습니다. 마찬가지로전송순서는좌측부터우측으로진행됩니다. 전송예는아래와같습니다. - CHAR 포맷은 1바이트부호있는데이터전송시사용하는포맷으로사용범위는 -128~127사이의값입니다. 따라서이사이의숫자를입력하면 1바이트크기로데이터가전송됩니다. 같은포맷으로여러개의데이터를차례로전송하기위해서는각각의숫자중간에공백혹은콤마등의특수문자를통해구분지어입력하면됩니다. 만약입력한데이터중데이터범위를벗어나게되면경고메시지가출력되고해당데이터이후의데이터전송은중지됩니다. 전송예는아래와같습니다. - UCHAR 포맷은 CHAR 포맷과비슷하지만데이터범위가 0~255까지입니다. CHAR 포맷과전송되는데이터크기는 1바이트로동일합니다. 마찬가지로여러데이터전송시공백혹은특수문자등을통해구분하여입력하면됩니다. CHAR 포맷과마찬가지로중간에데이터범위를벗어나게되면해당데이터이후의데이터전송이중지됩니다. 전송예는아래와같습니다. - INT2 포맷은 2바이트크기를갖는부호있는정수형으로 short와같은형태의데이터타입입니다. INT2 포맷으로데이터전송도 CHAR 포맷과데이터전송방식이동일합니다. 다만 2바이트데이터중상위바이트부터전송됩니다. 예를들어 -20 정수값에해당되는헥사값으로는 0xffec이며, 따라서 0xff 값이먼저전송되고다음으로 0xec의값이전송됩니다. CHAR 포맷과같이여러데이터를차례로전송하기위해서는동일하게입력하면됩니다. 입력예는아래와같습니다. - UINT2 포맷은 INT2 포맷과같이 2바이트크기를갖는데이터포맷으로부호없이 0~65535까지의데이터범위를갖습니다. 전송방법은 INT2 포맷과같이상위바이트부터차례로전송되며, 여러데이터전송시특수문자등으로구분하면됩니다. 전송예는아래와같습니다. - INT4 포맷은 4바이트크기를갖는부호있는정수데이터타입으로 INT2형과같은형태로데이터전송이이루어집니다. 전송예는아래와같습니다. - UINT4 포맷역시 4바이트크기를갖고부호없는정수데이터타입을전송할때사용합니다. 데이터전송방식은 UINT2 형태와동일한형식으로이루어지며전송예는아래와같습니다. - 데이터전송의마지막기능으로파일전송기능이있습니다. 파일전송은메뉴바에서전송-> 파일전송메뉴를선택하거나툴바에서버튼을클릭하거나, 하단의 File Send" 버튼을클릭하거나단축키 ALT+F를눌러서전송할수있습니다. 전송버튼을클릭하면, 전송할파일선택대화상자가나타나며, 바이너리파일혹은헥사파일혹은 ASCII 코드로구성된텍스트파일등을선택하여전송할수있습니다. 데이터분석 - 데이터분석기능은센서등의데이터를수신받아서그래프형태로출력해줌으로서가시적인효과를얻을수있는기능입니다. - 데이터분석은실시간적으로들어오는데이터를바로그래프로그리면서확인할수도있고, 미리수신된데이터를분석하여그래프를통해확인할수도있습니다. 이둘의선택은데이터분석그룹에있는 RealTime Analysis" 체크박스를통해선택하거나메뉴바에서데이터분석-> 실시간으로분석메뉴를선택하거나단축키로 Alt+R을눌러서선택할수있습니다. RealTime Analysis" 체크박스에체크표시가되어있으면실시간분석기능을사용한다는의미이고해제되어있음은미리수신된데이터의특정구간을나눠서분석하는기능을사용한다는의미입니다. - 데이터분석은메인윈도우의통신화면에들어오는데이터의한줄단위를기본으로하며, 이줄에서분석을원하는데이터를추출하여분석할수있습니다. - 데이터를추출하는방법에는두가지방식이있으며, 첫번째는데이터이름을사용한추출방식이고, 두번째는구분자를통한구분방식입니다. 첫번째방식은통신화면상에 a:10, b:20, c:30" 등과같이숫자데이터앞에구분기호 : 가있으며그앞에데이터의이름이나열되어있는형태의데이터를분석하는방식입니다. 따라서이를위해서아래와그림과같이 "Data Name" 오른쪽의콤보박스에추출할데이터이름을추가하고 "Add" 버튼을통해등록하여야합니다. - 3 -
- 등록된데이터이름을삭제하고자할경우콤보박스에서잘못입력한데이터이름을삭제하고 Remove" 버튼을클릭하면리스트에서제거됩니다. - 마지막으로데이터이름을통한분석기능을사용한다는의미에서 Name Tag Reference" 체크박스에체크표시를합니다. - 두번째데이터추출방식은구분자를이용하는방식으로, 10, 20, 30 과같은형태로들어오는데이터를분석하는기능입니다. 우선그래프를그려표현하기위해콤보박스에데이터이름을등록하는데, 이때는데이터가들어오는순서에맞는이름을차례로입력해야합니다. 다시말개위와같이 10, 20, 30 과같이데이터가들어오고, 10에해당하는데이터이름이 a", 20에해당되는데이터이름이 b", 30에해당되는데이터이름이 c" 라면, 콤보박스에차례로 a, b, c를입력하여등록합니다. 그리고이때는 Name Tag Reference" 체크상자에체크표시를해제하세요. 그러면올바른데이터분석이됩니다. - 실시간데이터분석 - 실시간데이터분석은시리얼통신포트로실시간적으로들어오는데이터를바로그래프로그려줌으로서확인할수있도록하는기능입니다. 우선통신연결이안된상태에서 "Data Name Tag" 그룹박스내에있는 "Data Name" 콤보박스에추출할데이터이름을잘입력하고, 들어올데이터의최대최소값을입력하고 Realtime Analysis" 체크박스에체크표시를하고바로 Analysis Start" 버튼을클릭합니다. 그러면아래와같은데이터분석윈도우가나타나게됩니다. - 위와같은형태의창이나타나면이는데이터를받아서그래프로그릴준비가됐다는의미입니다. 이제통신시작버튼을통해통신을시작하면, 메인윈도우에들어오는데이터를 1줄단위로분석해서그래프로그려주게됩니다. - 기존수신데이터분석 - 실시간분석이아닌기존에수신한데이터를분석하고자할경우, 역시통신연결이해제된상태에서 "Data Name Tag" 그룹박스내에있는 "Data Name" 콤보박스에추출할데이터이름을잘입력하고, 이미수신된데이터들의최대최소값을입력하고 Realtime Analysis" 체크박스에체크표시를헤제하고 Analysis Start" 버튼을클릭하면됩니다. 미리수신된데이터가아래와같고, 이를데이터이름을이용한분석을통해그래프로분석한결과는다음과같습니다. - 4 -
- 비슷한형태로수신된데이터형태가데이터이름이없는형태일경우데이터분석및결과는아래와같습니다. - 5 -
데이터분석윈도우 - 데이터분석윈도우좌측에는각각의데이터의그래프를볼수있으며, 우측에는이그래프를더욱유용하게볼수있는컨트롤버튼이있습니다. 우선우측상단에 "Graph View On/Off" 그룹내의각데이터이름앞에있는체크박스를통해서현재차트에그려진그래프를숨기거나혹은다시볼수있도록할수있습니다. 즉선택적으로분석된그래프를눈으로확인할수있습니다. - 그리고그아래있는 "Data Area Reset" 그룹의컨트롤을이용해차트상의세로축에해당되는데이터의최대 / 최소값을변경함으로서더욱세밀하게센서데이터를확인할수있습니다. - 그리고차트의횡축을조절할수있는줌버튼을통해데이터범위를넓게혹은좁게해서유용하게볼수있습니다. 통신연결설정저장 / 열기 - 마지막으로통신했던통신환경및데이터분석도구설정값등을파일형태로저장해서추후에다시불러와서번거러운환경설정이없이바로적용할수있습니다. - 따라서우선현재통신환경을저장해야하는데, 메뉴바에서프로그램-> 현재설정저장메뉴를선택하거나, 툴바에서버튼을클릭하건, 단축키로 Ctrl+S 키를눌러서저장할수있습니다. 원하는위치에확장자 hsc라는이름으로환경설정파일을저장하면, 나중에이파일을다시불러와서기존에설정했던데이터를다시그대로사용할수있습니다. 그리고 hsc 확장자를갖는파일아이콘에서마우스오른쪽버튼을통해속성창에서연결프로그램설정을통해, 본프로그램을선택하면, 이후에는 hsc 확장자를갖는아이콘을더블클릭하면, 자동으로본프로그램이실행되면서환경설정이바뀌게됩니다. - 환경설정파일을불러와서새로적용하기위해서는, 메뉴바에서프로그램 -> 기존연결설정불러오기메뉴를선택하거나툴바에서버튼을클릭하거나, 단축키로 Ctrl+O를눌러서적용할수있습니다. - 그리고기존에불러온환경설정을새로다시초기화하여적용하고자할경우에는메뉴바에서프로그램-> 새로운연결메뉴를선택하거나, 툴바에서버튼을클릭하거나, Ctrl+N 키를눌러서적용하면됩니다. - 마지막으로기존설정된환경설정데이터를다른이름으로저장하고자할경우, 메뉴바에서프로그램-> 새이름으로저장메뉴를선택하면됩니다. 이프로그램은제작자인저의필요에의해서제작되었으며, 사용상에제한은없습니다. 혼자사용하기아까운프로그램이라생각되어이렇게배포하게됩니다. 따라서이프로그램을통한문제발생시책임은사용자에게있습니다. 혹시버그를발견하거나기능상의추가할사항이있으면 ggubugiya@hanmail.net 으로메일보내주시면감사하겠습니다. - 6 -