小熊派学习(六)-无线联网开发

Sherry辛巳
发布于 2022-7-27 20:49
浏览
1收藏

1.WiFi AP热点

1.AP热点API介绍
wifi_hotspot.h接口简介:
这个wifi_hotspot.h中包含声明AP热点相关接口函数。
接口名 功能描述
EnableHotspot 启用AP热点模式
DisableHotspot 禁用AP热点模式
SetHotspotConfig 设置指定的热点配置
GetHotspotConfig 获取指定的热点配置
IsHotspotActive 检查AP热点模式是否启用
GetStationList 获取连接到该热点的一系列STA
GetSignalLevel 获取接收信号强度和频
2.AP热点创建代码解读
小熊派学习(六)-无线联网开发-鸿蒙开发者社区

//注册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();

2.WiFi STA联网

1.STA联网相关API
wifi_device.h接口简介:
这个wifi_device.h中包含声明STA联网相关接口函数。
接口名 功能描述
EnableWifi 启用Wifi STA 模式
DisableWifi 禁用Wifi STA 模式
IsWifiActive 检查Wifi STA模式是否启用
Scan 扫描热点信息
GetScanInfoList 获取所有扫描到的热点列表
AddDeviceConfig 配置连接到热点信息
GetDeviceConfigs 获取配置连接到热点信息
RemoveDevice 删除指定的热点配置信息
ConnectTo 接到指定的热点
Disconnect 断开Wifi连接
GetLinkedInfo 获取热点连接信息
GetDeviceMacAddress 获取设备的MAC地址
2.STA联网代码解读!
H5QLVINYWT~KO9VDICHRI.png

g_wifiEventHandler.OnWifiScanStateChanged = OnWifiScanStateChangedHandler;
g_wifiEventHandler.OnWifiConnectionChanged = OnWifiConnectionChangedHandler;
error = RegisterWifiEvent(&g_wifiEventHandler);
if (error != WIFI_SUCCESS)
{
printf("register wifi event fail!\r\n");
}
else
{
printf("register wifi event succeed!\r\n");
}
//使能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();
//获取扫描列表
GetScanInfoList(info, &size);
}while(g_staScanSuccess != 1);

标签
2
收藏 1
回复
举报
回复
    相关推荐