HarmonyOS 无线联网开发

小石猛猛冲
发布于 2022-7-23 12:49
浏览
0收藏

@toc

1. WiFi AP热点

1.1 AP热点API介绍

wifi_hotspot.h接口简介:

这个wifi_hotspot|.h中包含声明AP热点相关接口函数。

接口名 功能描述
EnableHotspot 启用AP热点模式
DisableHotspot 禁用AP热点模式
SetHotspotConfig 设置指定的热点配置
GetHotspotConfig 获取指定的热点配置
lsHotspotActive 检查AP热点模式是否启用
GetStationList 获取连接到该热点的一系列STA
GetSignalLevel 获取接收信号强度和频率

1.2 AP热点创建代码解读

打开Visual Studio Code软件。点击文件,打开文件夹,点击映射文件—>home—>bearpi—>code—>打开,在“项目名\applications\BearPi\BearPi-HM_Nano\sample”文件下打开“D1_iot_wifi_ap”工程的wifi_ap.c文件,可在代码中查看实现创建Wifi热点的代码


//注册wifi事件的回调函数
g_wifiEventHandler.OnHotspotStaJoin = OnHotspotstaJoinHandler;
g_wifiEventHandler.OnHotspotStaLeave = OnHotspotStaLeaveHandler;
g_wifiEventHandler.OnHotspotStateChanged = OnHotspotStateChangedHandler;
error = RegisterwifiEvent(&g_wifiEventHandler);
if (error != WIFI_SUCCESS)
{
    printf( "RegisterwifiEvent failed,error = %d . \r\n" , error);
    return -1;
}
//设置指定的热点配置
HotspotConfig config = {0};

strcpy(config.ssid,AP_SSID);
strcpy(config.preSharedKey ,AP_PSK);
config.securityType = WIFI_SEC_TYPE_PSK;
config.band = HOTSPOT_BAND_TYPE_2G;
config.channelNum = 7;

error = SetHotspotConfig(&config);
if (error != WIFI_SUCCESS)
{
    printf( "SetHotspotConfig failed,error = %d .\r\n", error);
    return -1;
}
//启动wifi热点模式
error = EnableHotspot();
if (error != WIFI_SUCCESS)
{
    printf( "EnableHotspot failed,error = %d .\r\n",error);
    return -1;
}
//检查热点模式是否使能
if(IsHotspotActive()== WIFI_HOTSPOT_NOT_ACTIVE)
{
    printf("Wifi station is not actived .\r\n");
    return -1;
}
//等待STA连接
g_apEnableSuccess = 0;
WaitAPResult();

如果代码不太一样的话可以去gitee小熊派开源社区里更新一下代码

打开MobaXterm,输入git pull,更新代码
HarmonyOS 无线联网开发-鸿蒙开发者社区
代码讲解

HarmonyOS 无线联网开发-鸿蒙开发者社区

代码讲解过程见:https://www.bilibili.com/video/BV1tv411b7SA?p=10&share_source=copy_web&vd_source=8f1cf1d7278a65d1271a6ccbd8891dc6 P23

2. WiFi STA联网

2.1 STA联网相关API介绍

wifi_device.h接口简介:

这个wifi_device.h中包含声明STA联网相关接口函数。

接口名 功能描述
EnableWifi 启用Wifi STA模式
DisableWifi 禁用Wifi STA模式
lsWifiActive 检查Wifi STA模式是否启用
Scan 扫描热点信息
GetScanInfoList 获取所有扫描到的热点列表
AddDeviceConfig 配置连接到热点信息
GetDeviceConfigs 获取配置连接到热点信息
RemoveDevice 删除指定的热点配置信息
ConnectTo 接到指定的热点
Disconnect 断开Wifi连接
GetLinkedInfo 获取热点连接信息
GetDeviceMacAddress 获取设备的MAC地址

2.2 STA联网代码解读

打开Visual Studio Code软件。点击文件,打开文件夹,点击映射文件—>home—>bearpi—>code—>打开,在“项目名\applications\BearPi\BearPi-HM_Nano\sample”文件下打开“D2_iot_wifi_sta_connect”工程的wifi_sta_connect.c文件,可在代码中查看实现STA联网业务代码。

    g_wifiEventHandler.OnWifiScanStateChanged = OnWifiScanStateChangedHandler;
    g_wifiEventHandler.OnWifiConnectionchanged = OnWifiConnectionChangedHandler;
    error = RegisterWifiEvent(&g_wifiEventHandler);
    if (error != WIFI_SUCCESS)
    {
        printf( "register wifi event fail!lr\n");}
    else
    {
        printf( "register wifi event succeed ! !rin");
    }
    //使能WIFI
    if (EnableWifi() != WIFI_SUCCESS)
    {
        printf("EnableWifi failed, error = %d\n", error);
        return -1;
    }

    //判断WIFI是否激活
    if (IsWifiActive() == 0)
    {
        printf("Wifi station is not actived.\n");
        return -1;
    }

    //分配空间,保存WiFi信息
    info = malloc(sizeof(WifiScanInfo) * WIFI_SCAN_HOTSPOT_LIMIT);
    if (info == NULL)
    {
        return -1;
    }

    //轮询查找WiFi列表
    do{
        //重置标志位
        ssid_count = 0;
        g_staScanSuccess = 0;

        //开始扫描
        Scan();

        //等待扫描结果
        WaitSacnResult();

        //获取扫描列表
        error = GetScanInfoList(info, &size);

    }while(g_staScanSuccess != 1);


代码讲解

HarmonyOS 无线联网开发-鸿蒙开发者社区

HarmonyOS 无线联网开发-鸿蒙开发者社区

HarmonyOS 无线联网开发-鸿蒙开发者社区

HarmonyOS 无线联网开发-鸿蒙开发者社区

HarmonyOS 无线联网开发-鸿蒙开发者社区

HarmonyOS 无线联网开发-鸿蒙开发者社区

HarmonyOS 无线联网开发-鸿蒙开发者社区

HarmonyOS 无线联网开发-鸿蒙开发者社区

代码讲解过程见:https://www.bilibili.com/video/BV1tv411b7SA?p=10&share_source=copy_web&vd_source=8f1cf1d7278a65d1271a6ccbd8891dc6 P24

已于2022-11-23 20:54:09修改
4
收藏
回复
举报
回复
    相关推荐