0

我是一名 C 开发人员,需要使用 pyftdi 库访问 FTDI 设备,并且在尝试操作从属设备的远程寄存器时。我发现除了在 Python 中之外,不可能对其他事物执行按位运算(bitshift、NOT、AND 和 OR),int但我发现 NumPy 库具有启用此类功能的数据类型。我的问题是 NumPy 的资源非常繁重,我想知道是否有替代如此繁重的库的方法。

我已经尝试过BitField不具备此类功能的 PyFtdi 原生库和两者都没有的 ctypes 库。

这是我不想使用 NumPy 的代码:

def set_bit(variable, bit_ID):
    variable |= np.ubyte(1 << bit_ID)
    return variable

同样,主要问题不是它不起作用,而是它起作用但在资源上非常繁重,我需要具有位运算符的 8 位变量的功能,而无需总是切换数据类型。

我需要这种变量来避免使用 pyftdi 的函数多次转换我的变量:在 Python-native 中从它获取数据bytes()并将其转换为int. 然后使用按位运算符并将输出限制为 8 位。然后转换回bytes()通过 PYFTDI 的 I2C API 将它们发送回来。

4

1 回答 1

0

最后,我每次都求助于将数据类型转换为一种或另一种数据类型。对于此类问题,这不是最优雅的答案,但现在可以了。如果有人有奇迹解决方案,请随意发布;)

于 2021-01-25T13:41:30.853 回答