시리얼 통신 테스트 프로그램 jwRsMonitor 1.0.4

2015.05.21 16:41 컴퓨터/유틸리티

시리얼 통신 테스트 프로그램 jwRsMonitor 1.0.4

시리얼 통신 테스트 프로그램 jwRsMonitor 1.0.4입니다. 시리얼 통신 테스터로 jwRsTester를 올렸습니다만, jwRsMonitor는 두 개의 포트 데이터를 하나의 화면에서 같이 비교해서 볼 수 있고 xor, check sum, crc16 계산 등 다양한 기능을 갖추었습니다. 이전 jwRsMonitor 1.0.3 버전이 윈도우 7 이상에서 두꺼워진 윈도우 테두리 두께 때문에 스크롤바가 생겨서 불편한 문제를 수정하고 통신 포트 선택도 사용 가능한 포트만 메뉴로 구성해서 편리성을 높였습니다.

시리얼 통신 테스트 프로그램

▲ jwRsMonitor는 두 개의 시리얼 포트를 동시에 열어서 송수신 데이터를 비교하면서 볼 수 있습니다.

jwRsMonitor 통신 포트 선택

jwRsMonitor

▲ 통신 포트와 통신 속도를 선택하는 부분입니다. Port, Baud, Parity, Daba bits, Stop bits 글을 클릭하면 해당되는 항목이 메뉴로 출력됩니다.

시리얼 통신 테스터

▲ 예를 들어 Port를 클릭하면 사용할 수 있는 통신 포트가 메뉴로 출력됩니다.

시리얼 통신 테스트 프로그램

▲ 한가지 주의할 점은 다른 애플리케이션이 통신 포트를 사용 중이라면 아예 선택할 수 없도록 포트 메뉴에 출력되지 않습니다. 위 이미지처럼 잘 보이던 COM1이 보이지 않는다면 jwRsMonitor의 어느 한쪽 또는 다른 애플리케이션에서 COM1을 사용하는 중일 것입니다.

데이터 전송

jwRsMonitor

▲ (1) 문자 데이터를 입력하는 곳입니다. 9개의 탭으로 구성되어 있으며 '~' 문자 또는 '{', '}' 괄호를 이용해서 HEX 값을 지정할 수 있습니다. (2)에 있는 버튼으로 데이터를 전송합니다. (3)은 전송 데이터를 STX, ETX 같은 문자열을 섞어서 보내기 위한 선택입니다. (4)는 전송 데이터에 대한 CRC 계산입니다. 문자열 길이와 체크썸, xor, crc16, crc32 값을 보여 줍니다. 주의할 점은 crc16 계산 값은 사용 곳에 따라 값이 다를 수 있습니다. 계산하는 방법이 다를 수 있기 때문이죠. jwRsMonitor의 crc16은 모드버스용이며 crc32는 인터넷에 돌아다니는 소스를 참고했습니다.

시리얼 통신 테스터

▲ 그런데 전송 버튼이 두 개이죠? 하나면 될 것 같은 전송 버튼이 두 개인 것은 jwRsMonitor의 매크로 기능 때문입니다. 통신에서 날짜와 시간을 보내는 경우가 매우 많습니다. 날짜와 시간을 직접 입력할 수 있지만, 현재 시간을 보내려면 매번 수정해 주어야 하는 번거로움이 있죠. 이런 불편을 없애기 위해 jwRsMonitor에는 매크로 기능을 제공합니다. 날짜와 시간을 직접 입력하기보다는 :Y, :M, :D, :H, :N, :S 같은 문자열을 사용하면 자동으로 날짜와 시간으로 바뀝니다. F5키는 처음 한 번 날짜와 시간을 구합니다. 이후로 F5키를 누르면 처음 구한 날짜와 시간이 전송되지요. 그러나 F6키는 누를 때마다 날짜와 시간이 갱신되어 전송됩니다. 차이가 이해되시나요?

시리얼 통신 테스트 프로그램

▲ 매크로 값은 "Special Chars" 버튼을 클릭하면 쉽게 입력할 수 있어요.

간편 프로토콜 구성

jwRsMonitor

▲ 복잡한 프로토콜은 어렵지만, 간단한 프로토콜은 구성해서 전송할 수 있습니다. 예를 들어 [STX][data][CRC][ETX]의 경우 protocol 항목을 순서에 맞추어 차례로 선택하면 됩니다.

송수신 데이터 확인

시리얼 통신 테스터

▲ jwRsMonitor에는 송수신 데이터를 확인할 수 있는 3가지 방법을 보여 주며 체크 박스로 기능을 On/Off할 수 있습니다. A-Tr/Rcv는 송수신 데이터를 보여 주며, B-HEX는 수신 데이터를 HEX 코드로 보여 줍니다. C-Grid는 송수신 데이터를 바이트 단위로 확인하기 편하도록 그리드에 문자 한 개씩 보여 줍니다.

시리얼 통신 테스트 프로그램

▲ 송수신 데이터를 (1)에서 확인할 수 있습니다. 송신 데이터는 바탕색이 검은색이고 수신 데이터는 파란 바탕에 흰색 글씨입니다. (2)번은 수신 데이터를 HEX 값으로 보여 줍니다.

jwRsMonitor

▲ 송수신 데이터를 그리드로도 볼 수 있습니다. 수신 데이터에서 몇 번째 바이트의 값이 궁금할 때 사용하면 편리합니다.

터미널 기능

시리얼 통신 테스터

▲ jwRsMonitor에는 터미널 기능을 갖추어서 타이핑할 때마다 문자 데이터를 전송할 수 있으며 상대방이 전송하는 문자열도 바로 확인할 수 있습니다. 서버를 제어하거나 간단히 통신 상태를 확인할 때 편합니다.

