1# WLAN服务组件
2
3## 简介
4WLAN服务组件为设备提供接入与使用WLAN的相关接口,包括开启、关闭WLAN,监听WLAN状态等。
5
6## 目录
7
8```
9foundation/communication/wifi_lite
10├── interfaces         # 组件对外提供接口代码存放目录
11│   └── wifiservice    # WLAN服务接口代码存放目录
12├── LICENSE            # 版权声明文件
13
14```
15
16## 约束
17WLAN服务组件使用C语言编写,目前支持wifi-iot开发板。
18
19## 使用
20- 设备需要完成以下开发步骤,以开启WLAN:
21
22    ```
23    //开启WLAN
24    WifiErrorCode error = EnableWifi();
25    if (error != WIFI_SUCCESS) {
26        return;
27    }
28    ```
29
30- 设备需要完成以下开发步骤,以触发WLAN扫描:
31
32    ```
33    //开启WLAN
34    WifiErrorCode error = Scan();
35    if (error != WIFI_SUCCESS) {
36        return;
37    }
38    ```
39
40- 设备需要完成以下开发步骤,以获取WLAN扫描结果:
41
42    ```
43    WifiScanInfo* infoList = malloc(sizeof(WifiScanInfo) * WIFI_SCAN_HOTSPOT_LIMIT);
44    unsigned int size = WIFI_SCAN_HOTSPOT_LIMIT;
45    error = GetScanInfoList(infoList, &size);
46    if (error != WIFI_SUCCESS || size == 0) {
47        return;
48    }
49    ```
50
51- 设备需要完成以下开发步骤,以配置接入点的接入方式:
52
53    ```
54    int netId = 0;
55    WifiDeviceConfig config = {0};
56    config.freq = 20;
57    config.securityType = WIFI_SEC_TYPE_PSK;
58    config.wapiPskType = WIFI_PSK_TYPE_ASCII;
59    memcpy_s(config.ssid, WIFI_MAX_SSID_LEN, "Sample", 10); //在这里输入待连接WLAN的名称
60    unsigned char bssid[WIFI_MAC_LEN] = {0xac, 0x75, 0x1d, 0xd8, 0x55, 0xc1}; //在这里输入待连接WLAN的BSSID
61    memcpy_s(config.bssid, WIFI_MAC_LEN, bssid, WIFI_MAC_LEN);
62    memcpy_s(config.preSharedKey, WIFI_MAX_KEY_LEN, "1234567890", 10); //在这里输入待连接WLAN的口令
63    WifiErrorCode error = AddDeviceConfig(&config, &netId);
64    if (error != WIFI_SUCCESS || netId == 0) {
65        return;
66    }
67    ```
68
69- 设备需要完成以下开发步骤,以连接配置的WLAN:
70
71    ```
72    error = ConnectTo(netId);  //netId来自上一步
73    if (error != WIFI_SUCCESS) {
74        return;
75    }
76    ```