OPN-2001からバーコードデータをダウンロードするアプリをC#で書いてみる。
情報収集
開発者向け情報はメーカーのWikiにまとめられている。
OPN-2001 – Opticon Technical Support Portal
https://wiki.opticonusa.com/techsupport/en/OPN-2001
OPN PC SDKをダウンロードする。レジスト不要で自由にダウンロードできる。
OPN PC SDK Ver.6
http://ftp.opticonusa.com/Downloads/OPN2001SDKv6.zip
デモソフトを動かす
SDKには.NET Demoというアプリが同梱されているので、実行して動作を確認してみる。
VS2013でデモアプリのプロジェクトを開くと、古いバージョンのVSで作成されたために変換が必要と言われる。SDKにリリースノートが同梱されていないので、いつ作成されたプロジェクトなのかわからん。ファイルの日付からおそらく2012年2月だろう。
プロジェクトを変換してビルドを試みると、リファレンス欠如によるエラー多数。
|
Could not resolve this reference. Could not locate the assembly "Opticon.csp2Ex.net". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. Csp2.net.Test |
1つ上のディレクトリにあるOpticon.csp2.net.dllのリファレンスを追加するとビルド成功。ちなみにOpticon.csp2Ex.netのリファレンスを追加しようとすると、CPUタイプがマッチしないというエラーになる。
実行しようとすると以下のエラー。
プロジェクトにデモソフト作成者のマシン上のパスが直指定されているのが原因。この設定は余計なので、プロジェクトのプロパティを開いて[Debug]ペインの[Working directory]を空白にしてやればいい。リリース前の見落としか?>メーカー
これでデモアプリは実行できるようになったので、ソースを眺めながら挙動を確認する。デモアプリというよりはAPIのテストプログラムという感じ。実際の処理には必要ないAPI呼び出しが多数含まれるので、自分でアプリを書くときには必要なAPIだけ呼ぶように配慮する必要がありそう。ドキュメントにはそういう実装上のヒントは書かれていないのがちょっと不親切。
スクラッチからアプリを作る
デバイスからバーコードをダウンロードしてMS-Accessのテーブルを処理するアプリを書いてみた。
ざっと留意事項。
- プロジェクトにOpticon.csp2.net.dllのリファレンスを追加する
- 実行パスにCsp2.dllも配置しておかないとdll不足で動作しない
- Opticon.csp2.net.dllはCsp2.dllを単にラップしているだけっぽい
- Opticon.csp2.net.dllのメソッドは全てスタティックなのでインスタンス化とか不要
- 逆に言えば一度に1デバイスしか処理できない
- メソッドに関してはSDK同梱の”Windows SDK Reference”を参照