LabWindowsCVI入门之第三章计算机外设开发

上传人:新** 文档编号:456152214 上传时间:2022-09-17 格式:DOC 页数:30 大小:1.22MB
返回 下载 相关 举报
LabWindowsCVI入门之第三章计算机外设开发_第1页
第1页 / 共30页
LabWindowsCVI入门之第三章计算机外设开发_第2页
第2页 / 共30页
LabWindowsCVI入门之第三章计算机外设开发_第3页
第3页 / 共30页
LabWindowsCVI入门之第三章计算机外设开发_第4页
第4页 / 共30页
LabWindowsCVI入门之第三章计算机外设开发_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《LabWindowsCVI入门之第三章计算机外设开发》由会员分享,可在线阅读,更多相关《LabWindowsCVI入门之第三章计算机外设开发(30页珍藏版)》请在金锄头文库上搜索。

1、LabWindows/CVI入门之第三章:计算机外设开发通过上一章节的学习,大家已经掌握了在CVI下开发GUI应用程序的基本步骤和基本方法。CVI的重要应用是工业接口通信、复杂的数据采集和仪器控制系统的开发,所以对于学习CVI来说仅仅掌握GUI程序的开发还远远不够。实际生产生活中,有些设备要求能够满足军用或工业领域恶劣环境或极端天气下对于可靠性的要求,有些设备要求能够满足快速大容量数据的持续传输的要求,有些设备要求能够满足防尘防水防暴防震防撬的要求,有些设备要求满足低成本的要求,纷繁的要求导致了不同的接口标准以与接口协议的诞生。仅仅掌握了CVI下GUI的编程只能说是对CVI入门,却没有充分的体

2、会到CVI的精华。在纷繁的接口与个性化的需求下,开发简捷高效、稳定易用、用户体验良好的程序才是我们学习CVI的终极目标。3.1 计算机组件编程在本节中,我们将会接触到在CVI下进行文件操作、音频播放、OpenGL操作、SQL数据库查询、剪贴板操作、动态数据交换、ActiveX控件操作、调用.Net操作等相关内容。在介绍相关内容时,我们只介绍原理与CVI对应的函数功能,具体使用方法需要大家查询CVI的帮助文档。3.1.1 在CVI中进行文件操作在程序运行时,常常需要将一些数据(运行的最终结果或中间数据)输出到磁盘上存放起来,以后需要时再从磁盘中输入到计算机内存。这样就需要对文件进行读写操作,La

3、bWindows/CVI中对文件读写操作的常用函数如下:(1) OpenFile 打开一个文件用以读或者写,函数返回文件句柄;(2) CloseFile 关闭指定的文件;(3) ReadFile 从文件中读取指定字节数的内容到字符串缓冲区;(4) WriteFile 将字符串缓冲区中指定字节数的内容写到文件中;(5) ArrayToFile 将数组内容保存到文件中;(6) FileToArray 从文件中读取数据存储到数组中。(7) ReadLine 从文件读取字节直到换行。(8) WriteLine 将缓冲区中指定的字节数写入文件中,同时换行。(9) DeleteFile 删除文件(10)

4、RenameFile 重命名文件(11) CopyFile 复制文件下面给出了一个简单的新建test.txt文件,并且向文本文件中写入字符并读出来的例子。该函数运行之后,将在工程文件夹下新建一test.txt的文本文件,文件内容如图 31所示。程序运行结果如图 32所示。图31 文本文件内容图32 程序运行结果与文件读写有关的函数可以在Formatting and I/O Library的File I/O中找到,与文件操作有关的函数可以在Utility Library的File Utilities中找到,与文件夹有关的函数可以在Utility Library的Directory Utiliti

5、es中找到。另外,ANSI C中对文件的操作的函数如fopen、fread、fputs等函数在CVI中仍然可以使用。3.1.2网络通信:在CVI中调用TCP库在测控领域,随着网络计算、远程监控与远程诊断等在仪器仪表领域的应用与发展,网络通信已经成为仪器的基本功能。CVI也提供了Internet库、TCP库、DataSocket库以供用户使用。Internet库主要提供了FTP协议、Telnet协议以与POP3协议的客户端的函数支持。TCP库主要提供了基于TCP协议的网络数据收发函数。DataSocket库提供了比TCP更加方便有效的NI推出的DataSocket的操作函数。在本小节的介绍之前,

6、我们假设大家已经知道了TCP/IP协议、FTP协议、POP3协议、 协议、Telnet协议以与他们之间的相互关系,知道了IP地址、子网掩码、DNS、网关是什么。若对以上问题有含糊之处,建议立即通过Google等手段理解这些概念。本节主要介绍TCP通信的相关内容。利用TCP函数库进行网络传输都要涉与服务器端和客户端。TCP服务器可以通过网络向用户应用程序发送数据和从客户应用程序接收数据。TCP客户可以向TCP服务应用程序发送连接请求,并从服务器接收数据和向服务器发送数据。服务器需要注册,注册以后等待客户向它发送连接请求,而客户只能向已经存在的服务器发送连接请求。运行TCP服务器应用程序的计算机一

7、般叫做主机。服务器端的传输控制函数如下:(1) RegisterTCPServer 注册TCP服务器(2) ServerTCPRead 从客户端读取数据(3) ServerTCPWrite 向客户端发送数据(4) UnregisterTCPServer 注销TCP服务器(5) DisconnectTCPClient 断开与客户端的连接要是程序成为TCP服务器,必须要运行RegisterTCPServer函数。客户端的传输控制函数如下:(1) ConnectToTCPServer 连接到TCP服务器(2) ClientTCPServer 从服务器读取数据(3) ClientTCPWrite 向服

