这个LabVIEW程序可以很容易地移植到Python上,将传感器数据转发到服务器上吗?

这个LabVIEW程序可以很容易地移植到Python上,将传感器数据转发到服务器上吗?,python,raspberry-pi,labview,Python,Raspberry Pi,Labview,我有一个别人写的Labview程序。LabVIEW中的代码片段: 有应变计,连接到CompactDAQ模块,然后通过以太网连接到笔记本电脑。 我想我有这个权利,因为这是一个简单的程序,每秒通过记录器对传感器进行采样,并将其写入CSV (但是,为了提取数据,必须停止程序,写入CSV文件,然后重新运行。除此之外,它还需要一台专用笔记本电脑来运行,而且由于我实际上需要数据一分钟一分钟地实时显示,这不是最好的解决方案。) 我想用Raspberry Pi替换笔记本电脑,将数据实时输入服务器,将应用程序

我有一个别人写的Labview程序。LabVIEW中的代码片段:

有应变计,连接到CompactDAQ模块,然后通过以太网连接到笔记本电脑。 我想我有这个权利,因为这是一个简单的程序,每秒通过记录器对传感器进行采样,并将其写入CSV

(但是,为了提取数据,必须停止程序,写入CSV文件,然后重新运行。除此之外,它还需要一台专用笔记本电脑来运行,而且由于我实际上需要数据一分钟一分钟地实时显示,这不是最好的解决方案。)

我想用Raspberry Pi替换笔记本电脑,将数据实时输入服务器,将应用程序移植到Python或任何最好的编码语言(我只建议使用Python,因为我至少对它了解一点)

我的问题:

1) 根据您的经验,哪种编码语言更适合用于此目的

2) 我理解得对吗

3) 我的想法是“所有”我需要做的就是让树莓与记录者对话,然后以字符串的形式将它从记录者那里接收到的任何东西定向到API,这是检索数据的正确方法吗

(我希望这是一种更好的提问方式?)

*编辑

好吧,看来我想要达到的目标是不可能的。使NI工具包工作所需的驱动程序和库非常庞大,并且驻留在主机上,我曾错误地认为我可以简单地读取以太网中的内容并将其转发,但事实似乎并非如此


如果有人知道不同,请大声说出来

要么自己学习LabVIEW,要么付钱给别人转换代码

如果你在学习自己,那就选一本好书,了解数据流是一个好的开始


如果您安装了将LabVIEW翻译成C的,您可能会得到一些帮助。但是,要获得合格的翻译并理解其含义,您必须有LabVIEW合格人员来设置C生成器,使用它并解释结果限制。

这当然是可能的。我使用了LabView,我认为它很好有三个原因。首先,它有利于与设备通信,尤其是国家仪器公司拥有的数据采集硬件,以及其他仪器。有很多预先编写的subVIs(函数的LabView)使这变得更容易。在Python中,您必须自己找出该语法。第二,LabView使用户界面非常简单。这对你来说似乎没什么大不了的。最后,LabView的有趣之处在于,并行连接的进程并行执行。这非常方便,而且在没有线程的Python中可能更难进行仿真。这对你来说似乎也不重要。我认为Python更适合处理文本。在LabView中有一种调试模式,它可以直观地逐步完成程序,这对了解发生了什么非常有帮助。寻找一个小灯泡图标


看看最近对您的问题的补充,您似乎正在尝试使用国家仪器CompactDAQ设备。National Instruments为其设备提供多个软件接口以及API(主要以PC为中心)。由于LabView对您隐藏了很多信息,您可能需要查看国家仪器支持页面以获取支持信息。特别是我会看看这个,我想你会发现一个专门用于树莓Pi的驱动程序。此外,这表明Raspberry Pi不久将有一个LabView。

最初的问题没有提到LabView代码使用NI DAQmx函数。既然事实证明确实如此,我相信对于一个初学者来说,在Windows平台上移植到Python并不是一件小事,据我所知,在Raspberry-Pi上实现这一点是不可能的

但是,如果没有对DAQmx或类似库的依赖,那么Raspberry Pi上的Python应该是不错的—或者您可能想看看,可能是在诸如。您可能需要也可能不需要使用多线程,这取决于记录器传输的数据量和速度-可以使用循环依次检查每个端口的传入数据,将其添加到队列中,并在接收到完整读取时对其进行处理,如果串行端口缓冲区足以容纳同时到来的任何新数据。如果您的记录器只是响应来自主机的命令进行传输,那么就不需要多线程处理,只需依次查询它们

无论是LabVIEW还是Python,如果需要进一步的帮助,您都应该尝试开始并提出更具体的问题


如果您熟悉LabVIEW,或者希望有一个项目来开发您的LabVIEW技能,那么有一个可以让您将LabVIEW代码部署到Pi的工具,但是这需要额外的成本,并且不支持所有LabVIEW函数——特别是,如果这很重要,您需要检查它支持并行执行的程度。(作为参考,LabVIEW的家庭版可以将非GUI运行时代码部署到Raspberry Pi 2/3,但这只允许个人使用,不允许用于商业或学术应用。)

您更新的问题表明,数据是由通过以太网连接到主机PC的NI CompactDAQ模块收集的

在这种情况下,更新现有的LabVIEW软件比用另一种语言重写要容易得多。可以从LabVIEW以外的语言调用NI DAQmx函数(NI的数据采集库),但我认为对于初学者来说,这不是一项简单的任务。在任何情况下,我几乎可以肯定目前没有办法在树莓Pi或其他类似的低成本板上使用CompactDAQ

但好消息是,这头驴