.NET におけるバーコード リーダーの利用

最近 .NET でバーコード リーダーからの入力を受け取る方法について調べる機会があったので載せておきます。
ただし、実機では検証していません。
 
まず、バーコード リーダーには大きく分けて次の 2 種類のものが存在します。
 
  • シリアルポート インターフェイス (RS-232C)
  • キーボード インターフェイス
近年ではキーボード インターフェイスのものが増えてきているようです。
それぞれの場合にバーコード リーダーからの入力を受け取る方法は以下のようになります。
なお、製品によっては専用の API が用意されているかもしれません。
 
(1) シリアルポート インターフェイスを利用する場合
 
System.IO.Ports.SerialPort クラスを利用します。
具体的には、SerialPort オブジェクトの DataReceived イベントを待機し、イベントが発生したら Read 系メソッドでデータを読み込みます。
 
(2) キーボード インターフェイスを利用する場合
 
バーコード リーダーからの入力はキーボードからの入力に置き換えられます。
従って、Control.KeyDown イベントUIElement.KeyDown イベントを利用します。このイベントは 1 文字ごとに発生します。
 
またこの場合、キーボードから入力されたのか、それともバーコード リーダーから入力されたのかを判断するのは容易ではありません。
考えられるのは、バーコード リーダーによる入力は一瞬で終了するはずなので、タイムアウトを決めておいて作り込むという方法です。
入力内容の妥当性については、例えば次のように判断します。
 
  • 入力内容が "*9999*\r\n" のように記号や改行コードを含んでいれば、それらが存在するかどうかをチェックする。
  • 入力の桁数が固定されていれば、桁数をチェックする。
バージョン情報
.NET Framework 2.0, 3.0, 3.5, 4
 
参照
バーコード リーダー関連
 
シリアルポート インターフェイス関連
 
キーボード インターフェイス関連

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。