




已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南交通大学硕士研究生学位论文第1 页 摘要 得益于计算机网络技术和多媒体技术的快速发展,网络化列车模拟驾 驶培训系统开拓了网络教学应用的新领域。 本论文首先介绍了课题的背景、意义及研究内容。接着,提出系统的 功能设计并对系统的实现方法及可行性进行了讨论。 此后,在介绍了学员端、教员端软件框架及功能模块的基础上,对网 络教学中的部分功能实现进行了分析,其中着重讨论了基本通讯数据传输 链路的可靠建立以及基本数据传输方式的实现,在此基础上又讨论了教员 端对任意学员端操纵数据监控以及网络监测功能的实现;此外,还介绍了 如何利用组播技术建立一对多的数据传输通道以及基于此的分组讨论功 能实现。在功能实现过程的分析中,先对所用到的关键技术比如:w i n d o w s 网络通讯编程技术、口组播技术等的相关知识进行了介绍,然后阐述其在 系统功能实现中的应用。 在论文的最后,深入讨论了视频监控功能的实现过程,其中利用 w i n d o w s 图形图像编程知识实现了界面图像的捕获与显示:利用t c p i p 网络通讯协议以及s o c k e t 编程原理实现了图像信息的网络传输:利用 j p e g 编码技术实现了对视频数据的压缩与解压缩;利用多线程同步处理 技术保证了监控界面的无误刷新。此外,针对视频网络传输中出现的时延 现象给予了分析。 关键词:模拟驾驶;网络;i p 组播;图像压缩 西南交通大学硕士研究生学位论文第1 1 页 a b s t r a c t p r o f i t i n gf r o mt h ed e v e l o p m e n to ft h ec o m p u t e rn e t w o r ka n dm u l t i m e d i a t e c h n i q u e t h en e t w o r kt r a i nd r i v i n gs i m u l a t i n gs y s t e md e v e l o p e dan e w f i e l do f n e t w o r ke d u c a t i o n f i r s to fa 1 1 ,t h et h e s i sd i s c u s s e st h eb a c k g r o u n d ,m e a n i n ga n dr e s e a r c h c o n t e n to ft h et a s k s u b s e q u e n t l y ,i tp u t sf o r w a r dt h ef u n c t i o n a ld e s i g no ft h e s y s t e ma n dd i s c u s s e st h em e t h o do ft h er e a l i z a t i o na n df e a s i b i l i 够o ft h e m e t h o d f o rt h es e c o n d ,b a s e do ni n t r o d u c i n gt h es o f t w a r ef r a m e w o r ka n d f u n c t i o n a lm o d u l eo fb o t ht e a c h e rt e r m i n a la n ds t u d e n tt e r m i n a l ,t h et h e s i s a n a l y z e st h er e a l i z a t i o no f t h ep a r t i a lf u n c t i o no f n e t w o r kt e a c h i n g d u r i n gi t , t h er e l i a b l ef o u n d a t i o no fl i n k st h a tt r a n s m i t t st h eb a s i cc o m m u n i e a t i o nd a t a a n dt h ed e s i g no f c o m m u n i c a t i o nm e t h o da l ed i s c u s s e dd e e p l y o nt h eg r o u n d o ft h e s e ,t h er e a l i z a t i o no ft h et e a c h e rt e r m i n a lm o n i t o r i n g a n ys t u d e n t t e r m i n a l so p e r a t i o ni n f o r m a t i o na n dt h en e t w o r km o n i t o r i n ga r cm e n t i o n e d i na d d i t i o n 。t h et h e s i sr e f e r st oh o wt or e a l i z et l l et r a n s m i s s i o no fo n et e r m i n a l t om u l t i - t e r m i n a lb ym u l t i c a s t i n gt e c h n i q u ea n dt h er e a l i z a t i o no fg r o u p i n g t a l k s d u r i n gt h ep r o c e s so fa n a l y z i n gt h er e a l i z a t i o no ft h ef u n c t i o n ,t h e c r u c i a lt e c h n i q u es u c ha st h ew i n d o w sn e t w o r kc o m m u n i c a t i o nt e c h n o l o g y a n di p m u l t i c a s t i n gt e c h n o l o g y e t c i si n t r o d u c e df i r s t l y , a n dt h e nt h e a p p l i c a t i o n o ft h ec r u c i a lt e c h n i q u ei nt h er e a l i z a t i o no ft h ef u n c t i o ni s e x p o u n d e d a tt h ee n do f t h et h e s i s ,h o wt or e a l i z et h ev i d e om o n i t o r i n gi sd i s c u s s e d d e e p l y ,i ti n c l u d e sc a p t u r i n ga n ds h o w i n gt h ev i d e oi m a g ea c c o r d i n gt ot h e w i n d o w sg r a p ha n di m a g ep r o g r a m m i n gk n o w l e d g e ,a c c o m p l i s h i n gt h ei m a g e t r a n s m i s s i o na c c o r d i n gt ot c p i pn e t w o r kt r a n s m i s s i o np r o t o c o la n ds o c k e t p r o g r a m m i n gp r i n c i p l e ,c o m p r e s s i n ga n dd e c o m p r e s s i n gt h ev i d e od a t a a c c o r d i n gt o p e gc o d i n gm e t h o d ,e n s u r i n gt h em o n i t o r i n gi n t e r f a c er e f r e s h e d w i t hn oe l l o ra c c o r d i n gt om u l t i - t h r e a ds y n c h r o n i z a t i o nt e c h n i q u e b e s i d e s t h et h e s i sa n a l y z e st h et i m ed e l a yo f v i d e oc o m m u n i c a t i o ni nn e t w o r k k e yw o r d s :t r a i nd ri v i n gs i m u i a t i n g ;n e t w o r k :i pm u i t j c a s t i n g ; m a g ec o m p r e s sin g 西南交通大学硕士研究生学位论文第i 页 1 1 引言 第1 章绪论 计算机网络是通过通信线路将分散在不同地理位置、具有独立功能的 多个计算机系统,按照一定的连接方式相互连通,并依据一定的网络协议 进行数据传输,达到共享计算机硬件、软件和数据资源的计算机集合1 2 0 , 它是信息化社会的重要物质基础,它无处不在,新世纪的教育也同样离不 开网络。网络教学使教育资源传播率大大提高,教育资源得到最大限度共 享。基于网络的教育模式冲击着传统的教育模式,已成为新世纪的主流教 育形式。 纯软件构架的网络化列车模拟驾驶培训软件就是网络技术在教育教 学方面典型而又特殊的应用。 1 2 网络化列车模拟驾驶培训系统开发的背景和意义 随着我国铁路事业的飞速发展,铁路部门对机车司机的数量及操作技 能的要求都在不断地提高,全功能模拟器的出现在一定程度上解决了这个 问题,但由于其造价高,主要用于对具备基本操纵技能的学员进行培训。 于是,我们考虑利用成熟的计算机网络及多媒体技术开发一套网络化列车 模拟驾驶培训软件以满足对学习机车驾驶的初级学员培训的需要。 此软件是基于p c 机的、实时交互的、网络化的列车驾驶培训软件, 它面向学习机车驾驶的初级学员,可承担机车司机培训中的大部分任务, 通过培训,学员可以掌握基本的列车驾驶操纵技能,这不仅解决了我国目 前教员少学员多的现状,还给更多的学员提供了练习驾驶各种车型的机 会。由此可见,具有重要的现实意义。 目前在国内,用于铁路部门培训司机的模拟驾驶软件着重于单司机的 训练,在网络化教学功能的开发上显得极为有限:而国外虽有相关的开发 案例,但其均采用国外车型及线路等等,因而,无法用来培训我国的机车 司机。 1 。3 课题研究的目的以及创新性 利用现有模拟驾驶装置的软件模块,开发一套网络化列车模拟驾驶培 训软件,通过该软件,学员可在教员的指导安排下,以课程的方式进行模 西南交通大学硕士研究生学位论文第2 页 拟驾驶训练,经过在该系统上的逐级培训,学员可熟悉机车上的各类操纵 设备、机车常规的操纵过程、初步掌握各类( 复杂) 情况下的行车规则、 机车操纵技巧、列车常见故障的判断处理等。 目前,将视频传输技术应用于网络化列车模拟驾驶培训的软件在国内 尚未开发过,然而,基于此应用的功能如:对学员端操纵界面监控、观摩 教员或某学员的操纵等又极具实用性。因此,开发这样一套具备视频监控、 观摩功能的培训软件,正是其创新性之所在;此外,一些功能的实现方法 ( 如:采用实际线路视景等) 也是一次尝试。 不仅如此,将全功能模拟器的相关模块简化的集中于一台计算机实现 相对简单或部分功能的模拟驾驶系统,将来还能够扩展为铁路网条件下的 群控仿真系统,可见,具有良好的可扩展性。 1 4 论文研究内容 本文主要在原有框架的基础上利用成熟的计算机网络技术和多媒体 技术构建一个网络化的培训系统,从而。实现一个教员指导多个学员进行 模拟驾驶培训的功能。 论文完成的工作: 研究原有的模块以及框架,了解各个模块的功能及模块间的 接口。 在原有框架基础上进行功能扩展,完成网络化模拟驾驶培训 系统的设计。 完成系统登录认证、文字通讯( 一对一和一对多方式) 及对 该功能开启关闭的控制、网络监测功能。 实现教员同时对一个或多个学员的操纵信息同时监控。 实现教员对某个学员的操纵视频监控。 西南交通大学硕士研究生学位论文第3 页 第2 章网络化列车模拟驾驶培训系统的功能设 计及实现方法 2 1 网络化列车模拟驾驶培训系统功能设计 2 1 1 系统功能需求 本系统一方面应用于学员的模拟驾驶训练,另一方面则应用于教学, 由此,需具备如下功能: - 模拟驾驶仿真功能 给学员提供真实的模拟驾驶操纵环境。 训练结果记录功能 为了方便学员能够在课后对自己的训练过程进行回顾以及教员 课后对学员操纵技能掌握情况的了解。 系统操纵提示功能 帮助学员在单机训练情况下进行模拟驾驶练习。 训练方式选择功能 使学员能够根据实际需要选择单独练习或接受教员指导。 教学管理、控制功能 教员作为教学工作的组织者,应能随时了解在线学员的操纵状态 以及对不同的教学功能进行控制。 - 多媒体功能 系统能够在局域网内实时的传输图像、语音及文字信息,从而, 丰富教学内容和教学手段。 交互功能 为了提高教学效果,系统需能够灵活地实现教员与学员、学员之 间的操纵接管。 故障设置功能 为了更真实地模拟列车运行环境以及考察学员对突发事件的处 理能力,系统应能够自动或人为地设置故障。 2 1 2 系统整体框架 西南交通大学硕士研究生学位论文第4 页 该系统由三部分构成:学员端、教员端和服务器。它们通过局域网相 互之间进行通讯,吗人而,构成一个网络化的培训系统。系统构成如图2 1 所示。 学员端基本功能为对列车的运行及操纵响应过程进行仿真;通过局域 网,学员可以接受教员的监控、指导以及与教员进行交流,此外,还能够 从服务器上下载课程信息或者向服务器上传个人信息( 包括训练结果) 。 教员端主要是通过局域网对学员进行指导、组织教学:除此之外,可 以从服务器上查看学员信息( 个人信息和训练结果) 或者向服务器上传课 程信息。 服务器端负责( 课程、线路、学员信息) 文件的管理、存储。 2 - l 系统整体框架 2 1 3 学员端功能设计 1 ) 学员登录 学员可选择单机训练或联机训练。如选择联机,在输入自己的代号及 密码后可进入网络环境,与此同时,打开课程选择界面;如选择单机训练, 则直接打开课程选择界面。 2 ) 课程查询、选择、解析及下载 在课程选择界面中,学员可查看学员机上现有的课程,并可进一步查 看课程的详细内容。此外,还可以与服务器连接下载新课程。 3 ) 模拟驾驶 该功能包括模拟列车的运行及操纵响应过程。 4 ) 设备热区提示、控制功能 该功能主要是在学员模拟驾驶过程中对一些必要信息如:当前运行信 息、系统提示信息、网络性能监测等进行显示。此外,可控制与教员进行 西南交通大学硕士研究生学位论文第5 页 文字及语音通讯。 5 ) 网络监测 此功能负责对网络连接情况定时进行监测,如出现异常,则给于提示, 并引导学员作相应处理。 6 ) 电子举手 在教员禁止文字及语音通讯后,如请求与教员通讯则可通过该功能。 7 ) 文字,语音通讯 通过该功能,学员可与教员单独进行文字及语音交流。 8 ) 分组讨论 该功能可满足学员与教员以及其它学员相互之间进行文字交流。 9 ) 训练结果查询 当学员完成训练后,可查看训练记录。并选择是否保留记录。 1 0 ) 操纵提示 该功能可在学员操纵出现错误时,由系统给与相应的提示。 2 。1 。4 教员端功能设计 1 ) 教员登录 教员通过输入个人代号及密码进入网络环境,与此同时,通知在线学 员。 2 ) 查看当前学生列表 通过学员列表教员可了解在线学员及其当前操作状态。 3 ) 文字语音通讯及控制功能 教员可通过该功能与学员进行文字及语音交流:此外,可控制任意学 员端文字语音通讯功能的开启及关闭。 4 ) 观摩角色选择 可选择观摩对象( 教员、某个学员或多个学员) 和被观摩对象( 教员 或某个学员) 。 5 ) 视频传输功能 根据观摩角色的选择建立视频传输链路,从而完成视频数据的发送和 接收。 6 ) 操纵权切换 教员通过指定操纵权掌握者,实现操纵接管功能。 7 ) 教员干预 西南交通大学硕士研究生学位论文第6 页 通过该功能教员可给任意学员设置故障、改变信号、添加事件等。 8 ) 分组讨论及控制 教员可指定任意学员加入讨论组,并进行相互交流。 9 ) 网络监测 监测当前网络状况,当出现异常通知教员。 2 2网络化列车模拟驾驶培训系统的开发工具及运行环 境 在目前的开发工具中,v c + + 是在w i n d o w s 平台下构建3 2 位应用程 序的强大而又复杂的开发工具,也是目前世界上使用最多的开发工具之 一。v c + + 的应用非常广泛,从桌面应用程序到服务器端软件,从系统软 件到应用软件,从单机程序到分布式应用程序,从图形图像处理到游戏的 开发,它之所以能够广泛地被应用,一方面是其代码执行效率很高,另一 方面就是其开发的内容很广泛。 本系统是一套网络版的列车模拟驾驶培训软件,其涉及到编程的内容 较多,包括:大量的界面编程、图形图像处理、网络编程等等。鉴于以上 特点,选用功能强大的可视化应用程序开发工具v i s u a lc h _ 6 0 ,利用应用 程序框架开发模式,摆脱了编写大量复杂程序代码的负担,从而,大大提 高了开发效率。 系统运行的软件环境为目前较为通用的:w m d o w sx p 、w i n d o w s 2 0 0 0 操作系统。 硬件环境则为:交换机、1 0 0 m s 以太网。 开发环境为:w i n d o w sx p 和v i s u a lc h 七0 2 3 系统实现方法及其可行性研究 首先研究了原有非网络版模拟驾驶软件框架,了解各个模块的功能和 接口以及整个系统的调度。 其次,在原有框架基础上对网络教学功能进行设计并对各个功能模块 实现所需要用到的技术进行考察。 再其次,进行软件模块的设计,基于软件涵盖功能较多的特点,为了 方便分步开发及测试,我们划分了较多的功能模块。 最后,进行编码和测试。 西南交通大学硕士研究生学位论文第7 页 在有限的网络带宽上实现数据量较大的图片实时传输是本次设计遇 到的一个难点,针对这一问题,考虑利用目前较为成熟的图像压缩技术, 再加上一定的处理技巧,经实践证明实现结果基本能够满足现实的需要。 通过对其它各个待开发模块所需要用到技术的考察,由于有成熟技术 的支持,在其基础上进行更进一步开发应该是可以实现的。 西南交通大学硕士研究生学位论文第b 页 第3 章网络化列车模拟驾驶培训系统软件结构 设计 3 1 网络化列车模拟驾驶培训系统的整体软件结构 该软件由三部分构成:学员端程序、教员端程序和服务器端程序,它 们之间通过不同的传输通道进行相互通讯,从而,实现系统的网络化功能。 总体软件框架如图3 - 1 所示: 5 1 课程文件、学员信息、控制命令、运行记录 2 课程文件、控制命令、学员运行记录个人信息 3 连接请求信息 4 控制命令、操纵数据监控信息、文字信息 5 图像信息、语音信息、文字信息 3 - 1 系统整体软件框图 因为,在2 1 2 节的系统整体框架中已介绍了服务器端、教员端和学 员端的功能,所以,在此不再累述。下面主要介绍他们之间的网络通讯关 系: 服务器端由于要向学员端和教员端提供文件的上传及下载功能,因 此,与它们之间主要传输的信息是文件信息和控制命令,这些信息的特点 是:数据量较小然而却比较重要,于是,我们设计将这些信息放置于一条 西南交通大学硕士研究生学位论文第9 页 通讯链路进行传输,并通过有连接通讯方式保证数据的可靠性。如图中通 道一和二。 学员端和教员端之间的通讯主要是为了完成网络教学部分的功能,进 行传输的数据信息种类较多,根据功能实现的需要以及考虑到尽可能保证 不影响其它信息的传输,我们设计建立不同的通道传输这些数据。 传输通道四主要传输的是控制命令信息,对于学员端和教员端程序来 说不但需要保证其可靠性,而且,需要频繁传输。因此,采用有连接通讯 方式来保证数据被可靠传输并使通讯链路始终保持建立。 文字信息、操纵数据信息由于其数据量小,因此,我们选择将它们也 放置于通道四进行传输。 传输通道五主要传输图像和语音信息,由于这些信息数据量较大,且 有通道四的始终可靠建立,为了不影响其它数据的传输,我们选择用有连 接方式单独建立一条通讯链路传输这些数据。此外,当需要实现这些数据 一对多传输时,也可以用组播技术建立此通道,此时,该传输通道也传输 文字信息。 从实际角度出发,由于我们不能保证教员和学员哪个先上线,并且用 有连接方式建立可靠通讯链路前必需先建立连接,即:首先,要有虚拟服 务器端等待连接,而后,由虚拟客户端请求连接,通过“三次握手”完成 通讯通道的建立。因此。无论教员端和学员端哪个做虚拟服务器端,均不 能保证通道四能可靠建立,针对这一问题,我们考虑建立辅助通道三,它 采用无连接方式进行通讯。 3 2 学员端软件结构及功能模块介绍 3 2 1 学员端软件框架介绍 根据学员端的功能设计,学员端软件的基本框架如图3 - 2 所示。 当系统接收到操纵命令,由逻辑仿真单元进行逻辑判断,判断结果利 用计算模型参与牵引计算,计算的部分结果根据线路文件读取到相应的线 路状况数据,通过计算模型和当前逻辑判断结果进行下一轮的牵引仿真计 算,此外,部分计算结果还决定模拟驾驶的仿真输出,如:声音仿真、视 景仿真、信号显示,操纵状态信息的显示等等。 西南交通大学硕士研究生学位论文第1 顷 查询线路状况 声音仿真 输入指令 操纵指令获取 逻辑仿真 工 牵引计算 工 计算结果输出 接管信息一 干预信息 网 络 传 输 3 - 2 学员端软件结构结本框图 通过网络,系统可接收或传输接管信息、干预信息、视频、文字及语 音等信息,从而实现接管及被接管、教员干预训练、观摩训练和文字、语 音通讯的功能。 3 2 2 学员端功能模块介绍 1 ) 课程选择模块 提供学员端的课程选择、显示以及下载。 2 ) 课程解析模块 该模块负责课程内容的显示。 3 ) 初始化模块 通过读取线路、视景文件等信息,对模拟仿真中待初始化的参量进 行赋值。 4 ) 逻辑仿真模块 根据输入的操纵指令信息进行逻辑判断。 5 ) 牵引计算模块 该模块根据逻辑判断模块的判断结果及从线路文件读取的线路数据, 利用计算模型,进行牵引计算。计算结果将控制声音仿真、信号显示、视 景驱动等。 燧量蔫 西南交通大学硕士研究生学位论文第1 1 页 6 ) 操纵台控制、信号显示模块 该模块响应操纵者的鼠标或键盘操作并采集相应的输入信号。 除此,牵引计算的结果或教员的干预指令信息将控制操纵台仪表的显 示。 7 ) 视频控制模块 视频信息来源于视频文件;由牵引计算结果得到机车运行位移和速度 两个变量,经过相应换算控制视频播放速度。 8 ) 声音控制模块 该模块根据牵引计算结果,进行逻辑判断,通过扬声器模拟列车外部 的声音。 9 ) 操纵运行记录模块 为了便于训练完成后分析训练情况,每隔一定时间,由机车逻辑牵 引计算模块得到机车运行的相关参数,并以曲线的形式绘制成图。 1 0 ) 观摩控制及响应模块 当收到观摩控制请求允许的信号后( 操纵他人机时) ,获得操纵信息 ( 鼠标键盘动作和位置) ,并通过网络通信模块发送。 当收到观摩控制请求信息时( 即被他人操纵时) ,由网络通信模块得 到操纵信息并模拟操纵动作。 1 1 ) 网络通讯模块 网络通讯模块主要负责网络传输通道的建立、信息的发送及对接收信 息的初步解析。根据信息的不同传输方式及信息的特点,建立如下通道: 与教员: 传输通道一,主要传输文字信息、控制信息、操纵监控数据,采用点 对点通讯方式。 传输通道二,传输视频、语音、文字信息,当仅限于监控功能时,可 采用点对点通讯方式;当包含观摩功能的实现时采用组播通讯方式。 传输通道三,传输请求连接命令,采用点对点通讯方式。 其中,传输通道三辅助通道一的建立,通过传输通道一建立传输通道 一。 与其他学员; 传输通道一,传输视频、语音信息、文字信息,采用组播方式通讯, 与同教员通讯的传输通道二为同一通道。 传输通道二,传输控制命令,采用点对点通讯。 西南交通大学硕士研究生学位论文第l 项 与服务器: 传输通道一,传输控制命令、课程文件信息、训练记录信息,采用点 对点通讯方式。 以下是学员端与教员端通讯中,网络通讯模块与其它模块接口示意图 3 - 3 : 网络估输摔制模块 传输通道一传输通道二 传输通道三 - llr i 一 _ i ii 上上ull ;l 上l : 操 驾 濯 网登 络录 监模 测块 模 块 纵驶 l 块 信 操 息纵 监控 控制 模模 视 l 语操 l 块 块 纵 文 宝 信 控 皂 制 显 模 不 频 l 块 模 传 输 控 制 模 块 块 3 3 与教员端通讯网络通讯模块与其它模块接口 1 2 ) 操纵信息监控模块 该模块当收到监控命令,负责从牵引计算模块、课程选择模块得到监 控信息,实时由网络通讯模块传给教员端。 1 3 ) 视频图像传输控制模块 此模块负责图像截取、压缩、解压缩、显示。 1 4 ) 文字及语音通信控制模块 a 该模块根据教员端的命令,控制语音及文字通讯功能( 包括点对点和 一对多) 的开启和关闭 b 并接收和输出语音及文字信息。 西南交通大学硕士研究生学位论文第l 顼 1 5 ) 模拟驾驶操纵控制模块 此模块负责控制暂停继续运行当前的模拟驾驶仿真过程。 1 6 ) 设备热区提示、控制模块 此模块主要负责当前训练的课程信息、机车运行信息、网络状况信息 及教员是否在线等的显示。此外,可选择与教员端文字通讯、电子举手等 功能。 1 7 ) 系统登录模块 根据学员输入的i d 号以及密码,进行身份验证。 当学员选择联机训练时,向教员端请求连接,如未能连接成功则等待教 员的连接命令。 1 8 ) 网络监测模块 此模块定时向教员端发送检测包,如在规定时闾内未收到确认包,则认 为通讯链路断开,提示学员检查网络及是否选择重新连接。 3 3 教员端软件结构及功能模块介绍 由于教员端主要完成的是组织教学的工作,因此,大部分功能的实现 都需要与学员进行通讯,从而也形成了以网络通讯模块为核心的总分式整 体软件结构。与学员端通讯的软件模块结构图如3 - 4 所示: 1 ) 网络通信、控制模块 该模块主要负责建立信息传输通道、发送信息、接收信息和解析信息。 根据功能实现的需要建立如下通道: 与学员端,主要分以下三个个通道: 通道一,传输控制信息、文字信息、操纵数据监控信息。采用点对点 通讯方式 通道二,传输文字、语音信息、视频信息,采用点对点或组播通讯方 式 通道三,发送连接请求命令,采用点对点通讯方式 与服务器: 通道一,文件、控制命令信息,采用点对点通讯方式。 2 ) 学员端操纵信息显示控制模块 此模块将从网络上接收的监控信息实时显示,此外,当教员选择操纵 信息监控功能后,通知网络通讯模块发送监控请求信息。 西南交通大学硕士研究生学位论文第l 顷 网络传输控制模块 学员 端操 纵信 息显 示控 制模 块 网 络 监 测 模 块 视频 图像 传输 与控 制模 块 系 统 登 录 模 块 文字 语音 通讯 控制 响应 模块 信号 故障 事件 触发 控制 模块 学员 端操 纵权 切换 控制 模块 3 - 4 与学员端通讯的软件模块结构图 3 ) 学员端操纵控制权切换模块 根据教员选择的操纵权拥有者,判断是捕获操纵动作( 鼠标或键盘的 模拟信息) 还是模拟操纵动作或者是停止捕获或模拟操纵,与此同时,通 过网络通讯模块发送控制命令通知相应学员端做出相应响应。 4 ) 观摩控制模块 该模块根据观摩及被观摩对象的不同选择: a 判断加入观摩组的学员。 b 判断视频图像传输方式( 即是接收还是发送视频) 并通知相应学 员端。 5 ) 视频图像接收与传输控制模块 当接收图像时:解压,显示图像。发送时:截取、压缩图像。 6 ) 文字、语音通信控制、响应模块 a 该模块根据教员的选择,控制学员端文字、语音通信功能开寤关闭 ( 其中包括点对点和一对多通讯方式) 。 b 根据教员选择将信息一次发给任意一个或多个学员 c 文字、语音信息的获取及文字的显示和声音的播放。 7 ) 信号、故障、事件触发控制模块 根据界面输入,通过网络通信模块,控制学员端信号、故障、事件触 发。 观摩对象控制模块 西南交通大学硕士研究生学位论文第l 项 8 ) 教员登录模块 根据教员输入的代号及i d 验证教员身份。当验证成功通知学员端建 立连接。 9 ) 网络监测模块 此模块通过网络通讯模块,定时向在线学员端依次发送检测包,如在 限定时间内收到监测包,则认为网络连接正常,否则,认为断开并给与提 示。当判定某学员端己与教员端断开连接后,通知网络通讯模块,清除与 该学员通讯的套接字。 3 4 服务器端软件结构 服务器端大致由界面管理模块、网络通讯模块、课程文件管理模块、 线路文件、视频文件管理模块、学员信息( 包括个人信息和操纵信息) 管 理模块构成。服务器端主要提供文件下载、上传及创建、修改功能,软件 整体结构如图3 5 所示: 3 - 5 服务器端软件结构框图 西南交通大学硕士研究生学位论文第1 顽 第4 章基于网络通讯的部分功能设计与实现 4 1 教员端与学员端基本通讯数据传输方式的实现 4 1 1 网络通讯的理论基础 4 1 1 1 通讯协议的选择 由于教员端与学员端通讯的最基本信息是控制命令信息,因此,我们 也称其为基本通讯数据。然而,要想实现数据在网络上传输,我们首要解 决的问题就是选择通讯协议,考虑到t c p i p 协议的通用性,以及在 w i n d o w s 平台上采用v c 所支持的s o c k e t 编程很容易实现基于这种协议的 遥信,在此,我们选择了此通讯协议。 通常所说的t c p i p 协议实际上是一个族,它包括i p ( i n t e r n e t p r o t o c 0 1 ) 网间协议、t c p ( t r a n s m i s s i o nc o n t r o lp r o t o c 0 1 ) 传输控制 协议、u d p ( u s e rt r a n s f e rp r o t o c 0 1 ) 用户数据报协议、h t t p ( h y p e r t e x t t r a n s f e rp r o t o c 0 1 ) 超文本传输协议等等i ”。当利用s o c k e t 进行通讯, 有两种主要方式:第一种是面向连接的流式方式,t c p i p 协议族中的t c p 协议使用的就是流式套接字,它提供双向、面向连接的、可靠、有序、无 重复的数据流服务,优点是对数据有校验和重发机制,能保证传输数据的 可靠传输,但需要先建立连接。第二种是无连接的数据报文方式,t c p i p 协议族中的u d p 协议使用的就是数据报套接字,它提供面向无连接的服 务,以独立的信息包进行网络传输,信息包的最大长度为3 2 k b 。数据报 套接字由于取消了重发校验机制,没有可靠、有次序、不重复的保证【2 ”。 但由于其不需要事先建立连接,通讯双方可随时进行通讯,因此,可以用 于传输对数据可靠性要求不高的数据。 4 1 1 2 基于s o c k e t s 的网络通信原理 套接字( s o c k e m ) 最初是由加利福尼亚大学b e r k e l e y 分校为u n i x 操作 系统开发的网络通信接口,随着u n i x 操作系统的广泛使用,套接字成 为当前最流行的网络通信应用程序接口之一1 3 j 。 正如上文所提到的在w i n d o w s 平台上采用v c + + 所支持的s o c k e t 编程 很容易实现基于t c p i p 协议的通信,因此,我们选择用s o c k e t 构造教 西南交通大学硕士研究生学位论文第1 7 # i 员端与学员端的基本通讯数据传输方式。 当用套接字进行通讯,可以将其看作是不同主机间的进程进行双向通 信的端点,每个网络对话包括两个端点:本地主机( 或进程) 和远端主机( 或 进程) ,它构成了在单个主机内及整个网络间的编程界面。套接字通常和 同一个通讯域( 通讯域是为了处理一般的线程通过套接字通讯而引进的一 种抽象概念,如i n t e r a c t 域 2 8 1 ) 中的套接字交换数据,各种进程使用这个 域互相之间用t c p i p 协议体系来进行通讯。 通常,所开发的网络通信应用程序并不能直接与t c p i p 核心打交 道,而是与网络应用编程接口w i n s o c ka p i ( a p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ) 打交道,w i n s o c ka p i 则可直接与t c p i p 核心进行沟通。 w i n s o c ka p i 在继承了套接字主要特征的基础上,又对它进行了重要扩 充,如提供了异步处理函数,增加了符合w i n d o w s 消息驱动特性的网络 事件异步选择机制,这些扩充有利于应用程序开发者编写符合w i n d o w s 编程模式的软件,它使在w i n d o w s 下开发高性能的网络通信程序成为可 能。应用程序调用w i n s o c k a p l 实现相互之间的通讯,w i n s o c k 又利用下 层的网络通讯协议功能和操作系统调用实现实际的通讯工作。这样就隐藏 了网络底层复杂的结构和协议,应用程序在网络上传输、接收的信息都通 过这个s o c k e t 接口来实现“”。在应用程序中就像使用文件句柄样, 可以对s o c k e t 句柄进行读、写操作。应用程序与w m s o c k 的关系如 图4 1 所示。 套接字地址通常包含协议类型,i p 地址。端口号三个要素。对于每一台 计算机来说,i p 地址是唯一的,但端口号可有多个,这样可以通过端口号 来区分用户的不同传输控制。在此,我们通过分配不同的端口号来区别教 员端与学员端建立的不同传输通道。 4 1 1 3 基于s o c k e t s 的网络编程实现 根据网络通信的特性。套接字可分为两类:流式套接字和数据报套接 字。 流式套接字通讯时序模型 3 0 j 如4 - 2 示: 流套接字编程模型( ( t c p 传输模型) 流套接字的服务进程和客户进程在通信前必须创建各自的套接字并 建立连接,然后才能对相应的发送和接收操作,实现数据的传输。 西南交通大学硕士研究生学位论文第l 顷 应用程序 一一应用程序 lj 网络编程接口如:w i n d o w ss o c k e m if 网络通讯协议如;t c p i p 协议 it l 操作系统如:w i n d o w s lt l 物理通讯介质 4 1 应用程序与w i n d o w ss o c k e t 关系 具体编程步骤如下: 1 ) 服务器进程创建套接字。 服务进程总是先于客户进程启动,服务进程首先调用s o c k e t 函数创建一 个流套接字。 s o c k e t 函数的原型如下: s o c k e ts o c k e t ( i n ta f , i n tt y p e ,i n tp r o t o c 0 1 ) : 2 ) 将本地地址绑定到所创建的套接字上以在网络上标识该套接字。这 个过程是通过调用b i n d 函数来完成的,该函数原型如下: i n tb i n d ( s o c k e ts ,c o n s ts t r u c ts o c k a d d r * n a m e ,i n tn a m e l e n ) ; 3 ) 将套接字置入监听模式并准备接受连接请求b i n d 函数的作用只是 将一个套接字和一个指定的地址关联在一起,让一个套接字等候进入连接 的a p i 函数则是l i s t e n 其原型为: i n tl i s t e n ( s o c k e ts ,i n tb a c k l o g ) ; 如无错误发生,l i s t e n 函数返回0 ,若失败则返回s o c k e te i 浓0 r 错误,最常见的错误是w s a e i n v a l ,该错误通常表示套接字在l i s t e n 西南交通大学硕士研究生学位论文第1 9 页 服务器 s o c k e t ( ) 工 h i n d r l l 1 i s t e n n 客户机 l l a c c e o t d s o c k e t 0 l建立连接 工 咀寒,等擘客户连_ l c o n n e c t 0 l 请求数据 。 工 lr e c v oi is c i l 出1 l 处理服务请求 r i 鳓竿 i “5 “”i r e e v o l 。 上 s h u t d o w n 0 s h u t d o w n 1 l上 c l o s e 0 c l o s e 0 4 - 2 流式套接字通讯时序模型 之前没有调用b i n d 。进入监听状态之后,如有连接请求,通过调用a c c e p t 函数使套接字做好接受客户连接的准备。 a c c e p t 函数的原型为: s o c k e ta c c e p t ( s o c k e ts s t r e e ts o c k a d d r a d d r , i n t + a d d r l e n ) ; 4 ) 客户进程调用s o c k e t 函数创建客户端套接字。 5 ) 客户向服务进程发出连接请求。通过调用e o n n e c t o 函数可以建立一个 端的连接。c o r n e t 函数原型为: i n tc o n n e c t ( s o c k e t s , n a m e l e n ) ; 6 ) 当连接请求到来后,被阻塞服务进程的a c c e p t o 函数如( 3 ) 中所述生成 一个新的套接字与客户套接字建立连接,并向客户返回接受信号。 西南交通大学硕士研究生学位论文第颂 7 ,一但客户机的套接字收到来自服务器的接受信号,则表示客户机与服 务器己实现连接,则可以进行数据传输了。s e n d ( ) ;r e c v ( ) 函数是进行 数据的收发的函数。 s e n d 函数的原型为: i n ts e n d ( s o c k e ts ,c o n s tc h a t * b u i n tl e n ,i n tf l a g s ) ; r e c v 函数的原型为: i n tr e e v ( s o c k e ts 。c h a b u 双h a tl e n , i n tf l a g s ) ; 8 ) 关闭套接字。一旦任务完成,就必须关掉连接以释放套接字占用的所 有资源。通常调用c l o s e s o c k e t 函数即可达到目的,但c l o s e s o e k e t 可能会 导致数据的丢失,因此,应该在调用c l o s e s o c k e t 函数之前,应调用s h u t d o w n 函数从容中断连接,即发送端通知接收端“不再发送数据”或接收端通知 发送端“不再接收数据。 s h u t d o w n 0 函数的原型为: i n ts h u t d o w n ( s o c k e ts ,i n th o w ) e l o s e s o c k e t 0 函数的原型为: i mc l o s e s o c k e t ( s o c k e ts ) 数据报套接字编程模型c o d p 传输模型) 数据报套接字是无连接的,它的编程过程比流套接字要简单一些。对 于接收端( 一般为服务端) ,先用s o c k e t 函数建立套接字,再通过b i n d 函数 把这个套接字和准备接收数据的i p 地址信息绑定在一起,这和前面流套 接字一样。但不同的是它不必调用l i s t e n 和a c c e p t ,只需等待接收数据。 并且由于它是无连接的,因此它可以接收网络上任何一台机器所发的数据 报。常用的接收数据函数是 r e c v f i o m ,它的原型为: i n t r e c v f i o m ( s o c k e ts , c h a r yb u r ; i n tl e n ,i n t f l a g s , s t r u c t s o c k a d d r * f t o m , i n t + f r o m l e n ) ; 对于发送端的数据报套接字来说,发送数据的方式与流式套接字一 样,建立一个套接字,然后调用s e n d t o 函数。 s e n d t o 函数的原型为: i n ts e n d t o ( s o c k e ts ,c o a s tc h i l l 4b u r , i n tl e a ,i n tf l a g s ,c o n s ts t r u c t s o c k a d d r * t o ,i n tt o l e n ) : 因为数据报套接字没有连接,所以也不会有正式的关闭和从容关闭之 分,在接收端或发送端结束收发数据时,只是在套接字句柄上调用 西南交通大学硕士研究生学位论文第2 顷 c l o s e s o c k e t 0 函数来释放套接字资源。 数据报套接字编程时序模型如图4 - 3 所示: 服务器 s o c k e t o 客户机 上 b i :n d o l s o c k e t ( 3 i 工 上 r c a d f i o m o l b i n d 0 l l 阻塞,等待客户数 上。二。+ , m 瞻; - 、i - s e a e u l l 5 。型广。1r e a d f r o m 0i r i c l o s e 0 l c i o s e 0 i 4 3 数据报套接字编程时序图 4 1 2 教
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 晶圆生产车间设备管理制度
- 多模态数据融合中的混淆矩阵分析-洞察阐释
- 水产公司环境卫生管理制度
- 注册公司行业控股管理制度
- 演艺工程公司装备仓库管理制度
- 牙科医院特种设备管理制度
- 物流公司信息安全管理制度
- 生态流量监测设备管理制度
- 疫情街道消杀设备管理制度
- 社区食堂终端设备管理制度
- 高频课程设计-中频放大器
- 《计算机操作系统》(第4版)笔记和课后习题(含考研真题)详解
- 国家自然科学奖
- 红色大气谢师宴高考喜报PPT模板
- 市政道路公路工程监理规范
- 通信线路投标文件
- 集结号观后感 集结号观后感500字(最全)
- 沪教版一年级下册数学期末试卷
- 模电简答题汇总
- 项目验收单(简洁版模板)-项目验收单模板
- 安监人员看图查违章试题题库
评论
0/150
提交评论