마이크로 프로세서나 기타 장비등을 개발할때 디버깅이나 기타 용도로 통신 프로그램을 많이 사용합니다.
대체적으로 유명한 통신 프로그램인 이야기를 많이 사용하죠.
근데 지금 회사에서 사용하는 통신 방식을 이야기에서는 쓸수가 없습니다.
데이터 자체가 xxxxxxx+줄바꿈 으로 들어오는게 아니기 때문이죠.
SOH라 부르는 0x01로 시작해서 EOT라 부르는 0x04로 끝나게 되어있습니다.
그래서 테스트용 프로그램을 만들다가 몇가지 기능을 확장시켜 대부분의 시리얼 통신에 사용할수 있도록 손을 봤습니다.
이름은 Ya~G 약이 아니라 야~그 입니다. 이야기의 사투리죠..
근데 야~그가 경상도 사투린줄 알았는데 전라도 사투리군요. --; 경상도 사투리는 이바구..
전 경상도 출신입니다. ^^; 그냥 처음에 지은 이름이라 냅두고 쓰기로 했어요.
실제 프로그램 화면과 아래의 설명 화면이 약간 다를수 있습니다.
아래 화면을 보면 이야기와 거의 비슷합니다.
좌측에 ASCII 코드 부분을 메뉴의 보기 부분에서 보이가나 숨길수 있게 되어있습니다.
메시지를 ASCII나 Hex 코드로 볼수도 있으며 잠시 멈춤 기능이라는게 았어서 통신은 계속 이루어지면서 화면 갱신만 잠시 멈추는 기능도 있습니다.
간혹 통신 상태 중 확인을 해볼 경우가 있는데 그때마다 통신을 끊어서 본다면 그건 문제겠죠.

통신을 하기 위해 설정을 하는 부분입니다. 가장 설명이 복잡합니다.
일반적인 통신 설정과 비슷하면서도 약간 복잡합니다.
좌측 상단에는 시리얼 관련 설정이 있고 그 옆에는 통신창의 색상을 지정할수 있게 했습니다.
그 아래 부터가 조금 복잡한데 어떻게 보면 쉽습니다.
시작 문자,종료 문자 라는 것은 통신상에서 문자의 시작을 알리는 코드가 있을때 지정을 하면 됩니다.
예를 들어 아래의 예는 GPS 신호를 받는 부분입니다.
GPS 신호는 $ 로 시작해서 0x13 0x10 으로 끝납니다.
이 코드를 적어주면 되는데 16진수로 적어줘야합니다.
왜냐면 앞에 적었던 저희 회사는 0x01 이라는 시작 코드,0x04라는 종료 코드를 가지는 통신 프로토콜을 사용중인데 이것은 일반적인 키보드로 입력할수 있는 문자가 아니거든요.
그래서 키보드 입력에 문제가 없도록 16진수로 입력을 받도록 했습니다.
그 아래는 화면에 시작 문자와 종료문자를 보여줄지 대한 부분입니다.
GPS 신호 중에 $는 화면에 보여도 문제가 없습니다만 0x13 0x10등은 보여봐야 별 도움도 안되죠.
그리고 저희가 사용하는 0x01이나 0x04등도 마찬가지구요.
꼭 볼 필요가 없다면 체크를 하시면 됩니다.
메시지를 보낼때 시작과 종료 문자가 붙는 경우가 있고 아닌 경우가 있습니다.
예를 들어 받을때는 시작과 종료 문자가 있지만 보낼때는 그냥 문자 하나만 보내거나 (메뉴 중에 번호로 선택을 하는 경우) 보내는 그대로 처리가 되는 경우에는 시작,종료 문자를 같이 보낼 필요가 없겠죠?
근데 저희 장비는 받을때도 0x01,0x04를 붙여야하지만 보낼때도 0x01,0x04를 붙여야합니다.
이런 차이가 있기에 옵션으로 처리를 했습니다.
그 아래는 통신 내용을 저장할 옵션입니다.
저장을 할지와 저장할 파일의 헤더명,폴더 등을 지정할수 있습니다.
그리고 현재 입력된 설정을 저장해서 불러올수 있도록 설정 저장이라는 버튼과 기존에 작성된 설정에 대한 목록을 볼수 있습니다.

ASCII-> 라는 부분의 버튼을 누르시면 아스키 코드에 대한 코드를 볼수 있습니다.
시작과 종료 문자 입력시에 이 부분을 참고하시면 됩니다.

화면 하단에는 일반 통신 프로그램처럼 1줄의 메시지만 보낼수 있는 채팅창과 메모등에 입력받거나 파일로 되어있는 메시지를 보낼수 있는 것이 있습니다.
예를 들어 각 장치별로 상태를 1초 간격으로 체크를 해야한다면 이 메모부분에 그 코드들을 넣고 하단의 체크 박스를 선택하면 일정 간격으로 계속 메시지를 보내게 됩니다.

제가 ATmesga128을 공부하면서 시리얼 통신 프로그램을 이것 저것 사용해봤는데
제 입맛에 맞는게 없네요.
한두가지 아쉽거나 영~ 아니거나..
이 프로그램은 아주 단순하면서 기존 통신 프로그램에서는 없는 약간의 부분을 추가한 것에 불과합니다만 그래도 나름대로 만족을 합니다.
VT 기능이나 안시 기능이나 파일 업로드 기능등은 없지만 단지 시리얼 통신만으로 특정 장비와 연결해서 작업을 하거나 이것 저것 프로토콜이 다른 장비들을 사용할때 유용하지 않나 싶네요.
아마 버그도 수두룩할겁니다. ^_^;;
실행 파일과 간단한 설정 파일 1개가 다고 통신 설정용 예제 파일이 몇개 들어있습니다.
압축만 풀어서 사용하시면 됩니다.
혹시 사용해보시고 뭔가 수정이나 추가나 버그나 기타 등등의 의견이 있으시면 적어주세요. ^__^? 능력껏 처리해보겠습니다.
다운로드 : http://www.dudals.net/out_link/Ya~G1.0.0.4.zip