0

EMDK (バージョン 2.6) を使用して MC75 のバーコード スキャナにアクセスするマルチフォーム Windows モバイル アプリケーションがあります。Singleton を使用してバーコード スキャナーにアクセスします。アプリケーションの開始時に呼び出しbarcodereader.Actions.Enable()、アプリケーションの終了時に「barcodereader.Actions.Disable()」を呼び出します。基本的に、スキャナーを機能させるためのガイドとして EMDK サンプルを使用しました。

アプリケーションの実行中に、フォームのアクティブ化イベントでイベント ハンドラーをバーコード リーダーの「readNotify」に追加し、フォームがアクティブ化されたときにイベント ハンドラーを削除します。これが正しく行われていることを確認するコードを挿入し、新しいイベント ハンドラーを追加する前に既存のイベント ハンドラーが存在しないことを確認するチェックを追加しました。

アプリケーションは正常に動作しますが、何らかの理由でバーコード スキャナーが突然切れて、トリガー ボタンを押しても動作しません。これは常に同じ場所で発生しているようです (約 20 回の奇妙なスキャンが 3 つのフォームにまたがった後)。エラーはキャッチされず、スキャナー ライトは点灯しません。実行するスキャンの設定回数があり、数秒前にスキャンが成功したフォームでスキャンが停止します。1 つのフォームで 20 を超えるスキャンを実行できますが、別のフォームでスキャンを実行した場合にのみ問題が発生するようです。

アプリケーションを再起動すると、スキャナーは再び機能します。Datawedge ソフトウェアはインストールされていますが、使用されていません。

ここでの調査中にこの問題を確認しましたが、私の問題は断続的ではないようです。

Symbol サポート サイトで、フォーム間を移動するときに「.Actions.Enable」と「.Actions.Disable」を繰り返し呼び出すことは望ましくないというメモを見ましたが、私はこれを行いません。

アプリで何をチェックすればいいのか途方に暮れています。何か案は?

詳細 - Windows Visual Studio 2008 を使用し、デバイスは Windows Mobile 6.5 Professional、EMDK バージョン 2.6、C# で記述されたアプリケーションを実行しています。

4

2 に答える 2

2

MC70 デバイスでもまったく同じ問題が発生しました。残念ながら、それは以前の雇用主だったので、振り返るソースコードがありません。それを機能させるには、やや醜い回避策を作成しなければならなかったことを覚えています。

親フォーム内でバーコードリーダーオブジェクトを宣言/インスタンス化することになったことを知っています(したがって、シングルトンクラスは必要ありません)。次に、子フォームをインスタンス化するたびに、親フォーム オブジェクトまたはバーコードリーダー オブジェクトを参照によって子フォームに渡しました。その後、クラッシュ/ロックアップすることなく、子フォームから繰り返しアクセスできました。かなり漠然とした説明であることは承知していますが、そのコードに取り組んでから数年が経ちました。お役に立てれば。

于 2012-08-06T20:40:22.887 に答える
1

私は何年も前にこの問題を知っていました!. その解決策は次のとおりです。フォーム ナビゲーションを実行するときにバーコード リーダーを無効にしないでください (Keep it always Active )。それは私にとって完璧に機能します(6年前にMC9062を使用し、現在はMC75Aデバイスを使用しています)。スキャンされたデータをさまざまな形式で異なる方法で処理するようにプログラムに指示するロジックを配置するだけです。はい、リーダーオブジェクトを「シングルトン」として使用することが重要です。

于 2012-09-04T03:04:11.837 に答える