LabVIEWCompactRIO 开发指南17 网络流 |
您所在的位置:网站首页 › labview连线所连接的隧道无法确定数据流方向 › LabVIEWCompactRIO 开发指南17 网络流 |
LabVIEWCompactRIO 开发指南17 网络流 网络流类似于队列函数,因为它们是基于FIFO的,但与队列函数不同的是,网络流具有网络作用域。它们是为通过以太网进行无损、高吞吐量数据通信而设计和优化的,并且它们具有增强的连接管理功能,如果由于网络中断或其他系统故障而断开连接,则可以自动恢复网络连接。流使用缓冲的无损通信策略,确保写入流的数据永远不会丢失,即使在具有间歇性网络连接的环境中也是如此。 由于网络流构建时具有与原始TCP相当的吞吐量特征,因此它们非常适合程序员希望避免TCP复杂性的高吞吐量应用程序。还可以使用流进行无损、低吞吐量的通信,例如发送和接收命令。 网络流使用单向点对点缓冲通信模型在应用程序之间传输数据。这意味着一个端点是数据的写入者,另一个端点是读取者。应用程序可能需要多个流来通信多种类型的数据,如图4.13所示。 图4.13 网络流使用单向、点对点缓冲通信模型 图4.13显示了一个基本的Network Streams实现。一个进程在实时目标上执行,另一个进程在主机上执行。可以遵循三个基本步骤来设置网络流: 1. 创建端点并建立流连接 2. 读取或写入数据 3.销毁端点 创建端点 一旦创建了兼容的读取器和写入器端点,就建立了连接。创建端点的顺序并不重要。流要尝试重新连接,必须至少有一个端点处于活动状态。 图4.14 创建读取器和写入器端点。 如果发生断开连接并且一个端点变为非活动状态,则协议将在后台自动执行重新连接。该协议永远重试,保持数据流的无损特性。当协议尝试重新连接时,活动端点输出一条错误消息,通知用户端点无法重新同步。还可以使用图4.15所示的网络流端点属性节点来监视流是否连接。 图4.15 使用属性节点监视网络流端点连接状态 读写数据 当读取或写入网络流时,可以一次写入单个元素或多个元素,这取决于选择的网络流函数。数据永远不会被覆盖或重新生成,也不会发生部分数据传输。读/写函数要么成功要么超时。 图4.16 网络流的基本实现,通过网络传输数据 销毁端点 在销毁网络流端点之前,可以使用刷新流。VI以确保所有数据都已从写入器端点传输。如果选择“AllElements Read from Stream”,则写入器端点不会销毁自己,直到写入器缓冲区中的所有元素都被放入并从读取器缓冲区中读取。如果选择“All Elements Available for Reading”,一旦所有元素被放入读取器缓冲区,写入器端点就会自行销毁。 图4.17 使用冲洗流,VI关闭网络流 需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |