4

理想的には、ワイヤレスネットワークの信号強度をほぼリアルタイムで、たとえば100ミリ秒ごとに監視したいのですが、このような高い周波数はおそらくやり過ぎです。

マネージドWifiライブラリを使用してRSSIをポーリングしています。私は一度インスタンス化し、WlanClient client = new WlanClient();それを再利用しclientて1秒ごとに信号強度を測定します(ただし、もっと頻繁に実行したいと思います)。

foreach (WlanClient.WlanInterface wlanInterface in _client.Interfaces)
{
    Wlan.WlanBssEntry[] wlanBssEntries = wlanInterface.GetNetworkBssList();
    foreach (Wlan.WlanBssEntry wlanBssEntry in wlanBssEntries)
    {
        int sigStr = wlanBssEntry.rssi; // signal strength in dBm
        // ...
    }
}

最速の実用的なポーリング遅延は何ですか?これは信号強度を測定するための最良の方法ですか?

4

2 に答える 2

1

最小のポーリング遅延はドライバー スタックによって異なると思いますが、アクセス ポイントの数によっても異なると思います。WiFi はタイムスロットに基づくプロトコルです。

私の (限られた) 経験から、1 秒間隔が適切です。ステーションのリストが常に完全であるとは限らないことが既にわかります (つまり、1 回のスキャンで欠落しているステーションが次のスキャンで戻ってきます)。

これは信号強度を測定する最良の方法ですか?

状況によりますが、どれくらいの速さで変わると思いますか? 歩き回っているとき、信号は 1 秒間あまり変化しません。

于 2010-10-04T13:14:17.793 に答える
0

何かを監視したい場合のほとんどの場合、合理的なガイドラインは、目的を達成するのに可能な限り少ないものを見つけ出し、それを少し超えて頻度を増やして、遅延や予期しないスパイクをキャッチすることです。

たとえば、これをユーザーに表示する場合、0.5 秒に 1 回を超えると、変化が速すぎてユーザーが意味を理解できないことを意味するため、約 4 分の 1 秒で十分です。必要なものをすべてキャッチしていることを確認してください。

ログを記録している場合は、ログ期間の長さによって異なります。数分に 1 回は、重大な問題を検出する可能性が高いため、1 分に 1 回で十分です。

全体として、多くの場合、実用的な最大周波数がいくつかありますが、最大の有用な周波数がより高くない限り、考慮する価値はありません。それは目的によって異なります。

于 2010-10-04T13:08:29.223 に答える