• 検索結果がありません。

2. 機能仕様

2.3 MCR(磁気カードリーダ)

この節では、MCR(磁気カード・リーダー)機能について説明します。

MCRには下記の機能があります。

• 読み取り/解析機能

• 読み取り完了通知/エラー通知機能

• トラック指定機能

• MCR電源自動OFF機能

• 生データ読み取り機能

2.3.1 読み取り/解析機能

MCRユニットに磁気カードを通す(走行させる)ことにより、磁気カードからデータを読み取ります。

読み取ったデータには、データ以外にもプリアンブルやSTX等が含まれているため、MCRドライバはそれ らを取り除き必要なデータのみを抽出します。ユーザーはMCRライブラリを使用することで磁気カードの データ取得等を利用することが可能です。

※ この機能に関連するライブラリ関数は、以下のとおりです。

プリンタライブラリ

MCRRead 磁気カードから読み取ったデータを取得します

各トラックのデータ解析

磁気カードには、トラックと呼ばれるデータが書き込まれている領域があります。

磁気カードは最大で3つのトラック持つことが可能です。本機では同時に下記の3つのトラックデータを読 むことが可能です。また、全データの中からパリティ部分を取り除き有効データを抽出してアプリケーショ ンが確保しているバッファへ格納します。

それぞれのトラックフォーマットの仕様を下記に示します。

各トラックの対応規格 表 2-46

対応規格 JIS-II ISO1 ISO2 ISO3

記録容量 8bit×72キャラクタ 7bit×79キャラクタ 5bit×40キャラクタ 5bit×107キャラクタ 有効データ長 1~69キャラクタ 1~76キャラクタ 1~37キャラクタ 1~104キャラクタ データ部構成 7bit+1Parity 6bit+1parity 4bit+1parity 4bit+1parity

2.3.2 読み取り完了通知/エラー通知機能 読み取り完了通知機能

本機は、データの読み取り/解析を終了した時点でアプリケーションにその旨を通知します。

通知方法はイベント、メッセージのどちらかを選択可能で、初期状態はメッセージ通知になっています(通 知方法の変更はMCRSetEventNotificationで行います)。

メッセージ通知の場合、データ読み取り/解析が終了するとメッセージWM_MCR_READING(ヘッダファ イルmcrlib.hで定義しています)が発行されます。オープン時にアプリケーションがウィンドウハンドルを渡 した場合、そのハンドルに対してメッセージが通知されますが、ウィンドウハンドルを渡さない場合(NULL を指定した場合)、メッセージはブロードキャスト通知されます。

通知方法を名前付きイベントに設定した場合、本機のレジストリに登録されている名前のイベントを発行し ます(レジストリ変更により、名称を変更可能。初期設定は”MCREventReading”)。通知方法をイベント通 知に設定している場合アプリケーションは、WaitForSingleObject関数等を使用し、データの読み取り/

解析終了のイベントを待ってください。

読み取り/解析終了通知前は、データ/エラー情報共に初期状態(0)が格納されています。しかし、通 知直前にデータを取得しようとすると書き込み中のデータを取得してしまう場合があります。したがって、

データの取得は必ずイベント発生後に行って下さい。

※ この機能に関連するライブラリ関数は、以下のとおりです。

プリンタライブラリ

MCRSetEventNotification 磁気カード読み取りの通知方法を設定します MCRGetEventNotification 磁気カード読み取りの通知方法を取得します

エラー通知機能

ライブラリ関数を使用してデータの取得を行った際、エラーが発生している場合はStatusJIS2、

StatusISO1、StatusISO2(またはStatusISO1、StatusISO2、StatusISO3)にエラー状態が保存されます

(データ取得が成功した場合はMCR_DATA_SUCCESSが保存され、そのトラックのデータ情報がデータ 保存用バッファDataXXX[]に格納されます)。

エラー内容を下記に示します。

エラー内容一覧 表 2-47

名称 説明 詳細

MCR_NO_DATA 取得データなし カードデータ未取得

MCR_DATA_SUCCESS データ取得成功 カードデータ取得正常終了

MCR_BUFFER_FULL_ERR バッファフルエラー 規定量以上のデータ取得

MCR_DATASHORT_ERR Min.データエラー 必要最低限のデータが無い場合

MCR_DATA_ERR1 データ前連続1エラー “1”連続によりデータ取り込み中止

MCR_DATA_ERR2 データ部連続1エラー “1”連続によりデータ取り込み中止

MCR_PULSE_ERR1 Min.パルスエラー Min.値以下のパルス検出

MCR_PULSE_ERR2 Max.パルスエラー Max.値以上のパルス検出

MCR_TIMEOUT_ERR タイムアウトエラー カード走行時間がタイムアウト

MCR_CARDSPEED_ERR1 加速エラー カード走査中の異常加速

MCR_CARDSPEED_ERR2 減速エラー カード走査中の異常減速

MCR_PARITY_ERR キャラクタパリティエラー 取得データのパリティエラー

MCR_STX_NOTFOUND STX検出エラー STXが検出できない

MCR_ETX_NOTFOUND ETX検出エラー ETXが検出できない

MCR_PACKET_LRC_ERR パケットLRCエラー パケットのLRCエラー

2.3.3 トラック指定機能

デフォルトの状態では、データの読み取り/解析は全トラック(トラック1~3)について行われますが、ライ ブラリ関数を使用することでアプリケーションからデータの読み取り/解析を行うトラックを指定することが 可能です。

※ この機能に関連するライブラリ関数は、以下のとおりです。

プリンタライブラリ

MCRSelectTrack 読み取るトラックを指定します

2.3.4 MCR 電源自動 OFF 機能

MCR電源を一定時間後に自動OFFすることが可能です。

MCR電源は基本的にMCROpen関数実行時に投入され、MCRClose関数実行時に停止しますが、

MCRSetAutoPowerOff関数を使用するとMCRCloseを実行しなくても一定時間経過後にMCR電源を OFFします(MCR電源OFF状態中はMCRを使用できません)。自動電源OFF状態から再度MCRに電 源を投入し、MCRを使用可能状態にするにはMCRResume関数を使用してください。

※ この機能に関連するライブラリ関数は、以下のとおりです。

プリンタライブラリ

MCRSetAutoPowerOff MCRの電源を自動的にOFFするまでの時間を 指定します

MCRGetAutoPowerOff MCR自動電源OFFの時間を取得します

2.3.5 生データ取得機能

MCRユニットに磁気カードを通す(走行させる)ことにより、磁気カードに含まれるデータ(生データ)そのも のを取得することが可能です。取得したデータは、MCRユニットから受信したデータそのものであるため、

データの誤り検出等の一切の処理を行いません。

また、次のエラーが発生した場合は、生データを取得することができません。

• バッファフルエラー

• Min.データエラー

• データ前連続1エラー

• データ後連続1エラー

• Min.パルスエラー

※ この機能に関連するライブラリ関数は、以下のとおりです。

プリンタライブラリ

MCRReadRaw 磁気カードから読み取ったデータ(生データ)を

取得します