帮帮文库

返回

基于PCI的WDM驱动程序设计(最终版) 基于PCI的WDM驱动程序设计(最终版)

格式:word 上传:2025-12-02 22:29:20
用函数发出退出消息,线程对象消息循环响应后,正常终止。我们的程序中,当用户按下退出按钮时,终止用户界面线程,源代码如下工作线程的实现工作线程通常用于进行程序的后台任务,它和用户界面线程不同,它不用从类派生来创建,最重要的是实现完成工作线程任务的运行控制函数。简单的说,工作线程在我们编制的程序中就是个函数,这个函数完成该线程并行的工作,由其他语句调用函数将这个线程启动。它的启动与用户界面线程不同,使用了函数的另个重载版本。在我们的转速流量数据采集系统中,使用工作者线程来执行具体的多模块后台操作。读工作线程负责从驱动程序中读入转速流量数据到内存缓冲区数据分析工作线程负责数据的分析处理文件保存工作线程实现对已读入的内存缓冲区写入到磁盘中,即以文件的形式保存显示工作线程对处理好的数据进行多种形式的显示等。所有的线程使用消息机制来完成数据交换。工作线程本文仅以读工作线程为例,结合源码对工作线程加以介绍。实现控制函数。调用监视驱动程序中断消息计算中断次数,转速通道数据传输省略部分为转速通道流量通道数据传输,结构雷同调用函数发送自定义消息,通知后续线程的执行中断计数清返回值,指明线程终止原因,表示成功启动工作线程。在文件中,调用函数启动用户界面线程。利用自定义的消息完成线程数据交换。允许用户自定义消息,故我们可以利用自定义的消息来完成线程之间的数据交换。其步骤如下定义个用户消息,如我们的文件中用常数作为起始消息入口。后定义的不同数字用以区分不同的用户消息。调用函数发送自定义消息来完成线程之间的数据交换,源代码如上例所述。利用临界区对象实现工作线程同步。利用线程实现多模块的并行处理同时,也会给我们带来些诸如同时多个线程对数据进行读和写操作,数据的安全有效性可能会遭到破坏等弊端,这就需要我们充分考虑线程同步的问题。利用事件对象实际上就是线程同步的种形式。为了使线程应用程序运行的更安全,线程同步技术还采用临界区互斥体和信号灯。限于篇幅,下文仅以我们在程序中使用的临界区技术为例加以分析。临界区技术是保证次只能有个线程访问个数据集的有效的方法。使用临界区也就是声明了个线程共享对象。当个线程获得临界区对象后就能访问受保护的数据,其它线程只有等到这个线程释放临界区对象后才能获得临界区的控制权访问数据集。这样就保证了在任时间最多只能有个线程访问受保护的数据。我们在中创建了个临界区的实例来作为个临界区对象,在文件如下所示在程序代码准备访问希望受保护的数据时,只需调用临界区对象锁定函数即可,调用形式如下函数首先检查临界区是否被其它线程占有,如果没有则将临界区对象付给调用线程,线程就能访问受保护的数据。在数据访问结束后,线程调用临界区对象成员函数释放临界区对象以便其它线程能够占用。我们在程序中按如下方式调用函数工作线程的终止。线程的终止有不同的方法,在中,最常用的是和。是结束线程的指定方式,因为它提供了个整洁的线程关闭,所有链接的动态链接库,都得到该线程正在结束的通知而执行相关的终止或清理工作,线程所占有的资源也被自动释放。该函数只能在当前线程中调用。函数应该在其它方法都失败时才被调用,因为它执行个突然的关闭,不取消线程的堆栈分配,也不通知任何链接的关于线程正在关闭的消息,这样会引起数据的丢失或拥有的全局数据的状态上引起些不妥。该函数通过被终止线程的句柄,在其它线程中被调用。我们的程序中要求正常终止线程的方式,故采用函数。利用对数据进行多种形式的显示我们在上层总控应用软件的设计和实现中,充分利用了的图形显示优势,分别运用坐标曲线图指示控件报警指示灯旋转按钮指示控件和图表控件等对处理好的数据进行多种形式的显示。本程序中的源代码如下,显示转速通道的有效数据判是否为转速通道的有效数据判是否超过上下限值。若是,则警示灯报警。省略部分为其它的显示方式坐标曲线显示数据的实际效果如图所示。图中,轴是时间轴,单位为秒,采用所采数据换算累加的方式实现轴为转速流量转换值轴,单位为转分或升分左下部的圆点指示灯为报警灯,超过上下限值报警。图为用表格形式显示采集数据的实际效果图。图用坐标曲线图显示采集稳态数据的实际效果图图用表格形式显示采集数据的实际效果图网络功能的实现要实现网络编程,有多种方法通过使用命名管道和邮箱使用等均可以实现在网络上的通讯。我们在程序中采用的是,主要使用提供的类实现网络功能。网络应用程序包括两部分部分是服务器端的应用程序,主要用于接收客户端的连接请求接收客户端的信息处理客户端的请求发送应答消息等。另部分是客户端的应用程序,主要用于申请连接到服务器向服务器发送请求处理服务器发回的结果和其他信息等。般来讲服务器应用程序可以同时接受多个客户端的连接请求和其它处理请求,而客户端也可以同时连接到几个服务器上,使用时,般不超过个。客户端必须知道服务器端为客户端提供的端口地址,并在请求连接到服务器时提供端口地址,个典型的网络应用程序结构如图所示。图网络应用程序的结构在网络应用程序中,不管客户端还是服务器端,发送数据是主动的,而接收数据总是被动的。由于类中提供了监听函数,服务器端建立个监听,即自动创建个监听线程,随时监听是否有客户端的连接请求,在监听上建立消息响应函数,接收客户端的连接请求。服务器为每个客户端请求建立个,以便并行处理客户端的数据通讯请求。服务器端为了接收客户端的数据,在为客户端建立的上建立消息响应函数,用来接收数据。客户端为了接收服务器端的数据,则在连接的上,建立个消息响应函数,用来接收数据。如第章系统组成部分介绍的,我们的转速流量数据采集系统在整个综合参数测试系统中处于客户端的位置,客户端还包括显示计算机和性能计算机。处于服务器端的上位机是主控计算机。本程序的任务就是接收上位机的命令包数据包并向上位机发送数据包。命令包的和数据包的格式概略的说由部分组成校验头包头包体。其中校验头的指定码统指定为,命令包总长包头包体的长度不含校验头大小。介于此项目的特殊地位,在此对命令包和数据包不作具体详细的介绍说明。为了保证数据网络传输的可靠性,我们必须设定大量的状态变量,程序在所有的变量均满足要求后,才稳步接收发送数据。其实现过程如下所述在集成环境中,通过新建类向导完成类的创建,生成文件和。定位,修改构造函数的声明。本程序的源代码如下声明类属性声明状态变量析构函数重载函数定位中,增加包含头文件。在构造函数中增加如下代码设定状态变量的初始值省略部分是对其它状态变量初值的设定在类中利用增加消息的消息响应函数。定位中的消息响应函数,修改代码如下,判是否建立,如果没有收到数据块,关闭,标记为非堵塞,请求操作发生堵塞,如果已收到数据块尺寸,准备接收启始标志设定相应变量标志已经得到数据块尺寸,如果没有接收完启始标志,继续接收,如果收到启始标志,判断是否正确如果启始标志正确,分配接收缓存区准备接收数据正文,各状态变量置位数据块尺寸和启始标志都已接收正确,开始接收数据用的类的数据成员函数接收数据如果数据块接收完毕则准备接收下个数据块状态变量变化运用增加消息的消息响应函数。定位中的消息响应函数,修改代码如下,省略部分为消息分配如果数据队列不为空就发送数据用的类的数据成员函数发送数据判断该数据块是否传送完毕传送完毕,则删除数据块状态变量复位如果队列非空,则提名,准备传送下个数据块运用函数建立数据结构。函数的主要作用是,建立个并关联对象,它的参数为端口号,缺省时,自动分配类型,流或数据报可操作的网络事物,本程序中为服务器名或服务器点地址。本程序中函数源代码如下在主对话框中创建连接函数,连接到服务器。本程序中源代码如下,创建成功,连接服务器,,没有连接成功,,连接服务器失败,,服务器连接成功至此,我们基本完成网络传输框架的源代码编写工作。在实际调试工作中,还会遇到许多意想不到的结果,但是正如我们在系统调试中所经历的那样,只要关键技术的理论没有问题,困难总是暂时的。系统实际运行效果这节中将给出几张转速流量采集系统实际运行的效果图。它是驱动程序与上层总控软件融合为个整体后,对不同被测对象进行真实测量的具体效果。图系统对稳态转速流量数据采集的实际效果图图是转速流量数据采集系统对稳态数据测试的结果。图中左边竖排的个黑底显示框为坐标曲线显示框,依次为转速通道流量通道。由于本采集总系统还包括压力测量,所以中间和右边的个坐标曲线显示框分别对应压力通道数据显示。右边竖排部分为提供给用户的控制键和状态显示栏。以下的图例均是如此设置。在本次测量中,为了方便用户观察和对转换公式的保密,直接将采集的原始数据加以显示单位为,并未将其转换为实际转速和流量的实际值。给定的信号对应的显示框分别为和,均为电平。图是转速流量数据采集系统对瞬态数据测试的结果。转速通道给定值是范围为的扫频信号,超出显示范围和上限值本试验中上限值设为,下限值设为,此框的警示灯变为红色报警转速通道所加的测试信号与转速通道类似,也是对扫频信号的测试,所不同的是两个通道分别对应两个不同的信号源,故时间轴轴并不同步流量通道是对的摆动量的测试流量通道为对稳定的信号进行测试的结果。图系统对瞬态转速流量数据采集的实际效果图本章小结在这章的论述中,我们注重对上层总控应用软件的总体特点结构及工作流程的介绍,并详细阐述了多线程网络通信等关键技术的理论和源代码的实现。与此同时,对于开发数据采集系统总控应用软件所应该具备的知识也做了较为周密的分析。最后,
下一篇
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
基于PCI的WDM驱动程序设计.doc预览图(1)
1 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(2)
2 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(3)
3 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(4)
4 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(5)
5 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(6)
6 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(7)
7 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(8)
8 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(9)
9 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(10)
10 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(11)
11 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(12)
12 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(13)
13 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(14)
14 页 / 共 104
基于PCI的WDM驱动程序设计.doc预览图(15)
15 页 / 共 104
预览结束,还剩 89 页未读
阅读全文需用电脑访问
温馨提示 电脑下载 投诉举报

1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。

2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。

3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。

  • Hi,我是你的文档小助手!
    你可以按格式查找相似内容哟
DOC PPT RAR 精品 全部
小贴士:
  • 🔯 当前文档为word文档,建议你点击DOC查看当前文档的相似文档。
  • ⭐ 查询的内容是以当前文档的标题进行精准匹配找到的结果,如果你对结果不满意,可以在顶部的搜索输入框输入关健词进行。
帮帮文库
换一批

搜索

客服

足迹

下载文档