虚拟仪器服务器端

上传人:cn****1 文档编号:487458011 上传时间:2023-04-27 格式:DOCX 页数:10 大小:137.38KB
返回 下载 相关 举报
虚拟仪器服务器端_第1页
第1页 / 共10页
虚拟仪器服务器端_第2页
第2页 / 共10页
虚拟仪器服务器端_第3页
第3页 / 共10页
虚拟仪器服务器端_第4页
第4页 / 共10页
虚拟仪器服务器端_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《虚拟仪器服务器端》由会员分享,可在线阅读,更多相关《虚拟仪器服务器端(10页珍藏版)》请在金锄头文库上搜索。

1、实习专业班级 学 生 姓 名 实 习 性 质 实 习 地 点 实习起讫日期 指 导 教 师学生实习报告测控技术与仪器2008-1张宗斌网络虚拟仪表设计校内2012-03-122012-03-25程万胜网络虚拟仪表设计(服务器端)一、实习目的:1 、掌握虚拟仪器技术。2 、熟悉 LabWindows/CVI 的基本使用方法。3 、掌握 LabWindows/CVI 常用面板、控件及基本函数库。4 、学会使用 TCP 库完成信号之间的传输。二、实习要求:1、两人一队,其中一人设计信号发送端,另一人设计信号接收端。2、发送端和接收端分别在不同的计算机上用网络TCP传送信息。3、设计完成后,各自完成自

2、己部分的设计报告。三、LabWindows/CVI 简介LabWindows/CVI 是 National Instruments公司(美国国家仪器公司,简称NI公司)推出的交互式C语言开发平台。LabWindows/CVI将功能强 大、使用灵活的C语言平台与用于数据采集分析和 显示的测控专业工具有 机地结合起来,利用它的集成化开发环境、交互式编程方法、函数面板和 丰富的库函数大大增强了 C语言的功能,为熟悉C语言的开发设计人员编 写检测系统、自动测试环境、数据采集系统、过程监控系统等应用软件提供了一个理想 的软件开发环境。NI公司的LabWindows/CVI是一个久经验证的用于测试 和测量

3、的ANSI C开发环境,极大地提高了工 程师和科学家们 的生产效率。他们使用LabWindows/CVI来开发高性能的、可靠的应用程序, 用于制造测试、军事/航天、通讯、设计验证和汽车工业等领域。开发人员 可以在设计阶 段利用LabWindows/CVI的硬件配置助手、综 合调试工具以及 交互式执行功能,来运行各项功能,使得这些领域的开发流水线化。使用 内置的测量库,你可以迅速的开发出复杂的应用程序,例如多线程编程和 ActiveX的服务器/客户端程序。由于LabWindows/CVI的便利性,你可以通 过在相似环境中重复使用以前的代码来维护你的代码投资,并且实现 Windows、Linux&

4、reg;或实时平台上分布测试系统的无缝集成。LabWindows/CVI是为C语言程序员提供的软件开发系统,在其交互式 开发环境中编 写的程序必须符合标准C规范。使用LabWindows/CVI可以 完成如下工作:交互式的程序开发;具有功能强大的函数库,用来创建数据采 集和仪器控制的应用程序;充分利用完备的软件工具进行数据采集、分析和显示;利用向导开发IVI仪器驱动程序和创建ActiveX服务器;为其它程序开发C目标模块、动态连接库(DLL)、C语言库。在LabWindows/CVI开发环境中可以利用其提供的库函数来实现程序 设计、编辑、 编译、链接和标准 C 语言程序调试。在该开 发环境中可

5、以用 LabWindows/CVI 丰富的函数库来编写程序,此外每个函数 都有一个叫做函 数面板( Function Panel )的交互式操作界面,在函数面板中 可以执行该 函数并可以生成调用该函数的代码,也可通过右击面板或控件获得有关函 数、参数、函 数类和函数库的帮助。在 LabWindnows/CVI 的交互式环境中 编写程序必须 符合标准 C 语言的规范。另外,在开发应用 程序时可以使用 编译好的 C 语言目标模块,动态链接库 (DLL),C 静态库和仪器驱动程序。 LabWindows/CVI 的功能强大在于它提供了丰 富的函数库。利用这些库函数 除可实现常规的程序设计外,还可实现

6、更加复杂的数据采集和仪器控制系 统的开发。仪器库是LabWindows/CVI的特殊资源。它包GPIB、VXI和RS-232 仪器的驱动程序,如示波器、多用表和函数发生器,每个驱动程序都提供 可编辑的源代码。使用 LabWindows/CVI 开发工具提供的库函数可以创建 自己的仪器驱动程序,可以创建单个仪器、多个仪器或实际上并不存在的 虚 拟仪 器的 驱动 程序 ,在 创 建 仪器 驱动 程序 过程中 可以 使用 LabWindows/CVI 的其它库函数。使用 LabWindows/CVI 的用户界面编辑器 可以创建并编辑图形用户界面(GUI),而使用LabWindows/CVI的用户界面

