社区
嵌入开发(WinCE)
帖子详情
PPC上如何实现无线路由器的自动切换
hqfcsw
2007-03-02 10:47:00
根据无线路由器信号强弱 自动切换到信号强的无线路由器。
小弟是菜鸟,只懂得MFC和socket方面的简单知识,对于无线更是没有研究过,
请教要 实现这一个功能 需要哪些方面的知识?
各位大虾 能不能给点建议?
...全文
291
6
打赏
收藏
PPC上如何实现无线路由器的自动切换
根据无线路由器信号强弱 自动切换到信号强的无线路由器。 小弟是菜鸟,只懂得MFC和socket方面的简单知识,对于无线更是没有研究过, 请教要 实现这一个功能 需要哪些方面的知识? 各位大虾 能不能给点建议?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suwyhoho
2009-11-18
打赏
举报
回复
LZ说的是无线漫游功能吧
大概的思路就是先设一个门限,这个门限可以是信号强度也可以是别的参数比如beacon,低于这个门限的时候开始搜索周围符合条件(SSID或MAC)的AP,找到了就切过去
功能实现比较简单,在驱动或是应用层都可以做,应用层CE下的话微软给了一些API比如WZCXXX或者用NDIS的ioctl都可以实现,驱动的话就要看看模块商给的代码了
问题在于大多数消费级的WIFI模块在搜索AP的时候会造成通信中断(因为Channel换了),如果模块不支持,又不能改firmware的话,这个问题就比较难解决
LZ如果要做的话,改改驱动吧,微软给的那些API在重新连接时会切断连接的,而且响应速度比较慢
zhujinqiang
2009-11-17
打赏
举报
回复
关注。
91program
2009-11-17
打赏
举报
回复
思路应该是:枚举所有有效网络,得到各个网络的信号进行比较。
枚举网络是可能做到的,有API支持。但是如何得到各个网络的信号强度,不清楚。
jimmy54
2009-11-17
打赏
举报
回复
void WifiOn()
{
DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D0, POWER_NAME);
SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D0);
}
void WifiOff()
{
DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D4, POWER_NAME);
SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D4);
}
//实现部分的电源功能
#include "pwrmgr.h"
typedef DWORD (__stdcall *DevicePowerNotifyProc)(PVOID,CEDEVICE_POWER_STATE,DWORD);
typedef DWORD (__stdcall *SetDevicePowerProc)(PVOID,DWORD,CEDEVICE_POWER_STATE);
DWORD DevicePowerNotify(PVOID pvDevice,CEDEVICE_POWER_STATE DeviceState,DWORD Flags)
{
HINSTANCE hCoreDll = LoadLibrary(_T("coredll.dll"));
DevicePowerNotifyProc procSet =
(DevicePowerNotifyProc)GetProcAddress(hCoreDll, _T("DevicePowerNotify"));
DWORD dwResult = procSet(pvDevice,DeviceState,Flags);
::FreeLibrary(hCoreDll);
return dwResult;
}
DWORD SetDevicePower(PVOID pvDevice,DWORD dwDeviceFlags,CEDEVICE_POWER_STATE dwState)
{
HINSTANCE hCoreDll = LoadLibrary(_T("coredll.dll"));
SetDevicePowerProc procSet =
(SetDevicePowerProc)GetProcAddress(hCoreDll, _T("SetDevicePower"));
DWORD dwResult = procSet(pvDevice,dwDeviceFlags,dwState);
::FreeLibrary(hCoreDll);
return dwResult;
}
加分给源码。。。。。。。。。。。
ruritanian
2009-11-17
打赏
举报
回复
你是做应用还是驱动的?
如果是做应用的话,你只需要用conneection manager API建立无线网络连接就可以了,无线网络的信号切换是由驱动做的事情,应用程序不需要也不应该管的。
GARY
2009-10-20
打赏
举报
回复
这个还真么接触过,帮顶。
智能手机使用教程.docx
或者与
无线路由器
相连来达到连入互联网的目的,也可以通过分布在城市中的"热点"进行互联网接入,不过对于中国来说无线"热点"的分布现在并不是很广 现在只有水货配备了WIFI模块,行货无法
实现
,水货通过安装WIFI补丁...
智能手机使用教程(1).docx
或者与
无线路由器
相连来达到连入互联网的目的,也可以通过分布在城市中的"热点"进行互联网接入,不过对于中国来说无线"热点"的分布现在并不是很广 现在只有水货配备了WIFI模块,行货无法
实现
,水货通过安装WIFI补丁...
linux简介
Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来...
网络冗余保护技术的研究与
实现
本文利用集群技术一一虚拟路由冗余协议(virtualRouterRedundaneyprotoeol,简称VRRP)来
实现
网关的高可用性,使得在一台网关设备宕机时,另外一个备份网关会及时接管转发工作,不会造成互联网业务中断,提高了网络服务质量...
openwrt 基础知识
penWrt是一个高度模块化、高度
自动
化的嵌入式Linux系统,拥有强大的网络组件,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。OpenWrt支持各种处理器架构,无论是对ARM,X86,Power
PC
或者...
嵌入开发(WinCE)
19,500
社区成员
41,567
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章