XTEND(8)

명칭
xtend - X-10 demon

서식
/usr/libexec/xtend

해설
xtend 유틸리티는, 유저 레벨의 프로그램과 TW523 X-10 콘트롤러와의 인터페이스를 실시합니다. TW523 로부터 수신한 모든 패킷을 기록해, 모든 X-10 디바이스의 상태를 가능한 한 추적해, X-10 디바이스의 조작을 필요로 하는 유저 레벨의 클라이언트 프로그램으로부터의 소켓 접속을 받아들입니다.

xtend (을)를 기동하면(자), 자기 자신을 포크 해, 제어 단말을 떼어내, 이후 발생한다 모든 X-10 의 활동 상황과 진단 메세지를 기록하는 로그 파일을 엽니다. 그 후, TW523 로부터 수신한 패킷의 처리를 개시해, X-10 의 명령을 발행한다 클라이언트의 접속을 1 번에 하나만 받아들입니다. xtend 유틸리티는, /etc/rc.conf 스크립트에서 유효하게 설정되었을 경우, /etc/rc.i386 기동 스크립트로부터 실행됩니다.

xtend 에 SIGHUP (을)를 보내면(자), 로그 파일을 일단 닫아 다시 엽니다. 이것은, 로그 파일의 비대화를 피하기 위해서(때문에), 셸 스크립트에 의해 로그 파일을 변경하는 경우에 편리하겠지요. xtend 하지만 SIGTERM (을)를 받으면(자), 솔직하게 셧다운 해, 종료합니다. SIGPIPE (을)를 보내면(자), xtend (은)는 현재의 클라이언트 접속을 강제적으로 떼어냅니다.

xtend 유틸리티는, 클라이언트의 프로세스와 단순한 프로토콜을 이용해 통신을 실시합니다. 이 프로토콜은, 클라이언트로부터 보내지는 1 행의 명령에 대해서, demon가 1 행의 응답을 실시하는 것 같은 단순한 것입니다.

xtend 유틸리티에는, 4 종류의 명령이 있습니다:

status H U
    xtend (은)는 지정된 디바이스 상태를 1 행으로 대답합니다. 여기서, H (은)는 하우스 코드를 나타내는 1 캐릭터로, U (은)는 숫자의 유니트 코드입니다.

send H U N
    xtend (은)는 지정된 X-10 의 송신을 실시합니다. 여기서, H (은)는 하우스 코드를 나타내는 1 캐릭터로, U (은)는 숫자의 유니트 코드 또는 리스트에 대한 기능 코드 ( xtend/packet.c 원시 파일 참조), N (은)는 갭없이 송신되는 패킷의 수 (통상은 2) 입니다. 송신이 성공하면(자), OK (이)라고 응답해, 그 이외의 경우는, ERROR (이)라고 응답합니다.

dump
    xtend 유틸리티는 spool 디렉토리의 ASCII 파일에 모든 디바이스의 현재 상태를 덤프 합니다. 상태의 덤프에 성공했는지 어떠했는지에 관련되지 않고, OK (이)라고 응답합니다.

monitor H U
    xtend (은)는 지정된 X-10 디바이스에 관한 활동 상황을 보고하는 클라이언트의 리스트에, 현재의 클라이언트의 소켓 접속을 더합니다. 리스트중의 클라이언트수의 최대치 (현재 상태로서는 5)를 넘지 않으면, OK (을)를 대답해, 그 이외는 ERROR (을)를 대답합니다. 그 후, xtend 클라이언트로부터의 접속을 받아들이는 통상 모드로 돌아옵니다. 그러나, 그 이후로 지정된 디바이스 상태가 변화하면(자), xtend (은)는 ( status 명령에 의해 얻을 수 있는 경우와 같은 형식에서) 디바이스 상태를 보존한 소켓에 보냅니다. 이 기능은, 동작 검출기등 , 디바이스의 활동 상황을 모니터 할 필요가 있어, X-10 송신을 실시하는 프로그램을 작성하는 경우에 편리하겠지요.

옵션
없음.

관련 항목
xten(1), tw(4)

관련 파일
/dev/tw0
    TW523 특수 파일
/var/run/tw523
    클라이언트 접속용 소켓
/var/run/xtend.pid
    pid 파일
/var/spool/xten/Log
    로그 파일
/var/spool/xten/Status
    디바이스 상태 파일 (바이너리)
/var/spool/xten/status.out
    디바이스 정보의 ASCII 덤프

버그
현재 상태로서는, 클라이언트의 소켓 접속에 타임 아웃은 없습니다. 그 때문에, 헹 한 클라이언트 프로그램이 있으면(자), 다른 클라이언트는 demon에게 액세스 할 수가 없게 됩니다.

xtend 유틸리티는, 할 수 있는 한 디바이스 상태를 추적합니다만, 디바이스가 수동으로 조작되었다 일을 아는 방법은 없습니다. 이것은, 대부분의 X-10 디바이스가 상태의 문의에 대해서 응답할 수가 없기 때문입니다.

저자
Eugene W. Stark <stark@cs.sunysb.edu>