python与Labview进行数据通信(UDP)
python作为服务端使用udp发送数据,labview作为客户端接收数据。
服务端程序
import signal
import threading
import sysimport socket# 创建Socket,SOCK_DGRAM指定了这个Socket的类型是UDP
s_pattern = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s_fatigue = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定端口:
s_pattern.bind(('127.0.0.1', 61556))
s_fatigue.bind(('127.0.0.1', 61555))
# 设置接收超时,此时间应大于服务端完成一次采样的时间
s_pattern.settimeout(1)
s_fatigue.settimeout(1)
print('Bind UDP on 61556...')# 定义按下Ctrl+C时退出的处理
def client_exit(num, frame):print("退出数据收集")s_pattern.close() # 关闭Sockets_fatigue.close()sys.exit(0)signal.signal(signal.SIGINT, client_exit) # 对于KeyboardInterrupt的handlder处理
exit = threading.Event() # 创建一个eventwhile not exit.is_set(): # 当exit事件没有set时,循环运行s_pattern.sendto(b'3',('127.0.0.1', 61557)) # 向服务端发送模式数据s_fatigue.sendto(b'0.5',('127.0.0.1', 61558)) # 向服务端发送疲劳数据
在绑定端口时,是绑定本机的ipv4地址和端口,如果报错的话可以检查端口是否占用和增大接收超时数值。如果是同一个局域网下两个不同的机器之间进行通信,需要将bind绑定的ip地址改为本机的ip,sendto的地址改为接受电脑的ip地址。
接收端程序
labview接收程序是仿照simpleUDP官方示例修改的,程序框图如下:
在python发送数据中绑定了客户端ip地址,就不需要在labview客户端指定发送端的ip地址,注意上面框图中的receive port需要和python中sendto端口相同。
实验
发送3和0.5:
附件代码
Github仓库地址,本文首发于Nickxie的博客。
python与Labview进行数据通信(UDP)相关推荐
- 如何用Python实现多任务版的udp聊天器
这篇文章主要为大家详细介绍了Python实现多任务版的udp聊天器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一.案例示例 二.案例说明 1.编写一个有2个线程的程 ...
- 使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本
使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本 文章目录 使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本 前言: 背景 tm ...
- python监听多个udp端口_Python的Socket编程过程中实现UDP端口复用的实例分享
关于端口复用 一个套接字不能同时绑定多个端口,如果客户端想绑定端口号,一定要调用发送信息函数之前绑定( bind )端口,因为在发送信息函数( sendto, 或 write ),系统会自动给当前网络 ...
- Python标准库socketserver实现UDP协议时间服务器
Python标准库socket提供了套接字编程所需要的绝大部分功能,更多案例详见文末相关阅读. 很久之前推送过一个使用标准库socket实现UDP协议时间服务器的代码,参考 Python使用UDP协议 ...
- 【计算机网络】python——socket编程(TCP/UDP)
前言 以前做了实验都是直接分享实验报告.反思了一下,实验报告又臭又长,最多只有同做这个实验的朋友会耐着性子看一看.为了提供更有效的知识分享,能为更多的朋友提供一些参考,以后的文章我都会尽量主题鲜明,简 ...
- 浅谈仪器控制【1.Python与Labview/Labwindows】
(一) Python Python是一种易于学习的脚本语言,开发周期短.它有专门控制仪器的库函数Pyvisa,代码简洁且支持各种科学计算.一般情况下,我们可以使用SCPI命令控制仪器,也可以加载仪器函 ...
- 使用Python读取LabVIEW TDMS 格式文件转成 pandas及Excel
个人用Django开发的博客已上线,欢迎访问:https://www.zhibibin.com Labview的TMDS格式文件在很多偏硬件相关的工作中经常出现,有时候面临将TDMS转成Excel通用 ...
- python和labview的区别_测量仪器科普:LabVIEW与虚拟仪器那点事
说起LabVIEW编程软件,大家接触的时候大多是与虚拟仪器分不开的,这儿理一下什么是虚拟仪器,什么是LabVIEW,它们之间关系是怎样的,下面作个简单的说明,以便记录及理解. 1.何谓虚拟仪器 &qu ...
- python通信模块库_python-基于UDP通信的套接字,socketserver模块的使用
一.基于UDP协议通信的套接字 udp是没有链接的,所以先启动哪一端都不会报错 importsocketserver=socket.socket(socket.AF_INET,socket.SOCK_ ...
最新文章
- C++/C++11中std::set用法汇总
- linux端口找进程,Linux查看端口、进程情况及kill进程的方法
- display:inline-block的深入理解 转
- α稳定分布噪声基本原理及基于Chambers Mallows Stuck算法生成噪声并对信号加噪
- 点击开启此虚拟机时,出现“该虚拟机似乎正在使用中”问题
- 【转】Linux 移动或重命名文件/目录-mv 的10个实用例子
- wxpython 隐藏_使用cxFreeze冻结wxPython应用程序时如何隐藏控制台窗口?
- cisco 交换机 获取 转发表_看完这份1113页的TCP/IP协议+路由与交换机,成功上岸字节跳动...
- wineskin下plsql解决中文乱码问题
- 禁忌搜索算法求解 TSP 问题的代码示例
- .NetCore控制台应用程序
- 对话机器学习大神Yoshua Bengio(下)
- “Microsoft Internet Explorer”,微软的最后一款IE,以此命名——IE6!
- 三相电机控制方式入门,看完这一篇就够了
- Thinkpad T410加内存
- IDEA下载源码报错 Cannot reconnect.
- jdt eclipse_Eclipse JDT语言服务器项目
- vue框架中使用高德地图自定义icon问题
- 全球注意力缺陷多动障碍(ADHD)市场规模2021年大约为796亿元(人民币),预计2028年将达到1259亿元
- matlab噪音的消除办法,基于MATLAB的噪声消除方法.ppt