有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何通过TCP/IP与Java和Labview进行通信,并发送浮点数据缓冲区?

我正在一个大学项目中工作,我需要用Labview双向通信Java,并在数据缓冲区中以浮点形式发送和接收数据,因为Labview中的应用程序以高速生成数据,但当数组大小为100时,我会临时存储和发送数据

我的一个困难是将从Labview发送的数据转换为Java格式,反之亦然

谢谢


共 (1) 个答案

  1. # 1 楼答案

    在我看来,你有两个选择:

    1. 使用基于文本的协议(XML、JSON,你自己的东西),只需发送文本“1.3454”。
      1. pro:它可能是人类可读的,这简化了调试/断言正确的数据被传输的过程。拥有不同类型的消息也更简单
      2. 缺点:这可能意味着精度降低,而且肯定意味着某种开销
    2. 如果你只有这一类数据,你也可以提取浮点数的字节并发送它们,这样另一端就可以准确地读取四个字节并重建浮点数。
      1. pro:无开销
      2. 缺点:持久性可能有问题。我不确定LabVIEW和Java是否在特定的endian中处理所有数据,或者它是否取决于硬件。在将读取的字节重新组合回浮点之前,可能需要对其重新排序。此外,不同种类的信息可能会变得更加复杂。在这方面,最好阅读TCP ReadVI上的文档

    您还可以混合使用这两种方法:从浮点中提取字节,将每个字节视为一个字符,并将它们组合为一个字符串,然后将其放入基于文本的协议中