仕事でハンディターミナルの照合アプリをよく開発するので、そのときによく上がる要件について記載しておきます。
1. そもそも、ハンディターミナルとは?
ハンディターミナルとは、バーコードやQRコードを読み取るための機械です。 グループ分けすると、以下のようになります。
- osが独自OSか、Windows OS 搭載機種か
- 1次元コードのみ読み取れる機種
- 1次元コードに加え、2次元コード(QRコードやDataMatrix)も読み取れる機種
- OCR読み取り機能ができる機種
- 遠くのコードを読み取れる機種
- Bluetooth 通信が行える機種
「1.」は、例えば、キーエンスのBT-1010という機種
https://www.keyence.co.jp/products/autoid/handheld-terminals/bt-1000_1500/series-dimensions/
これはキーエンスの独自OSが搭載されています。キーエンススクリプトという独自の言語でのプログラミングが必要です。
一方、キーエンスのBT-W70という機種
https://www.keyence.co.jp/products/autoid/handheld-terminals/bt-w70/
こちらは、Windows OS が搭載されていますので、.NET のアプリケーションを実行させることができます。そのため、VBやC#プログラマにとっては開発しやすいです。
しかし、バーコードのみ読み取り可能で、2次元コード(QRコードやDataMatrix)は読み取り不可です。類似機種で2次元コードを読み取ろうと思った場合、BT-W75が対応しています。
「3.」は、例えばBT-W75。
https://www.keyence.co.jp/products/autoid/handheld-terminals/bt-w70/models/bt-w75/
「4.」ですが、最近のハンディターミナルにはOCR読み取り機能がついているものもあります。
https://www.keyence.co.jp/products/autoid/handheld-terminals/bt-w300_w200/index_pr.jsp
そのため、バーコードやQRコードを準備しなくても、カートンやラベルに直接印字されている文字列をハンディアプリが読み取って、処理をすることもできます。
「5.」で示したように、BT-W300/W200 シリーズでは遠くにあるバーコードや2次元コードも読み取ることもできます。対象のコードの大きさにもよりますが、2.5メートルくらいの距離で読み取ることができました。
「6.」のBluetooth 通信が行える機種であれば、PCとBluetoothで通信してファイルを送受信したり、携帯できる小さいラベルプリンタにデータを飛ばして、自由に歩きながらラベル印刷したりすることもできます。
2. ハンディ照合アプリの要件定義で注意すること
2.1. 読み取るコードは1次元か、2次元か
1次元バーコードだけ読み取るだけでいいのであれば、2次元コードを読み取るハンディではオーバースペックになります。ただし、今後汎用的に利用することを見越して2次元コードを読み取るハンディを導入することも考えられます。
2.2. マスタの取込は必要か?取り込む場合はどの経路でハンディに転送するか?
ハンディアプリケーションがマスタを参照する場合は、以下の2つの方法が考えられます。
- TCP通信でサーバーからマスタ情報を照会する
- CSVファイルに記録されたマスタ情報をUSB経由でハンディに転送する
「2.」とした場合は、マスタが変わるたびに転送処理が必要になります。あまりマスタ情報が変わらないのであれば、この案でも問題ないと思います。
一方、「1.」であれば照会の都度最新のマスタ情報をサーバーから取得できるので、マスタ取込の手間はかかりません。ただし、TCP通信処理の実装が必要になります。
2.3. 照合NGの場合のハンディロック・復帰パスワードは必要か?
担当者の作業ミスなどで照合NGになった場合、エリアリーダーを読んで指示を仰ぐ必要がある場合、ハンディが操作できないようにロックして欲しいといった要件があがります。
2.4. 照合結果のサーバーへの連携は必要か?
今日はどこまで照合したかなど、照合結果のサーバー連携が必要な場合は保存先のファイルサーバーが必要になります。照合結果ファイルを置く場所を用意するだけでいいのであれば簡単ですが、照合されるべき一覧に対して、照合済み/未照合を管理しないといけない場合は、サーバーアプリケーションを検討する必要があります。
3. 開発者目線で注意すること
3.1. コードに記録される文字列は固定長か可変長か
可変長であれば、区切り文字を見つけてそこから照合対象文字列を抽出するなど、手間がかかります。大した手間ではないかもしれませんが、開発案件が増えるたびに苦労も増えていくと思います。
一方、固定長であれば、先頭の何文字目から何ケタといったロジックだけで済むので、簡単に実装できます。プログラミングするのであれば、こちらの方が断然ラクです。
3.2. 使用可能なプログラミング言語は何か
プログラミング言語を一から覚えて行こうと思うとかなりの体力が必要になります。自分が熟知しているプログラミング言語で開発ができるのであれば、そちらの方が工数はかかりません。また、VB.NET や C# など、プログラミング言語としてのドキュメント量が多い方が、困ったときにインターネットで検索しやすいですよね。なので、自分が熟知しているプログラミング言語、または世界的に広く使われているプログラミング言語が好ましいと思います。
3.3. 搭載OSは何か
ハンディターミナルとはいっても、ネットワークに接続したりファイル共有したりなど、ニーズはいろいろあると思います。社内で導入されているサーバーやクライアントPCがWindowsであれば、ハンディもWindows OSの方がそのようなニーズを満たしやすいです。また、管理する側としてもWindowsの方が困ったときのコマンドプロンプトが使えたりして、便利かと思います。
3.4. アプリケーション開発ツールは用意されているか
GUI操作だけでハンディのアプリケーションを開発できるツールが用意されている場合もあります。これを利用すればコーディング不要でアプリケーションを開発できますので、工数は格段に下がります。音を鳴らしたりバイブレーションを振動させるといったハンディ独自機能もGUI操作で実装できるのであれば、積極的に利用するべきだと思います。
コメント