有没有办法在 python 中使用 libpruio 和/或 libpruw1 ( http://users.freebasic-portal.de/tjf/Projekte/libpruw1/doc/html/ )?我想使用 libpruw1 来读取(超过 10 个)ds18b20,因为它比使用 dts 文件的“正常”方式快得多(在此处描述http://www.bonebrews.com/temperature-monitoring-with- the-ds18b20-on-a-beaglebone-black/)。所有传感器都需要不到一秒的时间,而不是每个传感器的 0.7 秒。据我了解,它没有 max_slave_count = 10 的限制。
1 回答
1)您的想法是正确的:使用 libpruw1 您可以在大约 1 秒内对 10 个达拉斯温度传感器进行采样,并且传感器的数量没有限制。
2) libpruw1 基于 libpruio(用于 pinmuxing)。您将需要运行这两个库。
3) 为了将它们与 python 一起使用,您需要两个库的 python 绑定(API 包装器)。
所以你的主要问题是获取包装器。
您可以在 WWW 上找到一些,但仅限于 libpruio(即https://gist.github.com/clouetb)、AFAIK。您必须确保包装器与您的 libpruio 版本匹配。
或者,您可以使用 SWIG (www.swig.org) 从库源创建包装器,以转换 C 绑定(pruio.h 和 pruw1.h)。
还有另一个使用 fb-doc 的选项。在包中找到一个外部模块(https://github.com/DTJF/fb-doc/blob/master/src/bas/plugins/py_ctypes.bas),它可以根据原始 FreeBASIC 源代码中的 ctypes 生成 python 绑定. 因此,最好使用https://github.com/DTJF/libpruio和https://github.com/DTJF/libpruw1上发布的最新版本。