基于VC++的串口通信服务的开发
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
摘?
要
随着计算机技术的发展和推广,利用串口进行数据通讯在通讯领域中占有着重要的地位。为了方便和快速的通过Internet网络访问串口服务器的串口,本课题把串口通信集成到Windows服务,由Windows服务完成串口通信的基本操作。文中详细描述了串口通信服务的原理和工作流程,还列举出了相关的核心代码。用流程图的方式来描述了各个模块的逻辑实现。串口通信服务中采用安全队列的机制来控制多线程访问多串口。在开发中按照软件工程的流程,从需求分析到概要设计,从详细设计到编码,以及最后的测试,利用软件工程的工具管理开发代码和文档。此外,还开发出了客户端来测试该服务工作是否正常。经过测试服务工作正常,能通过网络连接到服务器完成串口的通信。最后总结了开发和设计的不足之处,程序还有待进一步完善。
关键词:串口通信;Windows服务;安全队列;多线程
1.1?? 设计方案
1.1.1?? 服务器端
服务器端使用Windows
NT服务来提供服务,此服务监听某一端口,等待客户端的链接。为客户端提供服务。使用Windows API自己定义服务的行为。服务管理串口池,服务启动初始化时,检测服务器的串口,串口统一进入一个全局安全队列。当客户端发起连接请求时,服务器开启一个线程来处理该客户的请求,直到客户端断开连接,线程退出执行。在线程中,从安全队列的队头出队列一个串口,该串口分配给该客户使用,客户端首先设置该串口的通信参数,否则按照默认串口通信参数进行通信。如果有多个客户同时连接服务器则服务器同时开启多个线程来处理多个用户的连接请求。分配给客户端使用的串口接收外设发来数据时,服务器通过连接的Socket发送到客户端,客户端处理接收到的数据。服务器端接收到客户端发来的数据时,把接收到的数据发送到分配给这个客户端的串口,通过串口发送到外设,外设处理接收到的数据从而做出反应,完成通信。
1.1.2?? 串口通信
使用Windows
API的串口操作函数,封装成串口类,来处理串口通信。此串口类统一操作串口池里的串口,根据不同的串口号来操作这些串口。从而达到每一个客户的使用一个串口,每个串口都是相同的操作。可以根据不同的通信设备为不同的串口设置不同的通信参数。串口通信负责处理串口的参数设置,串口的打开和关闭,数据的读和写,即写数据到串口和从串口读数据。打开串口时,服务处理此客户的线程开启另一线程监听串口是否有数据接收,当发现有数据来的时候,串口读出该数据通过Socket发送到客户端。
1.1.3?? 客户端
客户端使用MFC编程创建基于对话框的应用程序。该程序使用Windows Socket建立同指定服务器的数据连接。当建立好HTTP链接后,可设置串口的通信参数,如:波特率,数据位,奇偶校验,停止位等。设置好串口的通信参数后就可以同服务器分配给的串口链接的外设通信了。发送数据到服务器的串口,和接收服务器发送回来的数据。
1.1.4?? 开发工具
Microsoft
Visual C++ 6.0是微软公司推出的开发Win32应用程序(Windows 95/98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。
上一篇:KASUMI算法的研究与VC实现