zoukankan      html  css  js  c++  java
  • 【HarmonyOS HiSpark IPC DIY Camera】hi3518wifi的配置与使用

    【编译生成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/libwpa.so", 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 
    

    作者:HiHope

    想了解更多内容,请访问:
    51CTO和华为官方战略合作共建的鸿蒙技术社区
    https://harmonyos.51cto.com#bky

    【免费直播公开课-HarmonyOS2.0源码框架分析】

  • 相关阅读:
    【毒链剖分】
    线段树——从入门到入土
    二分图最大匹配——找老婆问题(确信)
    【AC自动机(有了这个我就能AC了吗)】
    社交距离II
    【扩展KMP(Z函数)(这个区间看着不是很爽)】
    【KMP算法(烤馍片,真香)】
    【最短路系列问题】
    最近公共祖先LCA(我肯定是你的LCA)
    【并查集(又在乱牵线了)】
  • 原文地址:https://www.cnblogs.com/HarmonyOS/p/13998913.html
Copyright © 2011-2022 走看看