7、 库函数可以在程序中创建并控制GUI。此外,LabWindows/CVI为GUI面板 的设计, 准备了许多专业控件, 如:曲线图控件、带状图控件、表头、旋 钮和指示灯等, 以适应测控系统 软件开发的需求,利用这些控件可以设计 出专业的测控 程序界面。四、网络虚拟仪表的设计1、设计要求(1)设计一个服务器程序和客户程序。( 2)服务器程序启动后,弹出输入对话框,请求输入服务器端口号,根 据获得的端口号调用RegisterTCPServer函数,将本服务器注册为TCP服务器, 若注册成功,则把TCP服务器的IP地址和端口号在面板上显示出来,并且在TCP 回调函数中监控客户程序的连续并接受客户的数据

8、。在退出程序之前,调用 UnregisterTCPServer 函数,注销服务器。(3)在客户程序启动后,弹出输入对话框,请求输入服务器的IP地址 和端口号,客户程序根据TCP服务器的IP地址和端口号,调用ConnectToTCPServer函数与TCP服务器建立连接,若连接成功,则将TCP服务 器的IP地址和服务器名字在面板上显示出来。同时,在CLIENT回调函数中监控 服务器程序的连接并接受服务器的数据。在退出程序之前,调用 DisconnectFromTCPServer 函数,断开与服务器的连接。2、面板和控件属性设置TCP/IP 服务器面板如图所示,面板和参数设置见下表。TCP /IP

9、面板和参数设置面板或控件类型名称标题回调函数PanelPANELTCP/IP服务器设置服务器端无Text BoxkTransinit发送无StringSTRING无TxScrCallbackConmroand But t onCLEAR清空接收区ClearScreenCBConmroand But t onQUIT退出ExitText BoxkReceive接收无LEDCONNECTED通信连接无StringSERVERIP服务器IP地址无StringSERVERPORT服务器端口号无3、源文件由于源文件包括 TCP/IP 服务器程序和客户程序,其主要差别在于服务器回 调函数和客户回调函数的不

10、同,本报告主要描述服务器程序部分。TCP/IP服务器程序TCP/IP 服务器程序主要包括主程序 main ,数据发送程序 TxScrCallback, 服务器 回调函数程序 ServerCallback 和退出程序 Exit。(1)主程序主要完成端口号设置,服务器注册,以及获取、显示服务器IP 地址和端口号的功能。( 2) 数据发送程序主要完成数据接收和发送功能。要实现这一功能,主要 调用 ServerTCPWrite 函数。(3)服务器回调函数主要完成数据接收连接开始事件(TCP_CONNECT), 接收中断事件(TCP_DISCONNECT)和客户向服务器发送数据准备 好事件(TCP_DA

11、TAREADY)等功能。它主要用老获取服务器与客 户程序的连接句柄,从客户计算机中接收数据。服务器主要源程序如下:#include #include #include #include #include #include #include #include songliang.h/服务器回调函数int CVICALLBACK ServerCallback(unsigned handle,int event,int error,void *callbackData);intquit=0;intpanelHandle;unsigned covHandle;/主程序int main (int arg

12、c, char *argv)charportNumString32;char buffer512,tempBuf256;intnumLines,ctrl,handle,i;intportNumber;if (InitCVIRTE (0, argv, 0) = 0)return -1; /* out of memory */if (panelHandle = LoadPanel (0, songliang.uir, PANEL) 0) return -1;DisableBreakOnLibraryErrors();/输入服务器的端口号PromptPopup(“ 端口号,请输入客户需要连接的端口号

13、n(example:10000), portNumString,31);portNumber=atoi(portNumString);/加载用户面板panelHandle=LoadPanel(0,songliang.uir,PANEL); /SetPanelAttribute(panelHandle,ATTR_CLOSE_CTRL,PANEL_QUIT); /SetPanelAttribute(panelHandle,ATTR_TITLE,TCP Server);/SetPanelPos(panelHandle,VAL_AUTO_CENTER,VAL_AUTO_CENTER);InstallC

14、trlCallback(panelHandle,PANEL_kTransmit,TxScrCallback,0);DisplayPanel (panelHandle);/注册服务器if (RegisterTCPServer(portNumber,ServerCallback,NULL)0) MessagePopup(TCP Server,RegisterTCPServer failed!); return 0;SetActiveCtrl(panelHandle,PANEL_STRING);获取服务器的IP地址GetTCPHostAddr(tempBuf,256);/显示服务器的IP地址SetC

15、trlVal(panelHandle,PANEL_SERVERIP,tempBuf); /显示服务器的端口号SetCtrlVal(panelHandle,PANEL_SERVERPORT,portNumString);/显示主界面DisplayPanel (panelHandle);RunUserInterface ();/注销服务器UnregisterTCPServer(portNumber);DiscardPanel (panelHandle);return 0;int CVICALLBACK TxScrCallback (int panelHandle, int controlID, int event, void *callbackData, int eventData1, int eventData2)int numLine

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 电气技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号