基于Lab Windows/CVI的动态网络通信平台的搭建

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:seair123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对Lab Windows/CVI中的DataSocket技术和NI网络变量只能手工、静态分配采集端资源的问题。该文设计和实现了一个基于虚拟仪器的网络通信平台,使得多个客户端可以同时和多个采集端进行通信,并动态的申请和释放采集端资源。
  关键词:Lab Windows/CVI;远程测控;动态资源分配
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2138-03
  Construction of a Dynamic Network Layer Based on Lab Windows/CVI
  PENG Han, CAI Ying-chang
  (Department of Computer Engineering, Xi'an Aerotechnical College, Xi'an 710077, China)
  Abstract: DataSocket technique and NI network variable of Lab Windows/CVI can only allocate gatherresource statically. To resolve this problem, this paper designed and implements a dynamic network layer based on virtual instrument .The network layer made it possible for multi-client and multi-gather to communicate with each other, and the client can allocate and release gather resources dynamically.
  Key words: lab windows/CVI; remote measurement; dynamic resources allocation
  
  1 引言
  
  随着计算机软硬件技术不断发展与提高,虚拟仪器技术已成为当前测控领域内的关键性技术。在远程测控与仿真方面,虚拟仪器网络化已被应用到测控技术中的各个领域。NI的DataSocket技术为底层通信协议提供了一致的API,编程人员无需为不同的数据格式和通信协议编写具体的程序代码。但DataSocket的缺陷是它对客户端和采集端(仪器设备)的资源配置是静态的,即客户端和采集端的连接必须在测控系统运行之前手工配置,客户端无法动态的申请和释放采集端的资源。虽然美国NI(National Instrument)公司在Lab Windows/CVI的最新版本用网络变量(Network Variable)代替了DataSocket,但还是没有改变这一静态特性。当多个客户端要求控制多个采集端资源进行数据采集,并要求在新的任务中重新申请新的资源时,DataSocket和网络变量就显得不够灵活,无法满足系统的需求。针对这一点,本文设计了一个能为多个客户提供动态申请和分配采集端资源的网络通信层,用Lab Windows/CVI的TCP库实现。对模块的使用者封装了底层的通信细节,用户只要调用本模块提供的外部接口即可。
  
  2 设计思想
  
  2.1 系统要求
  根据用户的要求,本采集系统应具备动态的按需分配采集端资源的能力,可以有多个客户端,每个客户端可以申请若干数量的采集端资源进行数据采集,本次采集完毕后应该能释放采集端资源让其他的客户端使用。如果要重新开始一次新的采集任务,则应再次重复这个申请资源->使用资源->释放资源的过程。
  2.2 系统的总体设计思想
  依据软件设计的模块化的原则,我们忽略采集端的数据采集过程和客户端的数据分析、处理过程的细节,只考虑网络通信层的设计,根据用户要求,提出了如图1所示的总体设计思想。
  图1中的采集端为嵌入式主机,而客户端为用户使用的PC。数据库服务器负责维护一个资源占用情况表,表中为每个采集端资源建立了一个记录项。记录项中有一个字段是资源占用位。初始时所有的资源都被标记为空闲,即表中每一项的资源占用为都为0(表示本资源空闲)。当一个用户开始一个数据采集任务时,客户端程序自动到数据库服务器中查询资源占用表,若找到足够的空闲资源,则把这些资源对应的记录项的资源占用位标记为1(表示本资源已被占用)。此后,客户端从数据库服务器获得这些可用资源的IP地址,并依次连接这些采集端,发送各种采集指令,采集端执行采集指令并返回结果。客户端完成一个采集任务后,断开与所有采集端的连接并将数据库服务器中相应的资源设置为空闲状态。
  
  3 设计与实现
  
  网络通信模块设计的难点并不在于客户端与采集端的通信,而在于一个客户端要同时给多个采集端发送命令,并同时接收多个采集端发回的响应数据。而采集端必须在完成一次采集任务后能被其他的客户端使用。基于此,设计和实现了客户端和采集端网络通信模块。
  3.1 客户端通信模块设计
  为了让客户端能同时和多个采集端同时通信,采用了多线程技术,让每个工作者线程负责与一个采集端的通信。在客户端通信模块中设计了一个ClientInfo数据结构,用来记录每个工作者线程的相关信息,如图2所示。
  用一个CVI定义的列表结构ListType来存放所有工作者线程的信息:
  Static ListType gClientList = 0;
  只要和一个采集端建立的连接,就为它开启一个工作者线程,并把相关信息放入gClientList中;同样,完成采集任务后,与采集端断开连接并释放相应的工作者线程,然后从gClientList中删除相关信息。
  客户端通信模块提供了5个外部接口供用户调用,如表1所示。
  其中RegisterServer()函数封装了CVI的TCP库中的函数RegisterTCPServer(),服务器回调函数ServerCallback的伪代码如图3所示。
  可以看到,ServerCallback()函数只处理了数据的接收,而发送数据时应调用SendCmd()函数,它可以根据指定的IP地址找到与这个采集端通信的工作者线程,然后让这个工作者线程去发送采集命令。
  Clearup()函数在一次采集任务完成后进行必须的清理工作,包括与所有的采集端断开连接,终止所有的工作者线程并清空gClientList列表,最后调用UnregisterTCPServer函数以终止TCPServer。
  
  图3 客户端ServerCallback()函数
  3.2 采集端通信模块设计
  采集端要在数据采集的同时与客户端通信,因此也要开启一个工作者线程负责与客户端的通信。采集端通信模块只为用户提供了3个外部接口,如表2所示。具体的通信过程都由通信模块的内部函数实现。
  3.3 客户端与采集端的通信
  客户端与采集端的实际通信过程如图4所示。采集端启动后把自己的机器注册为一个TCPServer。客户端在启动后先从数据