8、务器写数据(4) DisconnectFromTCPServer 断开与TCP服务器的连接另外CVI的TCP库还提供了TCP的回调函数,并提供了连接开始(TCO_CONNECT)、断开连接(TCP_DISCONNECT)以与数据有效(TCP_DATAREADY)3种消息。下面给出了一个简单的建立TCP服务器,并通过客户端连接TCP服务器的例子。在该示例程序中,TCP服务器运行后客户端向服务器发送“Hello,Im client.”的文本信息,服务器向客户端返回“OK”信息。TCP服务器代码如下:TCP客户端的代码如下:TCP服务器与TCP客户端的程序分别保存在两个不同的工程中。运行时,先运行T

9、CP服务器程序,再运行TCP客户端程序,运行效果如所示。图 33 TCP示例程序运行结果3.1.3 网络通信:在CVI中调用Internet库Internet库主要提供了FTP协议、Telnet协议以与POP3协议的客户端的函数支持。FTP是应用层的协议,它基于TCP协议,负责进行文件的传输。CVI通过封装隐藏了一些底层的FTP操作 ,提供了两个方便的FTP操作函数:(1) InetFTPAutoSend 将本地的文件传输到指定的远程服务器主机上(2) InetFTPAutoRetrieve 将指定远程服务器上的文件传输到本机上。Telnet协议也是应用层的协议,同样基于TCP协议,是Inte

10、rnet远程登陆服务的标准协议和主要方式。CVI提供了对Telnet操作的以下函数:(1) InetTelnetOpen 建立Telnet连接(2) InetTelnetRead 从Telnet服务器中读取数据(3) InetTelnetWrite 向Telnet服务器写数据(4) InetTelnetClose 关闭Telnet连接(5) InetTelnetReadUntil 从Telnet服务器中读取数据,直到遇到指定字符或达到指定字节数或者超时(6)InetTelnetRunScript 在Telnet服务器上执行指定的脚本POP3也是应用层的协议,基于TCP协议,规定个人计算机如何连

11、接到互联网上的服务器进行收发。POP3协议允许用户从服务器上把存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在服务器上的。CVI提供了对POP3操作的以下函数:(1) InetPop3Open 连接POP3服务器(2) InetPop3Close 关闭与POP3服务器的连接(3) InetPop3GetNumMessages 获取POP3服务器上的消息数量(4) InetPop3GetMessageSize 获取POP3服务器上消息的大小(5) InetPop3GetMessageInfo 获取POP3服务器上的具体信息(6) InetPop3DeleteMessage 删

12、除POP3服务器上的消息(7) InetPop3GetMessage 获取POP3电子消息头与内容(8) InetPop3ParseMessageHeader 解析POP3的消息头3.1.4 网络通信:在CVI中调用DataSocket库DataSocket技术是NI公司推出的面向测控领域的网络通信技术。DataSocket技术基于Microsoft的COM和ActiveX技术,对TCP/IP协议进行高度封装,面向测量和自动化应用,用于共享和发布实时数据DamSockd能有效地支持本地计算机上不同应用程序对特定数据的同时应用,以与网络和不同计算机的多个应用程序之间的数据交互,实现跨机器、跨语言

13、、跨进程实时数据共享。在测试测量过程中,用户只需要知道数据源和数据库与需要交换的数据就可以直接进行高层应用程序的开发,实现高速数据传输,而不必关心 底层的实现细节,从而简化通信程序的编写过程、提高编程效率。DataSocket包括DataSocket Server Manager(以下简称Manager),DataSocket Server和DataSocket API一部分。Manager是一个独立运行的程序,主要功能有:设置DataSocket Server连接的客户端程序的最大数目和创建数据项的最大数目:创建用户组和用户;设置用户创建和读写数据项的权限;限制身份不明的客户对服务器进行访问

14、和攻击。例如,将Manager中的Default Reader设置为everyhost,则网中的每台客户计算机都可以读取服务器上的数据。Manager对DataSocket Server 的配置必须在本地计算机上进行,而不能远程配置或通过运行程序来配置。DataSocket Server 是一个必须运行在服务器端的程序,负责监管Manager中所设定的具有各种权限的用户组和客户端程序之间的数据交换。DataSocket Server通过内部数据自描述格式对TCP/IP进行优化和管理,简化Internet通信方式,提供自由的数据传输,可以直接传送虚拟仪器程序所采集到的布尔型、数字型、字符串型、数

15、组型和波形等常用类型的数据。它可以和测控应用程序安装在同一台计算机上,也可以分装在不同的计算机上,以便用防火墙进行隔离来增加整个系统的安全性。DataSocket Server不会占用测控计算机CPU的工作时间,测控应用程序可以运行得更快。使用DataSocket技术进行通信时服务器和客户端得计算机上笔形都进行DataSocket Server。DataSocket API提供独立的接口,用于不同的语言平台内部多种数据类型的通读。在LabVIEW中,DataSocket API被制作成ActiveX控件和一系列功能VI(Virtual Instrument),用户可以方便地使用。一般由服务器进行数据采集,根据需要将测量地数据写入DataSocket 数据公共区,然后客户端通过网络从数据公共区读取所

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

当前位置:首页 > 办公文档 > 工作计划

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