​想了解更多内容,请访问:​

​51CTO和华为官方战略合作共建的鸿蒙技术社区​

​https://harmonyos.51cto.com/#bkwz​

【编译生成wifi可执行文件】 请参考以下示例代码编译可执行程序wpa_supplicant:

#include <dlfcn.h>

#include <pthread.h>

#include <stdio.h>

#include <string.h>


pthread_t g_wpaThread;


char* g_wpaArg[20] = {0};

int g_wpaArgc = 0;


static void* ThreadMain()

{

    printf("[WpaSample]init wpa_supplicant.\n");


    void *handleLibWpa = dlopen("/usr/lib/", RTLD_NOW | RTLD_LOCAL);

    if (handleLibWpa == NULL) {

        printf("[WpaSample]dlopen libwpa failed.\n");

        return NULL;

    }

    int (*func)(int, char **) = NULL;

    func =  dlsym(handleLibWpa, "wpa_main");

    if (func == NULL) {

        dlclose(handleLibWpa);

        printf("[WpaSample]dlsym wpa_main failed.\n");

        return NULL;

    }

    int ret = func(g_wpaArgc, g_wpaArg);


    printf("[WpaSample]run wpa_main failed, ret:%d.\n", ret);

    for (int i = 0; i < g_wpaArgc; i++) {

        printf("[WpaSample]arg %d:%s.\n", i, g_wpaArg[i]);

    }


    if (dlclose(handleLibWpa) != 0) {

        printf("[WpaSample]dlclose libwpa failed.\n");

        return NULL;

    }

    return NULL;


}


int main(int argc, char *argv[])

{

    g_wpaArgc = argc;

    for (int i = 0; i < g_wpaArgc; i++) {

        g_wpaArg[i] = argv[i];

    }


    int ret = pthread_create(&g_wpaThread, NULL, ThreadMain, NULL);

    if (ret != 0) {

        printf("[WpaSample]create thread failed error:%s.\n", strerror(ret));

        return 1;

    }

    pthread_join(g_wpaThread, NULL);

    return 0;


}


【修改station模式的配置】 将以下配置写到配置文件wpa_supplicant.conf

country=GB

ctrl_interface=udp

network={

    #要连接的SSID

    ssid="example"

    #如果不需要加密就写key_mgmt=NONE

    #key_mgmt=NONE

    #如果需要加密就写这行密码

    psk="12345678"

}


【修改ap模式的配置】 将以下配置写到配置文件hostapd.conf

interface=wlan0

driver=hdf wifi

ctrl_interface=udp

ssid=testap

hw_mode=g

channel=1

ignore_broadcast_ssid=0

#下面是wpa2-psk类型加密的配置

#如果不需要加密可以删除

auth_algs=1

wpa=2

wpa_passphrase=12345678

rsn_pairwise=CCMP

【使用方法】

将wpa_supplicant、wpa_supplicant.conf、hostapd.conf拷贝到单板中(sdcard目录)

启动sta的命令:

./sdcard/wpa_supplicant -i wlan0 -c /sdcard/wpa_supplicant.conf


启动ap的命令:

./sdcard/hostapd -i wlan0 /sdcard/hostapd.conf


【WIFI设备检测】 进入OHOS界面后,输入ifconfig,检查wlan0网口是否加载正常,加载成功标识如下:

OHOS # ifconfig                                                                 wlan0   ip:0.0.0.0 netmask:0.0.0.0 gateway:0.0.0.0                                      HWaddr 0a:11:31:aa:7e:1a MTU:1500 Stop Link UP                          lo      ip:127.0.0.1 netmask:255.0.0.0 gateway:127.0.0.1                                ip6: ::1/64                                                                     HWaddr 00 MTU:16436 Running Link UP

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

​https://harmonyos.51cto.com/#bkwz​


【HarmonyOS HiSpark IPC DIY Camera】hi3518-wifi配置与使用_Hispark开发套件