其他文献
摘要:该文主要介绍了一款内嵌硬件TCP/IP协议栈的高速网络芯片FS8610,及其构建Web服务器的过程。该过程包括硬件连接,TCP/IP协议的实现以及服务器的构建。  关键词:FS8610;Web服务器;TCP/IP  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)35-2116-02  Web Server Application Design Base on F
期刊
摘要:由于使用无线传输和网络的开放性,移动通信面临着很多安全威胁。该文重点研究CDMA系统空中接口的安全机制,详细分析了针对主动攻击的鉴权机制的原理和过程,以及被动攻击的加密机制,其中重点介绍了一种数据加密技术——混合密码体制。  关键词:CDMA系统;安全机制;实体鉴权;空中接口;蜂窝鉴权和话音加密算法;混合密码体制  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)
期刊
摘要:基于JXTA平台,该文设计与实现了P2P环境下的文件共享系统,该系统具有资源管理、资源共享及节点检索等特点。最后对系统进一步开发进行了简单的探讨。  关键词:P2P;JXTA;CMS;文件共享  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2106-02  The Design and Implementation of P2P File-sharing
期刊
摘要:企业遗留系统的复用是企业信息化阶段必须解决的问题,本文提出了一种基于SOA的企业遗留系统复用框架,通过Web Services将遗留系统的功能模块包装成服务来实现复用并结合实例予以证实,较好地解决了企业遗留系统的复用问题。  关键词:遗留系统;SOA;复用;web services  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)35-2072-02  Rese
期刊
摘要:介绍了Darwin streaming server(DSS)源码的架构和核心流程;详细分析了Darwin streaming server的关键技术:媒体封包和流量控制;最后给出了Darwin streaming server的应用实例。  关键词:RTP;流媒体;Darwin Streaming Server(DSS)  中图分类号:TP311文献标识码:A文章编号:1009-3044(
期刊
摘要:论文分析慢启动、拥塞避免、快速重传、快速恢复等四个拥塞控制阶段的特点。利用OPNET Modeler软件构建了一个简单的网络模型,在此基础上分别对Tahoe,Reno,New Reno,SACK等拥塞控制算法进行仿真,对比研究了它们各自的不同点。  关键词:OPNET仿真;拥塞控制;TCP  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2093-02  
期刊
摘要:本文基于Linux 2.4.19平台以及新型的移动终端应用处理器unity805plus,给出一种运用SUBB1400芯片中触摸屏控制器模块实现触摸屏驱动的方案。分别从硬件,软件的角度阐述了触摸屏驱动的初始化设置、中断以及后台进程、信号量在笔点击事件处理流程中的应用。  关键词:嵌入式Linux;触摸屏;字符设备驱动;UCB1400  中图分类号:TP391 文献标识码:A 文章编号:100
期刊
如果你使用的是最新版本的Chrome内核的Edge浏览器(下载网址:https://www.microsoftedgeinsider.com/zh-cn/download),那么可以体验到许多新鲜的功能,这里介绍两则比较实用的快捷技巧。  技巧一:一键打开相同的标签页  某些时候,我们需要同时打开多个相同的标签页,常规的步骤是复制页面地址后在新的标签页打开,操作相当烦琐,现在只需要右击当前标签页,
期刊
摘要:以《计算机图形学》这门课程为例,介绍多媒体CAI课件在计算机教学中的应用。文章重点论述了基于Authorware的多媒体教学软件的设计思路和交互式功能、ActiveX控件、知识对象等关键技术的实现。经过教学实践,该课件取得了较好的效果。  关键词: CAI;多媒体;Authorware;交互式;计算机  中图分类号:TP37文献标识码:A文章编号:1009-3044(2008)35-2067
期刊
摘要:模型检查工具SPIN的核心是PROMELA语言,对PROMELA语言执行方式的理解决定所描述系统模型的行为方式。该文从语义角度研究了 PROMELA语义引擎问题。首先给出PROMELA语法的抽象对象模型形式化定义,然后给出一个算法来实现PROMELA语法到抽象对象模型的映射,描述 了PROMELA指称语义。  关键词:模型检查;SPIN;PROMELA;语义  中图分类号:TP315文献标识
期刊