OPH-5000iのスキャナモジュールの読み取り動作を制御します。

構文

int ScannerPower(
  int mode, 
  int time
);

パラメータ

mode
[in] スキャナモジュールの読み取り動作を指定します。
説明
OFF スキャナモジュールの読み取り動作を停止します。
トリガキーを押下してもスキャナモジュールは読み取り動作を開始しません。
ON この関数呼び出し後、すぐにスキャナモジュールの読み取り動作を開始します。
ReadBarcode関数によりバーコードの読み取りが行われた場合、読み取り動作を停止します。
スキャナモジュールはtimeに指定された時間経過後に読み取り動作を停止します。
トリガキーを押下してもスキャナモジュールは読み取り動作を開始しません。 次に読み取り動作を開始する際には、改めてこの関数を呼び出す必要があります。
time=0のとき、バーコードを読み取るまで読み取り動作は停止しません。
TRIGGER トリガキー長押しで1つのバーコードを読み取るための読み取り動作を有効化します。
スキャナモジュールはトリガキーを押下している間のみ読み取りを行います。
ReadBarcode関数によりバーコードの読み取りが行われた場合、読み取り動作を停止します。
押下状態が続いた場合、timeに指定された時間の経過後に読み取り動作を停止します。
time=0のとき、押下状態が続いた場合、バーコードを読み取るまで読み取り動作は停止しません。
※関数呼び出し時にスキャナモジュールに単発読み(S0)を設定します。
SINGLE トリガキーで1つのバーコードを読み取るための読み取り動作を有効化します。
スキャナモジュールはトリガキーを押下した時点から読み取り動作を開始します。
ReadBarcode関数によりバーコードの読み取りが行われた場合、またはtimeに指定された時間経過後に読み取り動作を停止します。
time=0のとき、トリガキーを離したタイミングで読み取りを終了します。
※関数呼び出し時にスキャナモジュールに単発読み(S0)を設定します。
MULTIPLE トリガキーで複数のバーコードを読み取るための読み取り動作を有効化します。
スキャナモジュールはトリガキーを押下した時点から読み取り動作を開始します。
バーコードを一度読取った後も読み取り動作を継続し、前回と異なる内容のバーコードを読み取ります。
ReadBarcode関数によりバーコードの読み取りが行われた場合、バーコードの読み取り時点からtimeに指定された時間経過後に読み取り動作を停止します。
バーコードを読み取らなかった場合、トリガキーを押下した時点からtimeに指定された時間経過後に読み取り動作を停止します。
time=0のとき、トリガキーを離したタイミングで読み取りを終了します。
※関数呼び出し時にスキャナモジュールに複数読み(S1)を設定します。
SCANNER_MODE_REACTIVATION mode=OFFによって読み取り動作が停止しているときに、以前に設定された読み取り動作でトリガキーの押下で読み取り動作を開始します。
起動後、SINGLE、MULTIPLE、TRIGGERのいずれも実行したことが無い場合は、SINGLEで動作します。
読み取り動作の時間は、timeに指定された時間となります。
※関数呼び出し時にスキャナモジュールに単発読み(S0)や複数読み(S1)の設定を送信しません。
time
[in] 読み取りを行う時間を指定します。
値の範囲は0〜32,767となります。
範囲外の値を設定しないでください。
単位当たり20msecです。
例: timeが250の場合は、250×20msec = 5秒となります。

戻り値

 スキャナモジュール設定成功(OK)もしくは設定失敗(ERROR)を返します。

解説

 この関数はOPH-5000iのスキャナモジュールの読み取り動作を制御します。
 バーコードを読み取ったかどうかを判定する際には、ReadBarcode関数関数を使用します。

必要条件

ヘッダファイル:
lib.h
ライブラリファイル:
libSTARTUPOPH5000.a

サンプル

#include <stdio.h>
#include "lib.h"

void main(void)
{
    char bcr_buf[42];
    struct barcode code;

    code.min = 1;
    code.max = 41;
    code.text = bcr_buf;
    for ( ;; )
    {
        if (!IsScannerOff())
        {
            if (ReadBarcode(&code) == OK)
            {
                if (((code.id == CODABAR) ||
                    (code.id == I2OF5) ||
                    (code.id == D2OF5)) &&
                    (code.length > 5))
                {
                    GoodReadLed(RED,10);
                    Sound(TSTANDARD,VHIGH,SMEDIUM,SHIGH,0);
                    ScannerPower(OFF,0);
                    printf("%s\n",code.text);
                }
            }
        }
        else
        {
            Delay(TIME_100MS * 10);
            ScannerPower(ON,250);
        }
        Idle();
    }
}

最終更新日:2024/10/30