AP는 사용하고 있는 채널을 통해서 SSID를 포함한 자신에 대한 기초적인 정보를 주기적으로 방송(Broadcast)하면서 자신의 존재를 알리고 있다.
WIFI Station은 일정 알고리즘으로 모든 WIFI 채널을 검사하면서 방송하고 있는 AP들의 존재를 확인할 수 있는 데 이런 동작을 Scanning 이라고 한다.
1.WIFI scan 데모 구현내용
프로젝트 위치 | demos/wifi/scan |
선언 및 정의 |
#include “mxos.h”
#define app_log(M, …) MXOS_LOG(CONFIG_APP_DEBUG, “APP”, M, ##__VA_ARGS__)
static void wifi_scan_notify(int num, mwifi_ap_info_t *ap_list);
main |
♦ 네트워크를 초기화 하고, user 함수가 시스템 notification(event)메시지를 받을 수 있도록 등록한다. ♦ scan 동작을 실행한다. |
int main(void)
{
/* Initialize network(Wi-Fi, TCP/IP) */
mxos_network_init();
/* Register Wi-Fi scan notification */
mxos_system_notify_register(mxos_notify_WIFI_SCAN_COMPLETED, wifi_scan_notify, NULL);
app_log(“Start scan, please wait…”);
/* Scan now! */
mwifi_scan(NULL);
return 0;
}
wifi_scan_notify |
시스템으로 부터 전달 받은 scan 결과를 DBG 시리얼 포트로 로그메시지를 출력 |
static void wifi_scan_notify(int num, mwifi_ap_info_t *ap_list)
{
int i = 0;
app_log(“AP number: %d”, num);
for (i = 0; i < num; i++)
{
app_log(“AP%d: SSID=%s, RSSI=%ddBm”, i, ap_list[i].ssid, ap_list[i].rssi);
}
}
2. WIFI Scan 데모 동작확인
데모를 컴파일 하고 실행파일을 flash에 다운로드 → mxos make wifi.scan@emw3080 download jtag=jlink
♦ wifi station이 주변의 AP를 scan한 결과를 아래와 같이 DBG 시리얼포트를 통해 확인할 수 있다.
3. 추가시험 → WIFI statin 데모+Scan 데모+DBG포트로 SSID, PW 입력