《基于TCP_IP协议的PDA和主机之间的无线通信.pdf》由会员分享,可在线阅读,更多相关《基于TCP_IP协议的PDA和主机之间的无线通信.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1612009 年第 01 期,第 42 卷 通 信 技 术 Vol.42,No.01,2009 总第 205 期 Communications Technology No.205,Totally 基于 TCP/IP 协议的 PDA 和主机之间的无线通信 李 萍,解国栋,杨建昌,董小刚 (装甲兵工程学院 控制工程系光电室,北京 100072)【摘 要】【摘 要】为及时、方便对远程装备的性能进行测试,基于 TCP/IP 协议,利用 C#.NET 开发了 PDA 和主机之间的无线通信软件。该软件已与其它相关软件一起应用于装甲装备的检测线测试系统中,效果良好。文中介绍了 PDA 和主机间进行无线通
2、信的硬件需求和软件开发过程,其中特别强调了该无线通信的硬件构成、配置步骤、注意事项和用 C#.NET 开发 PDA 的一些技术难点。希望能给从事相关研究的同仁一点启发。【关键词】【关键词】TCP/IP 协议;无线通信;PDA;C#.NET 语言 【中图分类号】【中图分类号】TP311.52 【文献标识码】【文献标识码】A 【文章编号】【文章编号】1002-0802(2009)01-0161-02 Wireless Communication Between PDA and Host Computer Based on TCP/IP Protocol Wireless Communication
3、 Between PDA and Host Computer Based on TCP/IP Protocol LI Ping,XIE Guo-dong,YANG Jian-chang,TONG Xiao-gang(Dep.Of Control and Engineering,Academy of Armored Force Engineering,PLA,Beijing 100072,China)【Abstract】【Abstract】Based on TCP/IP protocol,the wireless communication software between PDA and ho
4、st computer is developed by using C#.NET language,thus to test the performances of remote equipments timely and coveniently.This software has been applied in line measure systems of the armored equipments with other related softwares,and good effects have been thus obtained.The article tells of the
5、hardware requirements and software development processes for wireless communication between PDA and host computer.It particularly lays stresses on hardware structures,configuration approaches and attentive items of wireless communication,including some technical difficulties in using C#.NET language
6、 to develop PDA.By all above the authors attempt to provide some suggestions for the related research personnel.【Key words】【Key words】TCP/IP protocol;wireless communication;PDA;C#.NET language 0 引言 在对装备性能实施远程检测及评估时,为能及时、准确地提供测试准备指令和测试信息给现场的操作人员,同时快速返回装备的有关性能指标给操控方(远程主机),实现管理的“信息化”和“规范化”,需要在 PDA 和主机之
7、间进行无线通信。为此,笔者在这方面进行了研究并达到了预期的效果。文中就 PDA 和主机之间基于 TCP/IP 协议进行无线通信的硬件连接、配置方法和 PDA 端软件开发(主机端开发较为常见,不做介绍。)等一系列问题进行了探讨。1 硬件构成、配置方法及注意事项 1.1 硬件构成 1.1 硬件构成 PDA 和主机进行无线通信的硬件主要有:带无线局域网卡(即带 Wi-Fi 功能的 CF 卡)的 PDA,带网卡的桌面主机,AP 接入点,一根网线。本系统选用的是华硕 My pal 686 PDA,内置 CF 无线局域网卡,可以通过 Wi-Fi 和蓝牙进行无线连接,因 Wi-Fi 连接简介方便,所以选择了
8、 Wi-Fi 连接。该 PDA 支持 802.11b+g协议,其操作系统为 Windows Mobile 6.0。接入点 AP 选择的是 IP-COM 54M 无线路由,它可以作为无线接入点,同时具有路由和桥接功能,一个 ADSL 接口、四个普通网线接口。1.2 配置方案 1.2 配置方案 通过网线将 AP 接到主机上,根据 AP 使用说明书在主机上进行 AP 配置即可。然后在菜单“开始/设置”“无线网卡”下设置网卡的 IP(可以自动获取,但考虑到 PDA 有可能做网络的服务器端,这时主机要搜索 PDA 的 IP 地址和正在监听收稿日期:2008-07-22。作者简介:李 萍(1974-),女
9、,讲师,主要研究方向为光电工程;解国栋(1975-),男,讲师,主要研究方向为光电工程及软件开发;杨建昌(1975-),男,讲师,主要研究方向为光电工程;董小刚(1962-),男,副教授,主要研究方向为激光原理与技术。162 的端口号进行网络连接,所以最好设成固定 IP)。配置完进行连接前须将 PDA 的 Wi-Fi 功能打开。1.3 注意事项 1.3 注意事项 进行主机端 AP 配置时,记下 AP 的地址池范围。在进行PDA 和主机 IP 设置时,一定要让 PDA 和主机的 IP 位于该 AP的地址池范围内才能实现联网。笔者一开始就是因为没设好IP 而浪费了不少时间。2 软件开发 2.1 开
10、发环境 2.1 开发环境 根据已有的 PDA 支持的开发语言来选择软件系统,或者选择好开发软件后再购买支持该语言的 PDA。研究发现,.NET框架平台提供了许多网络程序设计需要的网络类,使网络应用程序的设计大大简化。同时 C#语言具有良好的面向对象特性,不仅可以实现跨语言、跨平台的因特网远程调用,而且能够简化网络应用程序设计的复杂性。因而本系统以 Visual Studio 2005 为开发环境,选用.NET 框架下的 C#语言作为无线网络连接的开发软件。2.2 软件功能 2.2 软件功能 该软件可以实现主机和 PDA 之间基于 TCP/IP 协议的无线网络连接。其中,主机作为服务器,PDA
11、作为客户端。服务器主机初始化后即通过其设定的端口号一直在监听客户端 PDA 的连接请求。当 PDA 发出连接请求时,主机接受请求,并发送握手信号给 PDA,表示连接成功。双方就可以通过无线网络进行通信了。PDA 定时接收主机端发送的文字和图片等信息,当接收完协议规定的字节数时给主机一个反馈信息,然后做相应的处理,提取有用的信息,并按要求进行操作,出现问题后,PDA 按照预定的协议反馈给主机一个信息,以便主机重发数据或做出其它调整。主机端想断开连接时,发出一个约定的有效信号给 PDA,PDA 即断开连接。2.3 开发步骤和软件流程 2.3 开发步骤和软件流程 2.3.1 开发步骤 在主机上安装
12、Visual Studio 2005 软件,选择 C#.NET语言,在“文件”菜单下选择“新建工程”,在“智能设备”下选择 Windows Application。然后根据面向对象语言的特点,编写自己的程序1。调试程序可在仿真状态下完成,也可将 PDA 和主机同步后在 PDA 上进行调试。在 PDA 上 调 试 时,先 在 主 机 上 安 装 Microsoft ActiveSync 软件,然后连接 PDA,使其与主机保持同步。然后选择“调试”菜单下的“启动调试”子菜单,在随后打开的“部署”对话框中选择“Pocket PC 2003 设备”,按下“部署”按钮,程序即在 PDA 上运行。调试无误
13、后,在 PDA 的“开始”菜单下的“资源管理器”中可找到程序的可执行文件,直接运行即可。2.3.2 软件流程 PDA 和主机间无线通信的软件流程图见图 1。客户端 定义一个 TcpClient 类 对象 通过 IP 地址和端口号 连接服务器 建立网络流接收握手信号 建立网络流发送握手信号 断开连接 监听服务器端口 确认与客户端的连接 定义一个 TcpListener 类 对象,用 IP 地址和端口号 初始化服务器 测试完成,断开连接 服务器端 写测试操作信息到发送缓存 定时从接收缓存读取信息并处理 从接收缓存读取信息并响应 写反馈信息到发送缓存 图 1 PDA 和主机间无线通信的软件流程 2.
14、4 主要技术难点及解决方法 2.4 主要技术难点及解决方法 在软件开发过程中,往往由于忽略了许多看似很小的问题,却因而导致程序频频出错甚至无法进行下去的情形,以致浪费大量的时间。下面对 PDA 开发中容易出问题的几个环节作以总结,祈愿从事相关研究的同仁能从中受益。(1)PDA 和主机的同步。主机上安装好同步软件 Microsoft ActiveSync 后,先查看其设置,其中有一项“无线网络连接时开启Wi-Fi功能”,如果不选择的话,在同步之前自动关掉 Wi-Fi,否则不能同步。为安全起见,一般都选择该项。另外,笔者在开发中也遇到过这样的问题:如果先打开Visual Studio 5.0 软件
15、再连接 PDA 的话,程序常常产生一些奇怪的错误,多次重启之后该问题最终得到了解决,但为做到万无一失,建议大家在开机后先连接 PDA,等同步完成后再打开软件,以保证程序的正确运行。(2)汉字的读取。一般的数字和字母的读取我们通常用这样的语句:Byte buff=new ByteByteLength;int iByteLen=Stream.Read(buff,0,buff.Length);System.Text.Encoding.ASCII.GetString(buff,offset,iByteLen);2 但汉字的读取则需要用到下面的语句:System.Text.Encoding.Defaul
16、t.GetString(buff,offset,iByteLen);早期的 PDA 不具备这样的功能,常常需要安装汉化包,而新型的 PDA 大都为 Unicode 编码,支持中文显示,所以实现起来就简单多了。但因为多数书上都默认接收的为字母或数字,所以对汉字的读取方式并未明确提出,如果不了解的话可能就要大费周折了。当然,写入汉字时也要采取类似的方式,将 ASCII 用 Default 替换。(下转第 168 页)168分参数查找以上定义的 WSP 会话状态机队列,找到对应的状态机对象,否则就增加新的对象;之后,根据此状态机对象的状态和 Event 结构中的参数,对照 WSP 规范规定的 WSP
17、 会话状态处理表进行状态转换处理。(5)发送模块与接收模块。接收模块和发送模块通过TCP与承载传输中心间传送wdp_ datagram类型的Msg消息。接收模块接收到承载传输中心送来的msg后动态申请一地址空间放置msg,并将msg解包后构造相应WTP层的event和 Machine 结构,并放入 WTP 静态 machine 链表。为了区分不同的 Machine,接收模块在取出源、目的地址和端口后再加上 TID,用不同的参数识别。如果在 machine 链表中有相同的 Machine,则返回该 Machine 的指针并将 event放入该 Machine 的事件队列 event_queue
18、末尾,如果没有相同的 Machine 就创建一个新的挂在 machine 链表上。发送模块取出发送链表中 msg 结构的数据和目的地址,形成 UDP 数据报发送到承载传输中心并回收分配的数据空间。如果发送链表为空则结束该过程,当主线程监测到发送链表不为空时再次启动该模块。2.3 WAE 模块设计模块设计本模块主要是编码器的设计与实现。编码器的实现需要对 WML 页面进行文本分析,构造 XML 树,对树中每个节点根据 WBXML 规范进行编码转换,根据转换的结果构造结果请求事件,将事件发往 WSP 层,结束一次任务。在编解码过程中,若页面内容是基于 WML 的内容,只需进行字符与二进制代码间的编
19、解码转换,若是 HTML/XML 的内容还需进行过滤,将其转换为 WML,不能过滤则丢弃并回送相应提示信息给移动终端。HTTP 过滤处理首先处理语法标记的分类、过滤和转换等内容处理部分,并生成中间形式的字符串文档,再将字符串文档经过划分处理后生成转换后的 WML 文档。42.4 管理模块设计管理模块设计5管理服务模块首先将WAP网关协议栈中的各层服务启(上接第162页)(3)输入法的显示。程序运行时,在PDA主界面的下方有一个InputPanel容器控件,通过点击可以显示和隐藏输入法。一开始为了增大有效利用空间,盲目地将该控件删掉,结果导致输入法无法显示。经过查询资料后,才找到了诀窍。当然,也
20、可以通过程序控制输入法的显示与否,如:按下某按钮时,添加“InputPanel.Enabled=True或False”即可。(4)软件版本不匹配。Windows Mobile 6.0 操作系统的 PDA 上运行 VisualStudio 5.0软件时,可能会在PDA上以对话框的方式提示“你安装了较高版本的CF2.0”。解决办法是在安装Visual Stu-dio 5.0的主机上安装NETCFSetupv2.msi,将Visual Stu-dio 5.0升级。3 结语据查,目前星级或者规模稍大些的饭店的点菜系统不少已采用或正在开发主机和PDA之间的无线通信,以缩短上菜时间;另外,医生在主机上的处
21、方如能通过网络及时、快捷地传到抓药人手中的PDA上,将不仅节省取药时间,而且可以实时查看PDA上的药品信息,减少出错的几率。因而,该研究的成果及常见问题和解决方法的提出对有类似需求的开发人员起到一定的借鉴作用,可缩短系统的开发时间。参考文献参考文献1 李琪.C#.NET 程序设计M.北京:机械工业出版社,2008.2 谭桂华,魏亮.Visual C#高级编程范例M.北京:清华大学出版社,2004.动,根据启动返回结果设置 WAP 协议栈服务的状态参数,建立与WDP 层的TCP Socket连接。如果连接成功则生成并启动轮询线程,此后开始建立等待用户管理界面连接的Socket 服务。若有管理界面
22、的连接请求,管理服务模块首先将当前服务状态信息发送给管理界面,使管理界面能够和WAP 协议栈的各层服务状态保持一致,之后驻留在后台等待管理界面的请求,并根据这些请求进行相应的处理,这些处理包括所有的管理服务功能。管理服务模块需要建立两个 TCP Socket,一个与管理界面模块进行通信,另一个与承载传输层进行通信完成对 WAP 协议栈服务的轮询。在 WAP 网关管理界面实现中,采用了基于 JAVA 的平台无关实现技术。管理界面实现中主要包括了三个对象,WAPGateway-Manager-GUI.Java,WAPGateway-Manager-GUIAboutBox.Java 以及 WAPGa
23、teway_ Manager_GUISplashScreen.java。3 结语本文针对无线网络的框架模型,设计出其核心设备WAP 网关的框架结构,同时根据其特殊性,提出具体的设计方法,主要特点体现在:采用状态机来模拟WTP 和WSP模块的实现,逻辑清晰;使用链表技术,高效、实用;采用分模块的堆栈式设计方法,可维护性和可扩充性好。并通过实现和测试工作验证了此方案的可行性。参考文献参考文献1 马保国,王连锋,李华刚.基于 Linux 平台的 WAP 网关的设计与实现J.计算机与数字工程,2007,35(4):129-131.2 夏勤,赵阿群,顾冠群.WAP协议的研究及WAP网关系统的实现J.计算机工程,2001,27(2):1-3.3 胡晓军.WAP 网关的研究与实现D.杭州:浙江大学,2005.4 梁青,商锋,张新.WAP 网关平台设计J.西安邮电学院学报,2001,6(3):57-60.5 金胜昔,夏勤,顾冠群.WAP 网关的管理模块设计与实现研究J.计算机工程与应用,2002,(02):118-120.