wln.associate на WA2000

WA2000 может подключаться только к точкам доступа (сетям инфраструктуры) и не может подключаться к другим беспроводным устройствам (станциям), держащим сети ad hoc.

Перед ассоциацией потребуется задать защиту WEP или WPA (если она нужна).

Метод wln.associate будет отклонён (вернёт 1 - REJECTED), если:

Как и с GA1000, подключиться к беспроводной сети можно, указав точные параметры этой сети:

  • SSID (имя) этой сети
  • BSSID (MAC-адрес) этой сети
  • Канал, на котором работает сеть

Обычно SSID известен, а вот BSSID, канал и режим BSS придётся поискать. Проще всего выяснить правильные значения этих параметров через сканирование. Методы wln.scan или wln.activescan заполнят правильными данными свойства wln.scanresultbssid и wln.scanresultchannel (только чтение). В примере ниже показано, как их с пользой применить.

После завершения задачи ассоциации нужно проверить её результат. Это можно сделать через свойство wln.associationstate.

'connect to the access point named TIBBO.
wln.scan("TIBBO") 'scanning for a specific network will give us necessary parameters (you can also use wln.activescan)
While wln.task<>PL_WLN_TASK_IDLE
Wend
If wln.scanresultssid<>"" Then
   'wireless network not found
End If
'now can associate: 'wln.scanresult...' properties contain necessary data after the scanning
wln.associate(wln.scanresultbssid, wln.scanresultssid, wln.scanresultchannel, PL_WLN_BSS_MODE_ADHOC)
While wln.task<>PL_WLN_TASK_IDLE
Wend
If wln.associationstate=PL_WLN_ASSOCIATED Then
   'successful association!
   ...
End If

В отличие от GA1000, WA2000 предлагает также «универсальную» ассоциацию: вместо всех параметров укажите только SSID (имя) целевой сети. Установите аргумент bssid в "" или "0.0.0.0.0.0" - модуль подключится к любой точке доступа с совпадающим именем. Чтобы WA2000 мог подключаться на любом канале, установите канал в 0. Так приложение обходится без сканирования сетевых параметров целевой сети и сразу переходит к ассоциации:

...
wln.associate("","Tibbo1",0,PL_WLN_BSS_MODE_INFRASTRUCTURE)
...

Что произойдёт, если использовать такую «универсальную» ассоциацию, когда в зоне досягаемости устройства несколько точек доступа с одинаковым SSID? WA2000 автоматически выберет ту, у которой самый сильный сигнал!

У WA2000 есть и другое преимущество перед GA1000: он полностью самостоятельно обрабатывает защиту WPA и WPA2 и не требует помощи со стороны приложения, как GA1000. Когда WPA или WPA2 включены, WA2000 выполняет необходимое «квитирование WPA» (WPA handshake) сразу после подключения к точке доступа. Если оно завершится неудачей, приложение быстро получит событие on_wln_event(PL_WLN_EVENT_DISASSOCIATED).

Исходный материал Tibbo обновлён 17 августа 2022Оригинал на docs.tibbo.com · Сообщить об ошибке