2009-08-13 11 views
0

私はWindows 6.0を実行しているハンドヘルドスキャンデバイスを持っています。人が建物に出入りする際に、屋外の固定位置でバーコードをスキャンするのはハンドヘルドの責任です。このアプリケーションの主な関心事は、できるだけ早く人を出入りさせることです。モバイルアプリから弱い無線信号を処理する最善の方法は何ですか?

今、ハンドヘルドは、厚いコンクリートの壁の後ろにある別の建物のコンピュータと通信しています。それは、ソケットに接続し、バーコード情報を送信し、それに応答して小さなxmlファイルを受信することだけです。

強いシグナルが得られないアプリケーションを処理するにはどうすればよいと思いますか?私は、OSに警告と可能な切断を処理させるべきですか?または、アプリケーションが監視して、定義された期間、信号の強さが1バールに低下した場合、シャットダウンする必要がありますか?

OSにすべての処理をさせる問題は、ユーザーに低い信号強度の警告が有効になっているかどうかわかりません。さらに、弱い信号で、ユーザーが引き続きアプリケーションを使用すると、キューの速度が大幅に低下します。

私は自分でシャットダウンしても、アプリケーションの使用をやめて手動の方法に切り替える必要がありますが、弱い信号が異常であった場合は欠点があります。今私は数分おきに再接続して、それがまだ動作するかどうかを確認する責任をユーザに抱きしめました。 (接続が失われると、自動的に復元することはできません。ユーザー入力が必要です)。

これは私がハンドヘルドデバイス用に作った最初のアプリケーションなので、このような問題に対する標準的なアプローチは何か分かりません。何かアドバイス?

答えて

2

考慮すべき点の1つは、ワイヤレスルーターの優れたアンテナです(Googleは多くのオプションを選択します)。一部のデバイスは、ネイティブまたはハードウェアのハッキングを介して外部アンテナを受け入れることもできます。

ソフトウェア側では、信号強度が弱いことを示すステータス領域に警告を表示し、より良い信号強度に達するまで手動の方法を提案することを検討してください。私は確かにどのように進めるかを決めるためにそれをユーザーに任せます。エンドユーザーには、ユーザーよりも賢明にしようとするソフトウェアよりも、より多くのことを刺激するものはほとんどありません。

+0

PS - 私は日曜日にFry'sに運転したくないが、私は家のルータから遠い部屋では1〜2小節から4小節に至るまで非常に成功したDYI信号ブースターを作った。http:// www .binarywolf.com/249/diy-parabolic-reflector.htm –

+0

ネットワーキングについてはあまりよく分かりませんが、アンテナやルータについて質問したくない場合は、ここで質問したいと思います。以前はワイヤレスルータとアンテナを使用していましたが、弱い信号や干渉のために信号が低下し続けました。ネットワーク全体を実際に設定して試してみる以外に、自分のアプリケーションがハードウェア上でどの程度信頼できるものであるかをテストする唯一の方法はありますか? – Brandon

+1

あなたがそこにいるまであなたのアプリケーションがどのようにあなたのアプリケーションを動作させるか分からないでしょうが、ルータのアンテナを遮蔽してさまざまなレベルの低信号を生成することで、アプリケーションの動作を低信号強度でテストできます。アンテナ上の錫缶(例えばコーヒー缶)は、信号を止めるために遠くに行く。 –

0

結果は何ですか?

もしそうでなければ、スキャンされたバーコードを何らかの種類のキューに追加すれば、キューが別のスレッドで処理されている間にすぐに次のスキャンを行うことができます。

+0

はい、結果は基本的に、現在建物内にいる人の数と、その人が許可されているかどうかのカウントです。したがって、応答が受信されるまで回線は保留されます。 – Brandon

+0

どのようにコンピュータと通信していますか? Webサービスですか? – Oll

+0

ソケットを開くだけでハンドヘルドが直接接続します。私はその名前が何であるか分かりません。ネットワーキングは私の強みではない。 – Brandon

0

良いアプローチは、接続にハートビートアルゴリズムを使用することができます。 ソケットを使用してサーバーに「ping」を送信し、「pong」を待つだけです。

プロダクション環境では、接続が失われたときやアプリケーションに悪いときに、正確な検出を行うようにpingタイムアウトを調整できます。

関連する問題