• Home
Name Date Size #Lines LOC

..--

demo/12-May-2024-185121

src/12-May-2024-336215

BUILD.gnD12-May-2024748 2219

LICENSED12-May-2024622 1615

README.mdD12-May-20245.1 KiB11072

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服务端                   |