LabVIEW开发TCP网络通讯程序4

简介: LabVIEW开发TCP网络通讯程序4

LabVIEW开发TCP网络通讯程序4


创建连接处理程序


现在终于准备好实现管理这些消息的可重入命令处理程序了,关键点确保它是完全可重入的。这意味着,如果VI的主要子VI不是,那么VI本身可重入几乎没有好处。那么什么是“主要”子VI?需要考虑的两件事是:


子VI多久执行一次?如果子VI在初始化期间很少执行或只运行一次,则使其可重入可能不利。


执行需要多长时间?同样,实现简单逻辑、快速执行的子VI可能不会像可重入代码那样提供很多好处。


将处理程序的整体结构定义为具有三个状态的状态机,对应于响应交互的三个阶段。所以需要做的第一件事(也是要执行的第一个状态),它的工作是从新的TCP连接读取整个消息,测试它的有效性,如果有效,则将命令传递给状态。

bab8a6a5ae884a599d65fb8571f4198e.png



协议要求每条消息以2字节计数开头,因此状态首先从接口读取两个字节,将生成的二进制值转换为U16数字,然后使用该数字读取消息的其余部分。然后,为了验证消息,代码对整个消息(包括末尾的CRC)执行CRC计算。如果消息和CRC有效,则此计算的结果将始终为0。代码会从字符串的末尾剥离CRC,并将字符串的剩余部分发送到子VI中,子VI将JSON对象转换为LabVIEW对象。这里选择了一种面向对象的方法,因为它实际上简化了代码,并且它提供了一个清晰的路线图,说明如果用户决定在未来添加更多接口命令,需要做什么。


状态调用一个动态调度方法,该方法负责通过定义的事件与应用程序的其余部分进行接口,并格式化要发送给调用方的响应。这部分代码的对象模型有5个子类(每个命令一个),当JSON命令结构不包含有效的命令对象时,父类用作默认值。


b0c5a08eeaba40d08d98eff178e9dd49.png

此处的作用是处理从远程访问引擎返回的响应,以及读取图形数据的事件的逻辑。由于响应通知程序中返回的变体可以是文本错误消息,也可以是实际数据数组,因此代码要做的第一件事是尝试将变体转换为字符串。如果此尝试失败并生成错误,用户知道响应包含数据,因此可以对其进行格式化以返回到远程调用方。如果变体成功转换为字符串,用户知道命令失败,并且可以将错误传递回调用方。


此时,已准备好将响应发送回调用方,因此状态机将转换为Send Response state。在这里,看到了格式化响应并将其传输到调用方的逻辑。


a90982e8de3b4ccbab71dc56cad4f0cd.png


由于消息的核心是响应Cluster的JSON表示形式,因此代码首先将Cluster平展为JSON字符串。但是请注意,它生成的字符串不包含多余的空格,因此它看起来与之前展示的JSON示例不同。接下来,逻辑计算返回消息的长度和JSON的CRC。这两个值分别添加到JSON字符串的开头和结尾,结果将写回TCP连接。


最后,状态关闭TCP连接并停止状态机循环,该循环也会停止并从内存中删除一直在运行的可重入克隆。


最后,需要再次测试验证。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
6月前
|
机器学习/深度学习 小程序 算法
基于bp神经网络的adp程序
基于bp神经网络的adp小程序
158 0
|
2月前
Vite使用svg-企业级开发(支持本地svg和网络svg渲染)
本教程介绍如何在Vite项目中集成SVG图标插件。首先安装`vite-plugin-svg-icons`,配置插件指向SVG图标目录,并注册全局组件。接着创建SVG图标组件,支持内部图标与外部图片展示。通过简单配置,即可在页面中灵活使用各类SVG图标,提升开发效率。
155 0
|
5月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
331 61
|
5月前
|
开发者
鸿蒙仓颉语言开发教程:网络请求和数据解析
本文介绍了在仓颉开发语言中实现网络请求的方法,以购物应用的分类列表为例,详细讲解了从权限配置、发起请求到数据解析的全过程。通过示例代码,帮助开发者快速掌握如何在网络请求中处理数据并展示到页面上,减少开发中的摸索成本。
鸿蒙仓颉语言开发教程:网络请求和数据解析
|
5月前
|
监控 安全 网络协议
恶意软件无处逃!国内版“Manus”AiPy开发Windows沙箱工具,进程行为+网络传输层级监控! 头像 豪气的
NImplant.exe 是一款后渗透测试工具,可实现远程管理与持久化控制。其优点包括无文件技术、加密通信和插件扩展,但也存在被检测风险及配置复杂等问题。为深入分析其行为,我们基于 aipy 开发了 Windows 沙箱工具,针对桌面上的 NImplant.exe 进行多维度分析,涵盖进程行为、网络连接(如 TCP 请求、目标 IP/域名)、文件控制等,并生成传输层监控报告与沙箱截图。结果显示,aipy 工具响应迅速,报告清晰易读,满足分析需求。
|
8月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
315 12
|
11月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
262 17
|
11月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
220 10
|
11月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
11月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
233 10

热门文章

最新文章