모뎀 제어 기능

시리얼 통신 테스트 프로그램

▲ 모뎀 제어를 위한 버튼을 따로 준비했습니다. 모뎀 초기화나 전화 걸기 기능을 쉽게 호출하세요. 그러나 요즘도 모뎀을 사용하는 곳이 있을까 싶네요.

시리얼 통신을 사용하시는 분은 jwRsMonitor를 사용해 보세요. 매우 편합니다.

신고
이 댓글을 비밀 댓글로
  1. COM포트도 50까지 가능해서 좋아요.

    자동 줄바꿈으로 터미널 텍스트만 출력되는 부분은 나올 때도 있고 안 나올 때도 있어요.
    어떻게 해야 텍스트가 나오나요?

    버그: 초기에 포트 50개가 전부 표시되고 몇번 눌러줘야 실제 포트만 표시됩니다. 포트 선택만 하면 연결 됩니다.
    OPEN을 두번 눌러야만 터미널에 출력 됩니다.
    • james
    • 2015.10.19 17:34 신고
    이런 프로그램을 제공 해주셔서 감사합니다
    • 초보자
    • 2015.11.07 10:04 신고
    바이러스 있습니다. 바이러스 없는 버전으로 올려주시면 감사하겠습니다.
    • 기능추가부탁드려요
    • 2015.11.11 17:54 신고
    xon/xoff 기능은 추가 언제쯤되나요?!!?
    • ㅠㅠ
    • 2016.01.08 09:01 신고
    포트에아무것도안꼽혀있으면 아무데이터도안나오나요?ㅠㅠ
    • daniel
    • 2016.07.22 10:46 신고
    정말 감사합니다....^^
    복 받으실 겁니다.
    • sunny
    • 2016.08.09 13:15 신고
    문의사항있습니다
    DSU(9.6K,SYNC) 에서 LINE LOOP 또는 LLB후에 테스트 양호합니다. 문의사항은 DSU 9.6K 상태에서 프로그램 4.8K등 속도 변경 후에도 TEXT TEST를 하면 양호합니다. 속도가 달라서 문자가 깨지거나 TEXT RX가 안될 것으로 판단했는데.. DCE와 DTE가 정상적으로 송/수신이 가능하더라구요...왜 그런지요????
    • 어떤 질문인지 정확히는 모르겠습니다만, 시리얼 통신에서 PC는 DTE하고만 통신합니다. DCE를 통해 다른 시스템과 통신 중이라면 DCE 단에서 서로 속도를 결정(negotiation)하는데, 그 때문이 아닐까요?
    • max2k
    • 2016.09.21 22:54 신고
    잘쓰고있습니다
    부탁드리고 싶은게 있는데 ... ":C" 정도로 해서
    보낼때 마다 카운터를 증가시키는 기능은 어떤가 해서요
    두자리나 네자리 정도로...감사합니다
    • jwRsMonitor 1.0.5에 말씀하시 기능을 넣었습니다.
      아이디어 감사합니다. ^^
      http://badayak.com/3696
    • bornHY
    • 2017.02.06 11:10 신고
    먼저 좋은 프로그램 공유해주셔서 감사합니다.
    Auto 기능을 이용해서, 2가지 Serial 통신 매크로를 구현하려고 합니다.
    Terminal로는 command가 동작하는데, 혹시 공란에 원하는 Command를 입력해서 일정시간에 지속적으로 Command를 보낼수 있는 방법은 없는지 문의드립니다.
      • bornHY
      • 2017.02.06 11:17 신고
      빈공란에 {}를 이용해서 Hex값을 하니 Auto가 동작됩니다!(__) 혹시 Log파일을 저장할 수 있는 방법이 있는지 문의드립니다.
    • bornHY
    • 2017.02.06 11:12 신고
    아울러, Receive된 메세지를 로그파일처럼 저장할 수 있는 기능이 있는지도 문의드립니다.
    • 공돌이
    • 2017.09.13 10:06 신고
    감사합니다~ 좋습니다.
    • 공돌이
    • 2017.09.13 10:06 신고
    감사합니다~ 좋습니다.
    • 공돌이
    • 2017.09.13 16:42 신고
    아 HEX 값을 전송하고 싶은데요 방법이 없을까요?
    Terminal 은 아스키값으로만 전달이 되는것 같은데요...
    • 1,2,3,4,.... 버튼 밑의 입력 창을 사용하시면 됩니다.
      물결무늬 문자 다음에 헥사 코드를 입력하세요.

      예를 들어 $0a $0b를 전송한다면,
      ~0a ~0b 로 입력하시면 됩니다.

      또는 {} 문자로 감싸도 됩ㄴ다.

      {0a 0b}

      그리고 전송 버튼을 클릭하면 됩니다.
    • 공돌이
    • 2017.09.14 11:45 신고
    ㅋㅋ 사용한 프로그램중 최고네요.
    • 칭찬의 말씀 감사합니다. 좀더 편한 프로그램으로 업그레이드 중인데 매우 더디네요.
      서두르도록 노력하겠습니다. ^^
    • 공돌이
    • 2017.09.15 11:23 신고
    한가지만 더 문의드릴꼐요.
    혹시 Terminal 에서 특정 문자를 검출할수 있나요?
    테스트를 걸어놓고 특정 문자가 나오면 뭔가 트리거 를 받고 싶은데요.. 좋은 방법이 있을까요?
    아니면 log 라도 만들수 없나요?
    • 공돌이
    • 2017.09.27 10:47 신고
    바다야크님 혹시 마우스로 받은데이타를 복사하려는데 가능할까요?