.\" Copyright (c) 1992, 1993 Eugene W. Stark .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Eugene W. Stark. .\" 4. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY EUGENE W. STARK (THE AUTHOR) ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, .\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES .\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR .\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %Id: tw.4,v 1.8 1998/03/12 07:30:39 charnier Exp % .\" $FreeBSD$ .\" .Dd Oct 30, 1993 .Dt TW 4 i386 .Os FreeBSD .Sh 名称 .Nm tw .Nd TW-523 X-10 デバイスドライバ .Sh 解説 .Nm tw は、X-10 Inc. の家庭用コントロール製品と共に使用する、 TW-523 電源ラインインタフェースのドライバです。 X-10 プロトコルは、Radio Shack の ``Plug 'n Power(tm)'' や スタンレーの ``Lightmaker(tm)'' を含む、 多くの家庭用コントロールシステムと互換性があります。 .Pp このドライバは .Fn read .Fn write .Fn select のシステムコールをサポートします。 ドライバは複数のプロセスに読み書きができるように動作しますが、実際には 複数の読み取りプロセスがいたり複数の書き込みプロセスがいる場合には 意味が無いかもしれません。 また現状では、 実際にふたつのプロセスが同時に送信をしようとすると、 競合状態になる可能性があります (tw_sc のなかの sc_pkt 構造体の非同期のアクセス構造によるものです)。 .Pp 送信は .Fn write を呼び出し、3 バイトのデータパケットを送信することによってなされます。 最初のバイトは 4 ビットのハウスコード (0=A から 15=P まで)、2 バイト目は 5 ビットの unit/key コード (0= ユニット 1 から 15= ユニット 16 まで、 16= 全ユニットオフ、31= ステータスリクエスト) です。 3 バイト目は、連続して 間を空けずに送信されるパケットの数を指定します。通常は X-10 Inc. の文書に したがってこの値は 2 ですが、他の値をとることもできます。 .Fn write の呼び出しはそれぞれが任意のデータ長 (バイト数) を指定できますが、 どの呼び出しでも最大ひとつのパケットしか処理されません。 不完全なパケットは続いて起きる .Fn write 呼び出しが完全にデータを提供するまでバッファされます。 連続する .Fn write の呼び出しに対しては、X-10 Inc. の文書にしたがって、3 サイクルの間隔が とられます。ドライバは 1 サイクルに 3 回ビットを送るように定めている X-10 Inc. の文書と異なり、半サイクルに 1 ビットずつしか送りません。 これは TW523 が 電源ラインがゼロ点を通る時の同期しか提供していないためです。したがって 3 相交流の商用電源サービスではドライバがうまく動作しない可能性があります。 ほとんどの住宅ではこのドライバが作動する 2 線の電源を使用しています。 .Pp 受信は .Fn read で行います。 ドライバは、3 文字から成るパケットを生成します。 それぞれのパケットで、最初の文字はフラグから成り、2 番目の文字は 4 ビットの ハウスコード (0-15)、3 番目の文字は 5 ビットの key/function コード (0-31) で す。フラグは以下の通りです。 .Bl -diag .It #define TW_RCV_LOCAL 1 /* ローカルな転送中にパケットが到着しました */ .It #define TW_RCV_ERROR 2 /* 不正/壊れたパケットが到着しました */ .El .Pp .Fn select システムコールは、通常通り、読み取ることのできるデータが存在しているかどうかを 確かめるため、使用可能です。 .Sh 関連項目 .Xr xten 1 , .Xr xtend 8 .Bl -diag .It X-10 Inc. による TW-523 に関する文書 .El .Sh 関連ファイル .Bl -tag -width /dev/tw .It Pa /dev/tw? TW523 デバイス型特殊ファイル .El .Sh 作者 .An Eugene W. Stark Aq stark@cs.sunysb.edu