Au toPackage | |
스크립트를 통한 보드 업데이트 프로그램 |
AutoPackage 는 보드 세팅이나 업데이트를 스크립트 파일을 이용하여 자동으로 작업이 진행되며,
자동 재 시작(Repeat) 기능이 있어 보드를 교체, 전원을 인가하는 것 만으로도 작업이 진행되도록
구성되어 있습니다.
- 스크립트 파일은 일반 텍스트 파일로 만들어지며, 몇 가지의 간단한 명령어 조합으로
다양한 세팅과 프로그램 업데이트를 진행하실 수 있습니다. - 변수와 상수를 제공하고 있기 때문에 다른 사람이 만들어진 스크립트 파일을 공유하실 수 있습니다.
- 순차적인 스크립트 진행 방식을 통하여 자동 재 시작 모드로 설정해 놓으시면,
보드 연결 및 전원 인가로 스크립트가 진행됩니다.
- 텍스트 파일의 스크립트를 이용
- 만들어진 스크핍트 파일은 공유가 가능
- 맥주소, 자동 증가하는 정수, 날짜와 시간등 내부 변수가 제공
- 사용자 상수 정의 기능을 제공
- 자세한 도움 메시지를 출력
부분별 설명
A AutoPackage 의 메뉴부 입니다. B 포트 선택, 프로젝트 선택, 진행 등 작업을 실행하는 버튼 모음입니다. C 카운터로 진행이 완료된 횟수를 보여 줍니다. D 프로젝트 정보와 작업 진행 정보를 보여 줍니다. E 작업 진행에 필요한 자세한 정보 및 에러 정보를 보여 줍니다. F 텔넷 보드로 보드와 텔넷으로 연결하실 수 있습니다.
- 프로그램을 실행합니다.
- 포트를 선택합니다. 포트는 보드와 연결되어 있는 시리얼 포트를 말합니다.
[open port] 를 클릭하시면 포트와 통신 보오율을 선택할 수 있으며,
[old port] 는 이전에 선택한 포트와 보오율이 바로 선택됩니다.
[open port] 를 클릭하시면 통신 포트를 선택하는 대화상자가 출력됩니다.
포트와 보오율을 선택하십시오.
- 프로젝트를 선택합니다. 프로젝트는 새로 생성하시거나 이미 만들어진 프로젝트를 선택하십시오.
[new prj] 는 새 프로젝트를 생성합니다.
[open prj] 는 기존에 만들어진 프로젝트를 선택합니다.
- 포트와 프로젝트가 선택되어지면 상단의 버튼 모양이 아래와 같이 바뀌게 됩니다.
기능이 중지된 버튼이 포트와 프로젝트가 선택이 되면 아래와 같이 [project] [script] [start ▶] 버튼이 활성화가 됩니다.
- [start ▶] 버튼을 클릭하여 스크립트를 실행하여 주십시오.
- 작업이 진행되면서 메시지 창에 필요한 메시지가 출력되며,
작업이 완료되면, 작업 완료 메시지와 함께, 작업 종료 음이 출력됩니다.
또한 작업 종료 음을 중지할 수 있는 버튼이 출력됩니다.
- [New Prj] 버튼을 클릭하시면 새로운 프로젝트를 만들기 위한 대화상자가 출력됩니다.
- 아래의 그림은 새 프로젝트 생성 대화상자입니다.
번호 순서에 맞추어 프로젝트를 위한 정보를 입력합니다.
▶ 1
프로젝트의 이름이며, 실제로는 AutoPackage.exe 가 있는 곳에 서브 폴더로 생성됩니다.
▶ 2
프로젝트에 대한 간략한 설명을 입력하는 란입니다.
추후에 프로젝트를 선택할 때 출력되면, 프로젝트를 선택하는데, 도움이 됩니다.
▶ 3
보드 설정에서 맥 주소를 변경할 때 사용되며, 작업이 정상적으로 완료되면 자동으로 값이 증가됩니다.
반드시 입력되어야 하는 값으로 사용하지 않으시더라도 임시 값을 넣어 주셔야 합니다.
▶ 4
맥 주소와 함께, 자동으로 증가되는 변수 설정 영역입니다.
HEX 를 체크하시면 숫자는 16진수로 설정됩니다.
자릿수와 "0 채움" 을 이용하시면, 앞에 "0" 으로 채워진 문자열로 변경됩니다.
- 설정 값 입력 후에 [저장] 버튼을 클릭하시면, 프로그램은 설정된 값에 문제가 없는지를 확인하고,
이상이 있다면 어느 부분에 이상이 있는지 에러 메시지를 출력합니다.
- 오류를 수정하시고 저장하시면 스크립트를 작성하기 위한 메시지가 출력됩니다.
- 확인 버튼을 클릭하시면 스크립트 작성을 위한 에디터가 실행됩니다.
[open port] 를 클릭하시면 통신 포트를 선택하는 대화상자가 출력됩니다.
- 간단하게 디텍토리 내용을 확인해 보겠습니다.
SENDMSG는 보드로 문자열을 전송하는 명령 코드입니다.
WAITMSG는 보드로부터 전송되어 오는 문자열을 기다립니다.
SENDMSG "ls -al"
WAITMSG "root]$"
위 코드는 ls -al 을 실행한 후에, 프롬프트 문자 중 root]$ 를 기다리는 것으로 작업을 종료합니다.
- 스크립트 작성에 대한 자세한 설명은 스크립트 작성 항목을 참고하여 주십시오.
▶ 명령코드 종류
* 명령코드를 클릭하시면 자세한 설명을 보실 수 없습니다.
SET 상수를 정의합니다. SENDMSG 보드로 문자열과 엔터키를 전송합니다. SENDTYP 보드로 문자열만 전송합니다. WAITMSG 보드로부터 문자열 수신을 기다립니다. WAITTIM 지정된 시간 동안 대기합니다. TRANSFILE 파일을 보드로 전송합니다. SHOWMSG 메시지를 출력하고 상용자가 확인할 때까지 대기합니다. END 스크립트 실행을 종료합니다.
▶ 명령코드 설명
- SET
여러 번 사용되는 문자열을 상수로 정의하여 사용하실 수 있습니다.
상수는 상수 이름과 상수에 해당하는 값으로 이루어져 있습니다.SET 상수이름 "상수값"
이후에 상수를 사용하는 방법은 [ ] 문자를 사용합니다.
SENDMSG [상수이름]
SENDMSG 로 출력되는 문자열은 상수값" 이 됩니다.상수는 문자열과 함께 사용하여 좀더 복작한 문자열을 만드실 수 있습니다.
문자열은 " " 또는 ' ' 로 설정하실 수 있습니다.SENDMSG "상수의 값은 "[상수이름]"입니다."
SENDMSG 로 출력되는 문자열은 상수의 값은 상수값입니다. 이 됩니다.와 같이 사용하실 수 있습니다.
SET dir "ls -al"
SENDMSG [dir]문자열을 구성하는 방법은 " 로 시작해서 " 로 마치거나 ' 로 시작해서 ' 로 종료하면 됩니다.
- SENDMSG
보드로 문자열을 전송할 때 사용됩니다. 전송되는 문자열은 " " 로 둘러 싸거나 ' ' 로 둘러 싸서 만드실 수 있으며,
또한 " " 안에서는 ' 를 문자로 사용하실 수 있습니다. 또는 ' ' 안에서는 " 를 문자로 사용하실 수 있습니다.
SENDMSG 는 문자열을 전송한 후에 엔터키를 자동으로 전송합니다."FALiNUX 는 '임베디드 리눅스 산업분야'에서 선두가 되겠습니다."
-> FALiNUX 는 '임베디드 리눅스 산업분야'에서 선두가 되겠습니다.'FALiNUX 는 "임베디드 리눅스 산업분야"에서 선두가 되겠습니다.'
-> FALiNUX 는 "임베디드 리눅스 산업분야"에서 선두가 되겠습니다.SENDMSG 와 문자열을 이용하시면 보드로 문자열을 전송하실 수 있습니다.
SENDMSG "ls -al"
- SENDTYP
SENDTYP 은 SENDMSG 와 같이 문자열을 전송합니다. 차이는 SENDMSG 는 문자열 다음에 엔터키를 함께 전송합니다.
그러나 SENDTYP 는 문자열만 전송하며, 엔터키는 전송하지 않습니다.- WAITMSG
WAITMSG "문자열" 을 이용하시면 지정한 문자열이 보드로부터 수신이 될때 꺼지 대기하게 됩니다.
명령을 전송하신 후, 결과로 출력되는 문자열을 기다리신 후에 다음 명령을 실행할 때 사용합니다.
문자열을 작성하는 방법은 SENDMSG 와 동일합니다.- WAITTIM
지정된 시간 만큼 대기합니다. WAITTIM 다음에 입력되는 값은 초 단위의 시간값이며, 인용부호를 사용하시거나, 또는 인용부호 없이 초만 입력하실 수 있습니다.
WAITTIM "20"
위의 예는 20초를 대기하게 됩니다.
- TRANSFILE
pc 의 파일을 보드로 전송할 때 사용됩니다.
전송되는 파일은 프로젝트 폴더 안에 있는 파일이며, 전송은 목적지와 파일의 이름으로 구성됩니다.예로 프로젝트 폴더 안에 있는 test.txt 를 /etc/filename.txt 로 전송하시려면,
TRANSFILE "/etc" "filename.txt" "test.txt"
또는 인용부호 없이,
TRANSFILE /etc filename.txt test.txt
을 사용하시면 됩니다.
*** 주의 사항
TRANSFILE 은 내부적으로 처리하는 매크로 명령으로 실행 시 "root]$" 프롬프트를 사용합니다.
이런 이유로 TRANSFILE 을 사용하시기 위해서는 항상 /root 에서 실행이 되도록 고정되어 있습니다.
즉, TRANSFILE 실행 후에는 자동으로 위치가 /root 로 변경됩니다.
자주 사용되는 단어를 상수로 정의 하여 스크립트에서 사용하시면, 편리함과 함께 오타에 따른 실수를 줄이실 수 있습니다. 또한 상수 값만 변경함으로써 새로운 보드에 바로 적용할 수 있는 장점이 있습니다.
▶ 상수의 종류
상수의 종류에는 아래와 같이 3가지가 있습니다.
- 자동으로 값이 증가하는 상수
새 프로젝트를 생성하거나 프로젝트 환경을 수정할 때 정의할 수 있는 상수로,
상수 이름이 고정되어 있으며, 보드 세팅 작업을 완료할 때 마다 자동으로 증가하는
- 프로젝트별 환경 파일에 저장되는 상수
프로젝트별 환경파일에 저장되는 상수로 상수 관리 윈도우에서 정의할 수 있습니다.
- 스크립트 내에서 정의되는 상수
스크립트 파일에서 바로 정의하고 사용할 수 있는 상수 입니다.▶ 상수 정의 방법
상수를 정의하는 방법은 3가지가 있습니다.
- 프로젝트 환경 설정 이용
- 상수 정의 윈도우 이용
- 스크립트 내에서 상수를 정의
우선 프로젝트의 환경 설정에서 정의되는 상수값에 대해 알아 보겠습니다.
▶ 프로젝트 환경 설정에서 정의되는 상수
아래는 새 프로젝트를 생성하시거나 프로젝트의 환경을 수정할 때 출려되는 화면입니다.
여기서 3 번과 4 번의 입력된 값이 스크립트 내에서 사용하실 수 있는 상수이며,
보드 세팅이 완료되면,
- 맥 주소는 끝자리부터 1 씩 자동 증가합니다.
또한 이 값은 기억되어 AutoPackage를 다시 실행해도 값이 보존됩니다.
스크립트에서는 맥 주소 1 은 [MAC1] 으로
맥 주소 2 는 [MAC2] 로 사용됩니다.
- 정수 정보의 상수는 증가치에 따라 증가하며, 자릿수의 크기에 맞추어
문자열로 변경됩니다.
이 상수 값은 AutoPackage 가 다시 실행되면 초기값으로 다시 설정됩니다.아래는 스크립트에서 사용한 예 입니다.
SENDMSG "Local IP: 192.168.10."[NO1]
처음 보드 세팅이라면 NO1 의 값은 1 입니다. 그러므로 내부적으로는 아래와 같이 자동으로 변환이 됩니다.
SENDMSG "Local IP: 192.168.10.1"
세팅 작업이 완료되면 증가치에 따라 NO1 은 2가 됩니다. 그러므로 2번째 보드 세팅에는
아래와 같이 변환이 됩니다.SENDMSG "Local IP: 192.168.10.2"
▶ 상수 정의 윈도우 사용 방법
- 새 프로젝트를 생성하시거나 기존 프로젝트 열기를 하시면 좌측에 상수에 대한
정보가 출력되는 부분이 있습니다.
이 부분에 작은 버튼이 준비되어 있습니다.
- 작은 버튼을 클릭하시면 상수를 정의할 수 있는 윈도우가 출력됩니다.
- 상수 명 중에 HOST_IP 는 AutoPackage 내부에 이미 예약되어 사용하고 있기 때문에,
HOST_IP 를 제외한 상수 이름을 입력하시고, 상수에 해당하는 값을 입력하십시오.
- 이제 스크립트에서 상수 명을 사용하실 수 있습니다.
아래는 상수 사용 예를 보여 줍니다.SENDMSG [CONST3]
상수명은 대소 문자를 가리지 않으며, 또한 [ 로 시작해서 ] 로 묶어 작성하며,
인용부호를 이용하여 문장을 만드실 수 있습니다.SENDMSG "여기는 "[CONST2]" 저기는 "[CONST3]"입니다."
위의 예는 아래와 같은 문장이 됩니다.
SENDMSG "여기는 1-2 저기는 falinux 입니다."
인용부호 안에서는 상수를 사용하실 수 없습니다.
즉,SENDMSG "여기는 [CONST2] 저기는 [CONST3]입니다."
라고 작성하시면 [CONST2] 자체가 문자열로 취급되므로,
결국,SENDMSG "여기는 [CONST2] 저기는 [CONST3]입니다."
같이 처리됩니다.
▶ 스크립트 내에서 정의하는 방법
SET 명령을 사용하여 스크립트 내에서 상수를 정의하고 바로 사용하실 수 있습니다.
아래는 상수 정의 및 사용 방법에 대한 예를 보여 줍니다.
SET LOCAL_IP 192.168.10.
SENDMSG [LOCAL_IP][NO1]NO1 은 앞서 프로젝트 환경설정에서 정의되는 값이며, NO1 이 1 이라면 아래와 같이
문장이 변환됩니다.SENDMSG "192.168.10.1"
상수값을 지정할 때 인용부호를 사용하시면 공백 문자도 사용하실 수 있습니다.
SET LOCAL_IP "192.168.10. "
SENDMSG [LOCAL_IP][NO1]즉, 이 스크립트는 192.168.10. 다음에 공백 문자가 삽입됩니다.
SENDMSG "192.168.10. 1"
Auto repeat 를 체크하신 후 [start ▶] 버튼을 클릭하시면 스크립트 종료 후에 보드를 교체하고 전원을 인가하면 자동으로 스크립트가 실행이 됩니다.
스크립트 1회 실행 후에, 보드 교체 확인을 위해 보드의 부팅 메시지를 기다리는 WAITMSG 를 추가해 주셔야 합니다.
WAITMSG "WELCOME EZBOOT.X5" // 시스템 전원 및 리셋을 기다림
이후에는 보드가 부팅이 될때까지 기다리게 됩니다.
▶ 자동 스크립트 실행 모드 사용하는 순서
- 스크립트를 실행할 준비를 합니다.
- [Auto repeat] 를 체크합니다.
- [start ▶] 버튼을 클릭합니다.
- 보드를 연결하고 전원을 인가합니다.
- 자동으로 스크립트가 실행이되고 작업을 종료하게 됩니다.
- 작업 종료 메시지나 음악이 출력되면 보드를 교체하고 전원을 인가합니다.
- 자동으로 스크립트가 실행됩니다.
- 보드 교체와 전원인가를 반복합니다.
- 최신 버전을 얻는 방법은?
- 프로그램에 버그가 있습니다. 어디에 문의해야 하나요?
- TRANSFILE 로 파일 전송이 안됩니다.
- 자동 실행 모드로 실행이 되지 않습니다.
- 소스를 얻을 수 없을까요?
최신 버전은 저희 회사 홈페이지, http://www.falinux.com 의 자료실을 방문하시면 얻으실 수 있습니다.
저희 회사 자료실은 RNS 외에도 많은 도움툴과 업데이트 자료를 제공하고 있습니다.
2. 프로그램에 버그가 있습니다. 어디에 문의해야 하나요?
프로그램의 문제나 건의가 있으시면, 저희 회사 홈페이지, http://www.falinux.com 를 방문하시거나, 회사 대표 전화, 02-572-9527 로 연락을 주십시오.
TRANSFILE 로 전송이 안되는 이유는 여러 가지 입니다. 아래의 내용을 확인해 보세요.
- Windows XP 인 경우 방화벽 해제
Windows XP 에서 방화벽을 사용하시는 경우 AutoPackage 는 예외에 추가해 주십시오.
- LAN 카드가 2개 일 경우 TRANSFIE 에서 사용하는 HOST_IP 값이 옳바르지 않을 수 있습니다.
[메인메뉴 >> 상수 수정]을 이용하여 HOST_IP 값을 옳바르게 수정합니다.
상수 수정 윈도우가 출력되면 IP 값을 확인합니다.
값이 틀리다면 수정합니다.
- 전송하려는 파일은 AutoPackage.exe 가 있는 폴더가 아니라 프로젝트 이름과 같은 프로젝트 폴더 안에 있어야 합니다.
자동모드(repeat) 를 사용하시기 위해서는 스크립트 첫행에,
WAITMSG "WELCOME EZBOOT.X5"
가 있어야 하면, 아래와 같은 순서로 진행하셔야 합니다.
- 스크립트를 실행할 준비를 합니다.
- [start ▶] 버튼을 먼저 클릭하신 후,
- 보드에 전원을 인가하거나, reset 키를 눌러 주십시오.
AutoPackage 의 실행 파일은 무료로 제공됩니다만, 소스는 제공되지 않습니다.