TW(4)

명칭
tw - TW-523 X-10 디바이스 드라이버

해설
tw (은)는, X-10 Inc. 의 가정용 컨트롤 제품과 함께 사용하는, TW-523 전원 라인 인터페이스의 드라이버입니다. X-10 프로토콜은, Radio Shack 의 ``Plug 'n Power(tm)''나 스탠리의 ``Lightmaker(tm)''를 포함한, 많은 가정용 컨트롤 시스템과 호환성이 있습니다.

이 드라이버는 read() write() select() 의 시스템 콜을 서포트합니다. 드라이버는 복수의 프로세스에 읽고 쓰기를 할 수 있도록(듯이) 동작합니다만, 실제로는 복수의 독해 프로세스가 도달해 복수의 기입 프로세스가 있는 경우에는 의미가 없을지도 모릅니다. 또 현재 상태로서는, 실제로 두 프로세스가 동시에 송신을 하려고 하면(자), 경합 상태가 될 가능성이 있습니다 (tw_sc 속의 sc_pkt 구조체의 비동기의 액세스 구조에 의하는 것입니다).

송신은 write() (을)를 호출해, 3 바이트의 데이터 패킷을 송신하는 것에 의해 됩니다. 최초의 바이트는 4 비트의 하우스 코드 (0=A 에서 15=P 까지), 2 바이트째는 5 비트의 unit/key 코드 (0= 유니트 1 으로부터 15= 유니트 16 까지, 16= 전유니트 오프,31= 스테이터스 리퀘스트)입니다. 3 바이트째는, 연속해 사이를 비우지 않고 송신되는 패킷의 수를 지정합니다. 통상은 X-10 Inc. 의 문서에 따라서 이 값은 2 입니다만, 다른 값을 받을 수도 있습니다. write() 의 호출은 각각이 임의의 데이터 길이 (바이트수)를 지정할 수 있습니다만, 어느 호출에서도 최대 하나의 패킷 밖에 처리되지 않습니다. 불완전한 패킷은 계속되어 일어난다 write() 호출이 완전하게 데이터를 제공할 때까지 버퍼 됩니다. 연속한다 write() 의 호출에 대해서는, X-10 Inc. 의 문서에 따라, 3 사이클의 간격이 빼앗깁니다. 드라이버는 1 사이클에 3 회 비트를 보내도록(듯이) 정하고 있다 X-10 Inc. 의 문서와 달리, 반사이클에 1 비트씩 밖에 보내지 않습니다. 이것은 TW523 가 전원 라인이 제로점을 통과할 때의 동기 밖에 제공하고 있지 않기 때문입니다. 따라서 3 상교류의 상용 전원 서비스에서는 드라이버가 잘 동작하지 않을 가능성이 있습니다. 대부분의 주택에서는 이 드라이버가 작동하는 2 선의 전원을 사용하고 있습니다.

수신은 read() 그리고 실시합니다. 드라이버는, 3 캐릭터로부터 완성되는 패킷을 생성합니다. 각각의 패킷으로, 최초의 캐릭터는 플래그로부터 완성되어, 2 번째의 캐릭터는 4 비트의 하우스 코드 (0-15), 3 번째의 캐릭터는 5 비트의 key/function 코드 (0-31)로

#define TW_RCV_LOCAL 1 /* 로컬인 전송중에 패킷이 도착했습니다 */

#define TW_RCV_ERROR 2 /* 부정/망가진 패킷이 도착했습니다 */

select() 시스템 콜은, 통상 대로, 읽어낼 수 있는 데이터가 존재하고 있는지 어떤지를 확인하기 (위해)때문에, 사용 가능합니다.

관련 항목
xten(1), xtend(8)

X-10 Inc. 에 의한 TW-523 에 관한 문서

관련 파일

/dev/tw?
    TW523 디바이스형 특수 파일

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