Можно ли сбросить интервал обновления мощности сигнала в Windows Native Wifi? - PullRequest
0 голосов
/ 09 сентября 2010

Я пишу библиотеку классов .Net, которая должна подключаться к определенной сети Wi-Fi, имя которой известно заранее, когда уровень сигнала превышает определенный порог.

Все это прекрасно работает, КРОМЕ этогоPeformance немного пятнистый.У меня есть поток опроса, который неоднократно вызывает WlanGetAvailableNetworks ().Этот цикл работает хорошо - WLanGetAvailableNetworks () обычно занимает всего 10-20 мс.ОДНАКО, атрибут мощности сигнала в структуре WLAN_AVAILALBLE_NETWORK, по-видимому, занимает много времени для обновления.Я видел, как требуется 100 секунд, чтобы зарегистрировать обновленное значение при перемещении в область с известным уровнем сигнала.

Я нашел загадочные ссылки на интервал обновления, включая этот, от парнякто реализовал порождатель NETSH: http://www.codeproject.com/KB/gadgets/WifiScanner.aspx?msg=3031431

Но я не нашел никого, кто бы мог ответить на этот конкретный вопрос: можно ли настроить интервал обновления мощности сигнала и других параметров сети в API Native Wifi?

Или я упускаю другую полезную концепцию?(Я полный нуб, относительно Wifi).

Возможно, важная информация об окружающей среде: - .Net 3.5 - исправление XP плюс KB для WlanApi - C # / VS 2008 (доступны версии 4.0 и VS2010)

thanks --
Carl

1 Ответ

2 голосов
/ 10 сентября 2010

К сожалению. Я пропустил это в документации WLANAPI: WlanScan ()! Вызовите это перед WlanGetAvailableNetworks (), чтобы WlanGetAvailableNetworks () вернул более или менее актуальную информацию. По документу (http://msdn.microsoft.com/en-us/library/ms706783(VS.85).aspx), WlanScan () немедленно завершает работу и запускает асинхронное сканирование.

Эмпирически, кажется, что следующее WlanGetAvailableNetworks () останавливается до завершения сканирования (3,085 секунды, +/- 0,031 секунды, в моем тестировании). Таким образом, как показывает документ, вы не хотите делать это где-нибудь, что снизит производительность. Кроме того, три секунды, вероятно, являются наилучшим временным разрешением для проверки сигналов Wi-Fi, по крайней мере, в XP (Vista и 7 версий WLANAPI поддерживают единую сеть WlanScan (), которая может завершаться быстрее).

Проблема решена, более или менее.

...