IR(4) — UNIX Programmer’s Manual
名称
ir − イメージリーダデバイスインタフェース
形式
ir0 at iop addr 7fee10 intr 110
/dev/ir
#include <newsiop/imagereader.h>
解説
このインタフェースは、NEWS のイメージリーダ(NWP-534) に対する 制御を行なうためのものです。 イメージリーダは数々のインテリジェント機能を備えており、 このインタフェースを用いてそれらを効果的に 活用することができるようになっています。
制御は一般的な ioctl システムコールによって行なうことができ、 C言語から簡単に利用可能となっています。
データ形式
以下に、ここで使用する構造体のデータ形式を説明します。
struct ir_window {
intiw_x; /∗ X 座標 ∗/
intiw_y; /∗ Y 座標 ∗/
intiw_dx; /∗ 幅 ∗/
intiw_dy; /∗ 高さ ∗/
};
struct ir_xy {
intiw_x; /∗ X 方向の倍率/データ量 ∗/
intiw_y; /∗ Y 方向の倍率/データ量 ∗/
};
struct ir_seg {
intis_in; /∗ セグメント内のモードなど ∗/
intis_out; /∗ セグメント外のモードなど ∗/
};
ir_window は、領域のデータを格納するためのデータ形式です。
ir_xy は、倍率のデータや画像データ量などのデータを格納するためのデータ形式です。
ir_seg は、セグメントの内部と外部のモードなどを格納するためのデータ形式です。
IOCTL
IRIOCINIT イニシャライズ指示
イメージリーダのイニシャライズを指示します。 ioctl(fildes,IRIOCINIT);
IRIOCHOME ホームポジション指示
イメージリーダの光学系をホームポジションに戻すとき指示します。 ioctl(fildes,IRIOCHOME);
IRIOCLAMP 光源点灯指示
イメージリーダの光源の点灯、または消灯を指示します。
#define LAMP_OFF 0 /∗ 消灯 ∗/
#define LAMP_ON 1 /∗ 点灯 ∗/
int lamp;
ioctl(fildes,IRIOCLAMP,&lamp);
IRIOCRESOLUTION
解像度指示
解像度を指定します。
#define DPI_300 300 /∗ 300 dpi ∗ /
#define DPI_200 200 /∗ 200 dpi ∗ /
#define DPI_150 150 /∗ 150 dpi ∗ /
#define DPI_75 75 /∗ 75 dpi ∗ /
int resolution;
ioctl(fildes,IRIOCRESOLUTION,&resolution);
IRIOCMIRROR 胸像指示
鏡像の指示、または解除を行います。
#define NORMAL 0 /∗ 正像 ∗/
#define MIRROR 1 /∗ 鏡像 ∗/
int mirror;
ioctl(fildes,IRIOCMIRROR,&mirror)
IRIOCOUTMODE 出力指示
出力モード(画像読み取りモード)を指定します。
#define BINARY 0 /∗ 2 値 ∗ /
#define DIZER1 1 /∗ デイザパターン No.1 ∗ /
#define DIZER2 2 /∗ デイザパターン No.2 ∗ /
#define DIZER3 3 /∗ デイザパターン No.3 ∗ /
#define DIZER4 4 /∗ デイザパターン No.4 ∗ /
#define DIZER5 5 /∗ デイザパターン No.5 ∗ /
#define DIZER6 6 /∗ デイザパターン No.6 ∗ /
#define DIZER7 7 /∗ デイザパターン No.7 ∗ /
#define MULTI 9 /∗ 多値出力 ∗ /
int outmode;
ioctl(fildes,IRIOCOUTMODE,&outmode);
IRIOCAREAMODE
像域分離出力指示
像域分離出力時のセグメント内外の出力モードを指定します。
#define BINARY 0 /∗ 2 値 ∗ /
#define DIZER1 1 /∗ デイザパターン No.1 ∗ /
#define DIZER2 2 /∗ デイザパターン No.2 ∗ /
#define DIZER3 3 /∗ デイザパターン No.3 ∗ /
#define DIZER4 4 /∗ デイザパターン No.4 ∗ /
#define DIZER5 5 /∗ デイザパターン No.5 ∗ /
#define DIZER6 6 /∗ デイザパターン No.6 ∗ /
#define DIZER7 7 /∗ デイザパターン No.7 ∗ /
#define WHITE 11 /∗ 白 ∗ /
struct ir_seg seg_outmode;
ioctl(fildes,IRIOCAREAMODE,&seg_outmode)
IRIOCLIGHT 濃度指示
画像信号の濃度を指定します。
int light;
ioctl(fildes,IRIOCLIGHT,&light);
IRIOCNOAE AE(自動濃度調整)指示
AE(自動濃度調整)の指定、または解除を行います。
#define AE 0 /∗ AEの指定 ∗/
#define NO_AE 1 /∗ AEの解除 ∗/
int no_ae;
ioctl(fildes,IRIOCNOAE,&no_ae);
IRIOCREVERSE ネガ/ポジ指示
ネガ/ポジを指定します。
#define POSI 0 /∗ ポジ ∗/
#define NEGA 1 /∗ ネガ ∗/
int reverse;
ioctl(fildes,IRIOCREVERSE,&reverse);
IRIOCAREAREVERSE
像域分離ネガ/ポジ指示
像域分離出力時のセグメント内外のネガ/ポジを指定します。
#define POSI 0 /∗ ポジ ∗/
#define NEGA 1 /∗ ネガ ∗/
struct ir_seg seg_reverse;
ioctl(fildes,IRIOCAREAREVERSE,&seg_reverse);
IRIOCSCALE 倍率指示
読み取り倍率を指定します。
int scale;
ioctl(fildes,IRIOCSCALE,&scale);
IRIOCXYSCALE 独立変倍指示
主走査と副走査で別々の倍率を指定します。
struct ir_xy xy scale;
ioctl(fildes,IRIOCXYSCALE,&xy_scale);
IRIOCAREA 領域指示
読み取り領域を指定します。
#define WINDOW 0
#define A4 1
#define A5 2
#define B5 3
#define B6 4
#define ENVELOPE 5
#define POSTCARD 6
#define A6 7
#define MINI 10
#define LETTER 11
#define NOT_SPECIFIED 99
int area;
ioctl(fildes,IRIOCAREA,&area);
IRIOCWINDOW ウィンドウ領域指示
ウィンドウ読み取りモードの領域を指定します。
struct ir_window window;
ioctl(fildes,IRIOCWINDOW,&window);
IRIOCSEGMENT セグメント領域指示
セグメントの領域を指定します。
struct ir_window segment;
ioctl(fildes,IRIOCSEGMENT,&segment);
IRIOCREAD スキャニング指示コマンド
読み取りの実行を指示します。
int area;
ioctl(fildes,IRIOCREAD,&area);
IRIOCAREAREAD
像域分離スキャニング指示コマンド
像域分離読み取りの実行を指示します。
int area;
ioctl(fildes,IRIOCAREAREAD,&area);
IRIOCRMODE モードレポート
レポート内容 No.0(モードレポート)を要求します。
struct ir_mode {
intim_resolution;
intim_mirror;
intim_motor;
intim_light;
struct ir_seg im_reverse;
};
struct ir_mode mode;
ioctl(fildes,IRIOCRMODE,&mode);
IRIOCRSTATUS ステータスレポート
レポート内容 No.1(ステータスレポート)を要求します。
struct ir_status {
intis_error;
intis_timeout;
intis_operator_call;
intis_service_call;
};
struct ir_status status;
ioctl(fildes,IRIOCRSTATUS,&status);
IRIOCRPOSITION
原点からのポジションレポート
レポート内容 No.2(原点からのポジションレポート)を要求します。
int position;
ioctl(fildes,IRIOCRPOSITION,&position);
IRIOCRWINDOW ウィンドウレポート
レポート内容 No.3(ウィンドウレポート)を要求します。
struct ir_window window;
ioctl(fildes,IRIOCRWINDOW,&window);
IRIOCRLIGHT 濃度レポート
レポート内容 No.4(濃度レポート)を要求します。
struct ir_light {
intil_ae;
intil_light;
};
struct ir_light light;
ioctl(fildes,IRIOCRLIGHT,&light);
IRIOCROUTMODE
出力モードレポート
レポート内容 No.5(出力モードレポート)を要求します。
struct ir_seg outmode;
ioctl(fildes,IRIOCROUTMODE,&outmode);
IRIOCRSCALE 倍率レポート
レポート内容 No.6(倍率レポート)を要求します。
struct ir_xy scale;
ioctl(fildes,IRIOCRSCALE,&scale);
IRIOCRDATA 転送データ数レポート
レポート内容 No.8(転送データ数レポート)を要求します。 amount.x は X 方向のバイト数、amount.y は Y 方向のドット数です。
struct ir_xy amount;
ioctl(fildes,IRIOCRDATA,&amount);
IRIOCRSELECT レポート内容選択
モードレポートおよび出力モードレポート時の内容を規定します。
int select;
ioctl(fildes,IRIOCRSELECT,&select);
関連ファイル
/dev/irイメージリーダデバイスファイル
関連事項
イメージリーダ(NWP-534)取扱説明書
イメージリーダ(NWP-534)ソフトウェア説明書
NEWS-OSRelease 3.3