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,更新代码
代码讲解
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);
代码讲解
标签
已于2022-11-23 20:54:09修改
赞
4
收藏
回复
回复
相关推荐