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