代码之家  ›  专栏  ›  技术社区  ›  Greg

如何在Rust中收集传感器数据,并使其在Python中可查询/可用?[已关闭]

  •  1
  • Greg  · 技术社区  · 8 年前

    如何使用Rust收集传感器数据的时间序列/流,然后从Python中获取这些数据(同时Rust继续收集数据)?

    目标是让Rust继续收集数据,并允许Python调用允许查询/检索此数据的函数。例如,过去5分钟内的所有观察结果。

    这是否可以在不复制内存的情况下实现(类似于numpy数组的视图),或者在Python运行时接收内存时是否必须复制内存?

    如果需要复制内存,那么在Rust中执行此操作的运行时成本与在C中执行此操作的运行时成本相比如何?与Rust相比,C是否更简单/更容易实现(作为C程序员新手,我喜欢Rust提供的安全/工具)?

    总之,我想了解如何:

    • 收集传感器数据并在后台继续收集
    • 允许从Python查询Rust中收集的数据
    • 从Python查询数据时是否需要复制数据,或者是否可以实现类似于numpy的内存视图?
    • 如果需要复制数据,那么开销与C相比如何?
    • 与C相比,实现is Rust的复杂性如何?
    1 回复  |  直到 8 年前
        1
  •  0
  •   hellow Adolfo Casari    8 年前

    你的问题很模糊,要想得到正确的回答,让我给你建议一些方法。

    1、使用中间层

    您可以使用某种数据库(例如sqlite、postgresql等),文件系统存储(纯文本文件、套接字),甚至使用(JSON)API构建Web服务器。

    根据您想要使用的内容,所有内容都有板条箱(纯文本在std、sqlite、postgres、diesel、hyper、serde等中)。

    这个实现的好处在于,它是独立于编程语言的,例如,如果您决定稍后用Java重新编程代码(无论出于何种原因:),您只需更改Java从数据库/套接字/Web服务器读取代码的方式。

    2、使用外国金融机构

    你可以看看alex的例子 github.com ,但请注意您可以在FFI中使用的类型,例如i32、u32、i8、pointer、floatings等整数类型,但字符串等类型可能会变得非常复杂,因此,如果您只喜欢整数,请使用它。