PPC上如何实现无线路由器的自动切换

hqfcsw 2007-03-02 10:47:00
根据无线路由器信号强弱 自动切换到信号强的无线路由器。
小弟是菜鸟,只懂得MFC和socket方面的简单知识,对于无线更是没有研究过,
请教要 实现这一个功能 需要哪些方面的知识?
各位大虾 能不能给点建议?
...全文
299 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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
  • 打赏
  • 举报
回复
这个还真么接触过,帮顶。
智能手机使用教程全文共5页,当前为第1页。智能手机使用教程全文共5页,当前为第1页。智能手机使用教程 智能手机使用教程全文共5页,当前为第1页。 智能手机使用教程全文共5页,当前为第1页。 智能手机,是指像 个人电脑一样,具有 独立的 操作系统,独立的运行空间,可以由用户自行 安装 软件、 游戏、 导航等第三方服务商提供的 程序,并可以通过移动通讯网络来实现无线网络接入手机类型的总称。以下是有店铺为大家整理的智能手机使用教程,希望能帮到你。 智能手机使用教程 1、如何将Micro SD(TF)卡上的Mp3文件设置为铃声? 在Micro SD卡的根目录下建立My Documents文件夹,将Mp3放到里面,在铃声下面就可以找到了,不过,PPC系统也可以通过安装第三方软件,实现任意文件夹的铃声,和自定义铃声等,比如来电通和来电精灵等 2、如何设置短消息铃声? "开始"——"设置"——"声音和提醒"——"通知"选项卡——在"事件"里选择"信息:新短信"——在"播放铃声"中选择你需要的短消息铃声(如需将Micro SD卡中的音效作为铃声,需和MP3铃声设置方法一样,要放在My Documents文件夹下,系统才能找到(必须要在信息铃声设置中把新邮件和新短信这两项都设置了提示音才行~~~) 3、如何安装主题? 将Tsk为扩展名的文件(即主题文件),放在Windows根目录下,或者My Documents文件夹下即可(主内存的My Documents文件夹下,Micro SD卡上好像不行,识别不到)! 4、如何将从蓝牙接收到的文件直接存放在Micro SD(TF)卡上? "开始"——"设置"——"连接"——"蓝牙"——"FTP"选项卡,然后将共享目录设置在存储卡上,发过来的文件就会存储在TF卡上 5、Touch Flo界面应用 Touch Flo界面在桌面上从最低下的中间部分向上一滑,就会呼出智能手机使用教程全文共5页,当前为第2页。智能手机使用教程全文共5页,当前为第2页。3D界面,呼出后左右滑动,可以实现翻页,在Touch Flo界面上从上到下一滑可关闭Touch Flo界面 智能手机使用教程全文共5页,当前为第2页。 智能手机使用教程全文共5页,当前为第2页。 6、ActivcSyne 4.5 中文版同步软件 用于手机与电脑连接必装软件(随机光盘中有附送,Windows Vista下不需要装亦可驱动手机,Windows XP下必装) 7、什么是WiFi? WIFI是一种无线上网方式,它可以通过与配备无线网卡的笔记本相连,或者与无线路由器相连来达到连入互联网的目的,也可以通过分布在城市中的"热点"进行互联网接入,不过对于中国来说无线"热点"的分布现在并不是很广 现在只有水货配备了WIFI模块,行货无法实现,水货通过安装WIFI补丁能够实现 8、如何恢复出厂设置? "开始"——"设置"——"系统"——"清除内存"——然后输入:1234 (PS:恢复出厂设置会完全删除个人主内存资料,恢复前最好备份重要资料,并保证右足够的电量完成硬启) 9、关于S1本机的闹钟 本机闹钟不支持关机闹钟,并且闹钟铃声必须为WAV格式,需将WAV格式的文件放在Windows目录下在列表中才能找到,但我们可以通过安装第三方软件,实现MP3闹钟,分组闹钟,自定义闹钟铃声等,比如:enAlarmPPC闹钟软件就是其中之一,安装此类软件,由于是随机启动的,所以,推荐安装在手机内存中 10、将图片设为背景后不会出现白雾效果的方法 用"程序"里面的"图片和视频"将你要设为背景的图片打开,然后"菜单"——"设为今日背景",就会出来"透明级别的设置",在这里透明级别设为0%,就不会出现白的一层了,另外,推荐Resco.Picture.Viewer等图片软件,效果比自带的要强得多 11、硬启动方法(仅针对S1,其它手机不一定相同) 按住 接听 和 挂断 和 电源 键后,点Reset,会出现硬启的英文界智能手机使用教程全文共5页,当前为第3页。智能手机使用教程全文共5页,当前为第3页。面,按确认键(导航键)执行硬启动,按其他键取消硬启动,它的效果和恢复出厂设置是一样的 智能手机使用教程全文共5页,当前为第3页。 智能手机使用教程全文共5页,当前为第3页。 12、校正屏幕准心方法 "开始"——"设置"——"系统"——"屏幕"——"调整屏幕",然后,根据屏幕显示的十字架,清晰而有力的点下,就可重新校正屏幕了 13、最便捷的横屏和竖屏的切换方法 S1本身提供了一个"dopodHome"插件,就是桌面最下面会有一行图标,第一个是电量(显示为一个具有四格的电池)第二个是横屏和竖屏的调整(显示为一个手机上面有一支手写笔),第三个为通讯,第四个为内存,你点第二个图标就可以实现点击一下就会变横屏,

19,519

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