GM65 Barcode Reader
このライブラリは、Hangzhou Grow Technology社製GM65バーコードリーダーを制御する機能を提供する組み込みクラスです。
Library usage requirements | |
---|---|
Type | UART |
Name | GM65 |
Version | 1_00_00 |
Code size used | 9.9KB |
Resources used | UART × 1, Timer × 1 |
関連資料
- GM65 Bar Code Reader Module User Manual (購入先からユーザーマニュアルを取得してください)
事前初期化
GM65バーコードリーダーを初めて使用する場合、バーコードリーダー内に記録されている設定値が不明であるため、一度、バーコードリーダーを工場初期化する必要があります。又、UARTインタフェースのボーレートを事前に設定しておく必要があります。
下記の手順に従って、初期化を進めてください。
別途、User Manual が必要となります。
1. 設定用QRコードの使用を許可します
User Manual - Setup Code を参照し、Setup code on
のQRコードをスキャンします。
2. 工場初期化します
User Manual - Reset を参照し、Reset
のQRコードをスキャンします。
初期化には時間がかかります。ブザー音が鳴るまで待機してください。
3. UARTインタフェースのボーレートを設定します
User Manual - Series Communication Interface を参照し、Baud Rate Settlement
の中から、使用するボーレートのQRコードをスキャンします。
Abstracts
Methods()/Properties | Summary | Note |
---|---|---|
new GM65() | GM65インスタンスを生成します。 |
{GM65} Instance
Methods()/Properties | Summary | Note |
---|---|---|
.init() | バーコードリーダーを初期化します。 | |
.onScanned() | スキャン結果通知のイベントハンドラを登録します。 | |
.getScanned() | スキャン実行コマンドを使用して、スキャン結果を取得します。 | |
.VERSION | バージョン情報 maj : {number} Main Version min : {number} Minor Version rev : {number} Revision |
Details
new GM65(uart[,config])
GM65インスタンスを生成します。
Name | Type | M/O | Description | Note |
---|---|---|---|---|
uart | {UART} | mandatory | 事前にオープン済みのUARTインスタンスを指定します。 UARTの設定は、事前初期化で設定済みのボーレート、ハードウェアフロー無効、パリティモード無効としてください。 | |
config | Object | optional | コンフィグレーション 詳細はconfigを参照してください。 | |
return | {GM65} | - | {GM65} : 生成された{GM65} | 異常が発生した時は、例外となります。 |
config
Name | Type | M/O | Description | Note |
---|---|---|---|---|
READ_MODE | number | optional | 読み取りモード 0: Manual mode 1: Command Triggered Mode 2: Continuous mode 3: Induction Mode デフォルト値は3となります。 詳細については、User Manual - Read Mode を参照してください。 | |
LIGHT | number | optional | ヘッドランプ設定 0: 常時消灯 1: 読み取り時点灯 2: 常時点灯 デフォルト値は1となります。 | |
COLLIMATION | number | optional | 照準ライトビーム設定 0: 常時消灯 1: 読み取り時点灯 2: 常時点灯 デフォルト値は1となります。 | |
READ_TIME | number | optional | 読み取り時間[x0.1s] 設定範囲: 0~255(25.5s) デフォルト値は50となります。 READ_MODEが1, 2, 3の場合に使用されます。 | |
BREAK_TIME | number | optional | 休止時間[x0.1s] 設定範囲: 0~255(25.5s) デフォルト値は10となります。 READ_MODEが2, 3の場合に使用されます。 | |
STABLE_TIME | number | optional | 手ぶれ補正時間[x0.1s] 設定範囲: 0~255(25.5s) デフォルト値は4となります。 READ_MODEが3の場合に使用されます。 | |
BUZZER_TONE | number | optional | ブザートーン 設定範囲: 0~255 デフォルト値は100となります。 | |
BUZZER_MS | number | optional | ブザー継続時間[ms] 設定範囲: 0~255 デフォルト値は60となります。 | |
SCAN_BUZZER | number | optional | スキャン成功音 0: OFF 1: ON デフォルト値は1となります。 | |
EAN | Array | optional | 読み取り有効/無効設定(EAN) Array[0]: Zone bit 0x002Eの設定値 Array[1]: Zone bit 0x002Fの設定値 Allow: [0x01,0x01] Forbid: [0x00,0x00] デフォルト値はForbidとなります。 | ※ |
UPC | Array | optional | 読み取り有効/無効設定(UPC) Array[0]: Zone bit 0x0030の設定値 Array[1]: Zone bit 0x0031の設定値 Array[2]: Zone bit 0x0032の設定値 Allow: [0x01,0x01,0x01] Forbid: [0x00,0x00,0x00] デフォルト値はForbidとなります。 | ※ |
CODE128 | Array | optional | 読み取り有効/無効設定(CODE128) Array[0]: Zone bit 0x0033の設定値 Array[1]: Zone bit 0x0034の設定値 Array[2]: Zone bit 0x0035の設定値 Allow: [0x01,0x04,0x40] Forbid: [0x00,0x04,0x40] デフォルト値はForbidとなります。 | ※ |
CODE39 | Array | optional | 読み取り有効/無効設定(CODE39) Array[0]: Zone bit 0x0036の設定値 Array[1]: Zone bit 0x0037の設定値 Array[2]: Zone bit 0x0038の設定値 Allow: [0x01,0x04,0x40] Forbid: [0x00,0x04,0x40] デフォルト値はForbidとなります。 | ※ |
CODE93 | Array | optional | 読み取り有効/無効設定(CODE93) Array[0]: Zone bit 0x0039の設定値 Array[1]: Zone bit 0x003Aの設定値 Array[2]: Zone bit 0x003Bの設定値 Allow: [0x05,0x04,0x40] Forbid: [0x04,0x04,0x40] デフォルト値はForbidとなります。 | ※ |
CODEBAR | Array | optional | 読み取り有効/無効設定(CODEBAR) Array[0]: Zone bit 0x003Cの設定値 Array[1]: Zone bit 0x003Dの設定値 Array[2]: Zone bit 0x003Eの設定値 Allow: [0x03,0x04,0x40] Forbid: [0x02,0x04,0x40] デフォルト値はForbidとなります。 | ※ |
QR | Array | optional | 読み取り有効/無効設定(QR) Array[0]: Zone bit 0x003Fの設定値 Allow: [0x01] Forbid: [0x00] デフォルト値はForbidとなります。 | ※ |
ITF | Array | optional | 読み取り有効/無効設定(ITF) Array[0]: Zone bit 0x0040の設定値 Array[1]: Zone bit 0x0041の設定値 Array[2]: Zone bit 0x0042の設定値 Array[3]: Zone bit 0x0043の設定値 Array[4]: Zone bit 0x0044の設定値 Array[5]: Zone bit 0x0045の設定値 Array[6]: Zone bit 0x0046の設定値 Array[7]: Zone bit 0x0047の設定値 Array[8]: Zone bit 0x0048の設定値 Allow: [0x01,0x04,0x40,0x01,0x04,0x40,0x01,0x04,0x40] Forbid: [0x00,0x04,0x40,0x00,0x04,0x40,0x00,0x04,0x40] デフォルト値はForbidとなります。 | ※ |
CODE11 | Array | optional | 読み取り有効/無効設定(CODE11) Array[0]: Zone bit 0x0049の設定値 Array[1]: Zone bit 0x004Aの設定値 Array[2]: Zone bit 0x004Bの設定値 Allow: [0x01,0x04,0x40] Forbid: [0x00,0x04,0x40] デフォルト値はForbidとなります。 | ※ |
MSI | Array | optional | 読み取り有効/無効設定(MSI) Array[0]: Zone bit 0x004Cの設定値 Array[1]: Zone bit 0x004Dの設定値 Array[2]: Zone bit 0x004Eの設定値 Allow: [0x05,0x01,0x40] Forbid: [0x04,0x01,0x40] デフォルト値はForbidとなります。 | ※ |
RSS | Array | optional | 読み取り有効/無効設定(RSS) Array[0]: Zone bit 0x004Fの設定値 Array[1]: Zone bit 0x0050の設定値 Array[2]: Zone bit 0x0051の設定値 Array[3]: Zone bit 0x0052の設定値 Array[4]: Zone bit 0x0053の設定値 Allow: [0x01,0x01,0x01,0x04,0x40] Forbid: [0x00,0x00,0x00,0x04,0x40] デフォルト値はForbidとなります。 | ※ |
MATRIX | Array | optional | 読み取り有効/無効設定(Data Matrix) Array[0]: Zone bit 0x0054の設定値 Allow: [0x01] Forbid: [0x00] デフォルト値はForbidとなります。 | ※ |
PDF417 | Array | optional | 読み取り有効/無効設定(PDF417) Array[0]: Zone bit 0x0055の設定値 Allow: [0x01] Forbid: [0x00] デフォルト値はForbidとなります。 | ※ |
BARCODE_FILTER | regexp | optional | スキャンデータの文字列フィルタ regexp: RegExpオブジェクト 正規表現によるスキャンデータの照合を行い、不一致の場合、データを破棄します。 例えば、数字のバーコードのみ許容する場合は /^[0-9]+$/ を指定します。省略時もしくはスキャンデータがバイナリ形式の場合は照合を行いません。 | |
SCAN_LIMIT | number | optional | 最大スキャンデータサイズ[byte] 設定範囲: 1~510 デフォルト値は256となります。 スキャンデータが指定サイズを超過した場合、データを破棄します。 | |
errEvent(code) | function | optional | エラーイベントが発生した際にコールバック処理を実行します。 code : {number} エラーコード 詳細はエラーコード一覧を参照してください。 |
- ※: Zone bitの設定値は、0~255までのnumber型となります。各Zone bitの詳細仕様については、User Manual - List of zone bit を参照してください。
エラーコード一覧
code | Description | Note |
---|---|---|
-1 | バーコードリーダーコマンドタイムアウト | |
-2 | バーコードリーダーコマンド応答エラー | |
-3 | スキャンデータエラー | |
-4 | スキャンデータオーバーフロー | configのSCAN_LIMIT で指定されている最大スキャンデータサイズを超過した場合 |
.init()
バーコードリーダーを初期化します。
インスタンス作成後、一度のみ実行してください。
Name | Type | M/O | Description | Note |
---|---|---|---|---|
return | boolean | - | true: 成功 false: 失敗 | 失敗する場合は、事前初期化を試してください。 |
.onScanned(callback[,isBin])
スキャン結果通知のイベントハンドラを登録します。
尚、登録を解除することはできません。
このメソッドはREAD_MODEが 1 の場合、使用できません。
Name | Type | M/O | Description | Note |
---|---|---|---|---|
callback(data) | function | mandatory | バーコード読み取り完了時にコールバック処理を実行します。 data : {ArrayBuffer|string} スキャンデータ 引数の型は isBin で決定されます。 | |
isBin | boolean | optional | スキャンデータの出力形式を指定します。 true: バイナリデータ形式 false: 文字列形式 デフォルト値はfalseとなります。 | サポート可能なスキャンデータはASCIIコードのみとなります。 |
return | boolean | - | true: 成功 false: 失敗 |
.getScanned([isBin])
スキャン実行コマンドを使用して、スキャン結果を取得します。
このメソッドはREAD_MODEが 1 の場合のみ使用可能です。
Name | Type | M/O | Description | Note |
---|---|---|---|---|
isBin | boolean | optional | スキャンデータの出力形式を指定します。 true: バイナリデータ形式 false: 文字列形式 デフォルト値はfalseとなります。 | サポート可能なスキャンデータはASCIIコードのみとなります。 |
return | ArrayBuffer, string, null, undefined | - | スキャンデータ 戻り値の型は isBin で決定されます。 | confingのREAD_TIME で指定されている読み取り時間を超過した場合、nullが返却されます。READ_MODEが 1 以外の場合はundefinedが返却されます。 |
Usage Examples
Sample 1
Induction Mode (READ_MODE: 3)を使用してスキャンを行うサンプルです。
QRコード及び16桁の英数大文字のスキャンデータのみ取得します。
log.setLevel(0,2); //-1:NONE 0:ERROR 1:WARNING 2:DEBUG 3:TRACE, 0:DISABLE 1:LOG 2:CONSOLE 3:BOTH
log.printLevel(2); //0:DISABLE 1:LOG 2:CONSOLE 3:BOTH
if(!('GM65' in this)) { throw new Error('Please import the GM65 library.'); }
//Specify the UART connection settings for the GM65 barcode reader.
var uart = new UART(1); //UART node number
var ready = uart.open(115200, false, 0); //UART baudrate
if(!ready) {
throw new Error('uart.open');
}
var config = {
READ_MODE: 3, //Induction Mode
QR: [0x01], //Allow QR Code
BARCODE_FILTER: /^[0-9A-Z]{16}$/, //A 16-digit string consisting of "0" to "9" and "A" to "Z"
errEvent: function(code) { print('error:' + code); }
};
var gm65 = new GM65(uart, config);
ready = gm65.init();
if(!ready) {
throw new Error('gm65.init');
}
var scanCb = function(data) {
print('scan:', data);
};
if(!gm65.onScanned(scanCb)) {
throw new Error('gm65.onScanned');
}
Sample 2
Command Triggered Mode (READ_MODE: 1)を使用してスキャンを行うサンプルです。
QRコード及び16桁の英数大文字のスキャンデータのみ取得します。
log.setLevel(0,2); //-1:NONE 0:ERROR 1:WARNING 2:DEBUG 3:TRACE, 0:DISABLE 1:LOG 2:CONSOLE 3:BOTH
log.printLevel(2); //0:DISABLE 1:LOG 2:CONSOLE 3:BOTH
if(!('GM65' in this)) { throw new Error('Please import the GM65 library.'); }
//Specify the UART connection settings for the GM65 barcode reader.
var uart = new UART(1); //UART node number
var ready = uart.open(115200, false, 0); //UART baudrate
if(!ready) {
throw new Error('uart.open');
}
var config = {
READ_MODE: 1, //Command Triggered Mode
QR: [0x01], //Allow QR Code
BARCODE_FILTER: /^[0-9A-Z]{16}$/, //A 16-digit string consisting of "0" to "9" and "A" to "Z"
errEvent: function(code) { print('error:' + code); }
};
var gm65 = new GM65(uart, config);
ready = gm65.init();
if(!ready) {
throw new Error('gm65.init');
}
var scanCb = function(data) {
print('scan:', data);
};
while(1) {
var c = gm65.getScanned();
if(c) {
scanCb(c);
}
setTimeout(1000).wait();
}