.\" asc(4) - manual page for the scanner device driver `asc' .\" .\" .\" Copyright (c) 1995 Gunther Schadow, Luigi Rizzo. 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 acknowledgements: .\" This product includes software developed by Gunther Schadow. .\" This product includes software developed by Luigi Rizzo. .\" 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 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: asc.4,v 1.8 1998/10/22 14:17:44 bde Exp % .\" $FreeBSD$ .Dd January 19, 1995 .Dt ASC 4 i386 .Os FreeBSD .Sh 名称 .Nm asc .Nd GI1904 ベースのハンドスキャナ用デバイスドライバ .Sh 書式 .Cd "device asc0 at isa? port" \&"IO_ASC1\&" tty drq 3 irq 10 .Sh 解説 キャラクタ型デバイスドライバ .Nm は、現在のところ、 .Tn GI1904 ベースのハンドスキャナ (例えば Trust Amiscan Grey など) を扱います。 このデバイスドライバは、DMA と割り込みを使用します。50 ラインまでの スキャン入力データをドライバ中でバッファリングします。 .Pp このデバイスは、4 つの異なる解像度 (100, 200, 300, 400 ドット/インチ) で動作させることができます。最上位ビットが左側に来る単純なビットマップ を生成します。このドライバは、別途、単純な ポータブルビットマップファイル形式 .Xr pbm 5 を生成させることもできます。 これにより、ほとんどのグラフィックパッケージで、このスキャン結果を 容易に処理することが出来ます。 .Pp 出力ビットマップの幅は、解像度の値により決まる固定の値です。しかし、 .Xr pbm 5 モードの場合、ビットマップの高さを指定する必要があります。これは、 ドライバがいつ「ファイルの終端」に達するかを知っておく必要がある からです。デフォルトでは、正方形のイメージを生成します。つまり、幅と 高さが等しいとされます。この機能により、 .Xr cat 1 を用いてスキャナの出力を直接 .Xr pbm 5 ファイルにコピーすることができます。 このドライバを raw モードで使用する場合、 .Xr dd 1 コマンドを使用することにより、この効果と似た効果を得ることもできます。 .Sh IOCTL .Nm に適用可能な .Xr ioctl 2 コマンドは次のとおりです。 .Xr sasc 1 により、ユーザレベルでこれらのコマンドを使用することができます。 .Bl -tag -width "ASC_GHEIGHT" .It Dv ASC_GRES .Pq Li int 現在の解像度を、ドット/インチ (dpi) 単位で返します。 .It Dv ASC_GWIDTH .Pq Li int 現在のビットマップ幅をピクセル単位で返します。 .It Dv ASC_SHEIGHT .Pq Li int .Xr pbm 5 モードのビットマップの高さを設定します。 実際のところ、これは、最初の読み込み処理以後スキャン可能なラインの累積数 に対する制限です。この制限に到達すると、読み込みは 0 を返します。 しかし、デバイスが動作を停止するのは、オープンされたファイル記述子がすべて クローズされたときに限ります。 .It Dv ASC_GHEIGHT .Pq Li int 現在のビットマップの高さを返します。 .It Dv ASC_SBLEN .Pq Li int DMA 転送を行なう際に内部的に使用するバッファの長さを指定します。 バッファの長さはビットマップのライン数で指定します。バッファサイズの 制限が (現在のところ) 0x3000 バイトであるため、指定可能なライン最大数は ラインあたりの幅により変わります。 指定した長さがこの制限を越える場合、 .Er ENOMEM エラーが返されます。 .It Dv ASC_GBLEN .Pq Li int 現在のバッファの長さをライン数単位で返します。 .It Dv ASC_SBTIME .Pq Li int バッファ 1 つへの読み込み完了までのタイムアウトを指定します。 ハンディスキャナは人間とコンピュータ間のインタフェースであるため、 普通は、タイムアウト値はフラットスキャナよりも大きくしておく必要が あります。デフォルトは 15 秒です。タイムアウトに到達すると、読み込み処理は .Er EBUSY エラーで失敗します。 各バッファから読み出されるごとにタイムアウトタイマが新たに開始されます。 よって、タイマ値を減らすことにより、より長いイメージをより速くスキャン できるようになるわけではありません。 .It Dv ASC_GBTIME .Pq Li int 現在のバッファタイムアウト値を返します。 .El .Pp .Dv ASC_SBTIME を除き、パラメータを変更する .Fn ioctl リクエストのすべては、現在進行中のスキャン処理に影響しません。ユーザは デバイスをクローズし、再びオープンして、新しい設定が効力をあらわすよう にする必要があります。結局のところ、デバイスのオープンクローズにより、 パラメータの設定がリセットされることは .Em ありません。 .Pp 同様に、値を読み込むリクエストは、現在進行中のスキャン処理で用いられて いる値を返しません。スキャン処理中に必要な値は、スキャン開始時に保存され、 .Fn ioctl リクエストではアクセスできないようになっています。 .Pp しかし、 .Dv ASC_SBTIME の値は、現在進行中のスキャン処理に即座に影響を及ぼします。これにより、 例えば、ユーザがスキャンを開始するまではタイムアウトに大きな値を設定し、 開始後は小さな値を設定することで、ユーザのスキャン中止に即座に反応する ようにできます。 .Pp .Xr pbm 5 と raw モードの選択は、マイナ番号により行なわれます。 .Fn ioctl リクエストでは行なえません。raw モードでは、指定されたビットマップの 高さは効果をあらわしません。 .Sh 関連ファイル .Bl -tag -width /dev/asc0pd -compact .It Pa /dev/asc0 raw 出力用のデバイスノード。 .It Pa /dev/asc0d raw 出力用のデバイスノード。 .Dv ASCDEBUG オプションをカーネル設定ファイルで指定した場合、デバッグメッセージが 出力されます。 .It Pa /dev/asc0p .Xr pbm 5 ファイル形式出力用のデバイスノード。 .It Pa /dev/asc0pd .Xr pbm 5 ファイル形式出力用かつデバッグモードのデバイスノード。 .El .\" .\" .Sh 診断 .\" .Sh 関連項目 .Xr sasc 1 , .Xr pbm 5 .Sh バグ ioctl のサポートがまだ動作していません。 .Sh 作者 .Nm ドライバは、 Luigi Rizzo が書きました。 .Sh 歴史 .Nm ドライバが最初に現れたのは .Fx 2.1 です。