README.md
1让OpenharmonyWiFi功能更容易使用
2==========================
3
4使用Openharmony原始WiFI API接口进行编程,整个过程稍显繁琐,为此我们对Openharmony原始WiFi API接口做了一层封装,形成了一套更简单易用的接口。
5
6
7
8## 简化的API接口
9
10### STA模式
11
12```c
13int ConnectToHotspot(WifiDeviceConfig* apConfig);
14
15void DisconnectWithHotspot(int netId);
16```
17
18### AP模式
19
20```c
21int StartHotspot(const HotspotConfig* config);
22
23void StopHotspot(void);
24```
25
26
27
28## 如何编译
29
30本项目下有两个示例代码,源码位于`demo`目录下;
31
321. 将当前项目代码克隆到本地openharmony源码的顶层目录;
33 * 使用命令:`git clone https://gitee.com/hihopeorg/easy_wifi.git`
342. 修改openharmony的`build\lite\product\wifiiot.json`文件:
35 * 将`"//applications/sample/wifi-iot/app"`替换为`"easy_wifi:app"`
363. 执行编译命令:`python build.py wifiiot`
374. 如需编译AP模式的demo,请修改`demo`目录下的BUILD.gn文件;
38 * 注释掉`"wifi_connect_demo.c"`行,放开`"wifi_hotspot_demo.c"`行;
39
40
41
42## OpenharmonySTA模式原始API接口
43
44使用Openharmony原始WiFI API接口进行编程,STA模式需要使用原始STA接口以及一些DHCP客户端接口。
45
46### STA模式
47
48OpenharmonyWiFi STA模式的API接口有:
49
50| API | 功能说明 |
51| ------------------------------------------------------------ | --------------------------------------- |
52| `WifiErrorCode EnableWifi(void);` | 开启STA |
53| `WifiErrorCode DisableWifi(void);` | 关闭STA |
54| `int IsWifiActive(void);` | 查询STA是否已开启 |
55| `WifiErrorCode Scan(void);` | 触发扫描 |
56| `WifiErrorCode GetScanInfoList(WifiScanInfo* result, unsigned int* size);` | 获取扫描结果 |
57| `WifiErrorCode AddDeviceConfig(const WifiDeviceConfig* config, int* result);` | 添加热点配置,成功会通过result传出netId |
58| `WifiErrorCode GetDeviceConfigs(WifiDeviceConfig* result, unsigned int* size);` | 获取本机所有热点配置 |
59| `WifiErrorCode RemoveDevice(int networkId);` | 删除热点配置 |
60| `WifiErrorCode ConnectTo(int networkId);` | 连接到热点 |
61| `WifiErrorCode Disconnect(void);` | 断开热点连接 |
62| `WifiErrorCode GetLinkedInfo(WifiLinkedInfo* result);` | 获取当前连接热点信息 |
63| `WifiErrorCode RegisterWifiEvent(WifiEvent* event);` | 注册事件监听 |
64| `WifiErrorCode UnRegisterWifiEvent(const WifiEvent* event);` | 解除事件监听 |
65| `WifiErrorCode GetDeviceMacAddress(unsigned char* result);` | 获取Mac地址 |
66| `WifiErrorCode AdvanceScan(WifiScanParams *params);` | 高级搜索 |
67
68
69
70#### DHCP 客户端接口
71
72以及DHCP客户端接口:
73
74| API | 描述 |
75| ------------------- | ------------------ |
76| netifapi_netif_find | 按名称查找网络接口 |
77| netifapi_dhcp_start | 启动DHCP客户端 |
78| netifapi_dhcp_stop | 停止DHCP客户端 |
79
80
81
82### AP模式
83
84使用Openharmony原始WiFI API接口进行编程,AP模式需要使用原始AP模式接口以及一些DHCP服务端接口。
85
86OpenharmonyWiFi STA模式的API接口有:
87
88| API | 说明 |
89| ------------------------------------------------------------ | -------------------- |
90| `WifiErrorCode EnableHotspot(void);` | 打开AP模式 |
91| `WifiErrorCode DisableHotspot(void);` | 关闭AP模式 |
92| `WifiErrorCode SetHotspotConfig(const HotspotConfig* config);` | 设置当前热点配置参数 |
93| `WifiErrorCode GetHotspotConfig(HotspotConfig* result);` | 获取当前热点配置参数 |
94| `int IsHotspotActive(void);` | 查询AP是否已开启 |
95| `WifiErrorCode GetStationList(StationInfo* result, unsigned int* size);` | 获取接入的设备列表 |
96| `int GetSignalLevel(int rssi, int band);` | 获取信号强度等级 |
97| `WifiErrorCode SetBand(int band);` | 设置当前频段 |
98| `WifiErrorCode GetBand(int* result);` | 获取当前频段 |
99
100
101
102#### DHCP服务端接口
103
104以及一些DHCP服务端接口:
105
106| API | 描述 |
107| ----------------------- | -------------------------------- |
108| netifapi_netif_set_addr | 设置当前接口的IP、网关、子网掩码 |
109| netifapi_dhcps_start | 启动DHCP服务端 |
110| netifapi_dhcps_stop | 停止DHCP服务端 |