프로그래밍 언어/기타

테라텀(Tera term) 매크로 알아보기

원원 2023. 5. 17. 21:12

안녕하세요 오늘은 테라텀(Tera term) 매크로에 대해 알아보겠습니다. 시리얼통신을 사용할때 매크로를 사용하면 손쉽게 커맨드를 전달할 수도있고 맞나 판단 할 수도있습니다.

테라텀의 매크로는 TTL 확장자를 사용하고 Tera Term Language의 줄임말입니다. 테라텀에서 하는 명령어 입력/출력/판단을 자동으로 매크로를 만들어서 사용할 수 있습니다.

테라텀 매크로의 커맨드들은 아래의 사이트에 자세히 나와있습니다. 커맨드들 중에서 자주 사용하는 커맨드를 알아보겠습니다. 자세한 사항과 다른 기능들은 아래의 사이트에서 찾아서 사용하면 됩니다.
https://ttssh2.osdn.jp/manual/4/en/macro/command/

UART로 테스트하고 RX랑 TX를 연결해서 보내고 바로 받게 했습니다.

- sendln
먼저 wowon 커맨드를 보내보겠습니다. 메모장에 sendln 'wowon'을 입력하고 확장자는 ttl로 저장해줍니다

매크로는 Control -> Macro에서 실행합니다.

테라텀 화면에서 wowon이 수신된 걸 볼 수 있고 파형도 wowon이 찍혔습니다. wowon 뒤에 \r\n도 찍힌 이유는 테라텀에서 New-line설정을 CR+LF로 해놔서입니다.

- mpause
커맨드들 사이에 딜레이도 넣을 수 있습니다. 예시로 mpause 1000를 하면 1초 멈춥니다


- messagebox 
메세지 박스를 넣을 수 있습니다. 매크로를 실행할때 에러가 발생했거나 완료했을 때 사용하면 좋습니다.

wowon을 보내고 1초후에 messagebox를 띄웁니다

- for 
반복문입니다. 아래 처럼 하면 10번 반복합니다. for의 스코프는 next까지입니다

for i 1 10
	sendln 'wowon'
	mpause 1000
next

messagebox 'complete' Title'

wowon을 10번 보내고 messagebox가 나옵니다.

 

-if
조건에 따라서코드를 실행합니다.

sendln 'HI'
i = 3

if i=1 then
	messagebox '1' 'IF_1'
elseif i=2 then
	messagebox '2' 'IF_2'
else
	messagebox i 'IF_else'
endif

messagebox 'END' 'END'

 

- waitln
커맨드를 기다립니다. 무한히 커맨드를 기다리거나 timeout 설정이 가능합니다.

sendln 'wowon'
waitln 'A' 'B'

wowon을 보내고 A나 B가 들어올때까지 계속 기다립니다. 

 

sendln 'wowon'
timeout = 2
waitln 'tistory'
if result != 1 then
	messagebox inputstr 'ERROR TITLE'
	end
endif

messagebox 'complete' 'GOOD TITLE'

timeout =2면 2초 timeout설정입니다.  wowon을 보내고 tistory가 들어오면 GOOD TITLE 메세지박스가 뜹니다.
그렇지 않다면 ERROR TITLE 메세지박스가 뜹니다. 
코드를보면 result변수를 비교하는데 tistory가 맞으면 1이고 Timeout이면 0입니다. messagebox에서 inputstr을 출력하는데 수신한 데이터를 나타내는 부분입니다. end는 프로그램 종료입니다.

waitln <string1> [<string2> ...]
0 Timeout.
1 A line which contains <string1> has received.
2 A line which contains <string2> has received.
n A line which contains <stringn> has received. n=1..10.

 

 

기타

1. 주석은 ; 로 합니다

2. 매크로를 실행하면 아래의 창이 뜹니다. 현재 진행중인 코드를 보여주고 일시중지하거나 끝낼 수 있습니다

문법적으로 에러가있다면 보여줍니다.

 

3. 실행파일
테라텀에서 연결하고 매크로실행시키고 하지않고, 한번에 아이콘으로 실행하는 방법이 있습니다.
테라텀이 설치되어있는곳에 ttpmacro.exe가 있습니다.
(C:\Program Files (x86)\teraterm\ttpmacro.exe)
이 파일을 바로가기 만든다음에 속성-대상에 아래처럼 ttl파일명을 넣습니다

connect '/C=17'
setspeed 115200

mpause 2000
messagebox 'good' 'test.ttl'

ttl 파일에서는 baudrate와 포트번호를 넣어줍니다
connect '/C=17'
setspeed 115200
(포트번호17, baudrate 115200)

exe파일을 실행하면 자동으로 매크로가 실행됩니다.