Я пытаюсь создать этот объект ModbusRtu, однако, когда я пытаюсь вставить некоторые параметры, кажется, возникает ошибка. Даже когда я просто пытаюсь запустить его с его исходными параметрами, продиктованными автором, возникает та же ошибка. В настоящее время у меня установлены все необходимые пакеты.
libffi-dev - 3.2.1-4
libmodbus - 3.1.4-2
libmodbus-dev - 3.1.4-2
python-dev - 2.7.15 ~ rc1-1
Cffi - 2,19
Я действительно запутался, почему он не должен работать, так как даже определенные автором параметры, похоже, тоже создают ту же ошибку.
Я уже пытался проследить за его сообщением, преобразовав параметры в байты, или список, или кортеж, но это только вызывает другое исключение
``` Python Code 1 (before my solution)
self.master = ModbusRtu(device='/dev/ttyACM0',
baud=9600, data_bit=8,
parity='N', stop_bit=1)
``` Python Code 2 (after my solution)
self.master = ModbusRtu(device=bytes('/dev/ttyACM0', 'ascii),
baud=9600, data_bit=8,
parity=bytes('N', 'ascii), stop_bit=1)
``` Simpler Python Code 1
from pylibmodbus import ModbusRtu
def main():
client = ModbusRtu()
# i can't instantiate the ModbusRtu class
print(client)
# i should have at least the id of the instantiated class
if __name__ == '__main__':
main()
Предположительно создается объект, однако я получил только это сообщение:
Файл "/usr/local/lib/python3.6/dist-packages/pylibmodbus/modbus_rtu.py", строка 11, в init
self.ctx = C.modbus_new_rtu (устройство, скорость, четность, бит данных,
stop_bit)
Ошибка типа: инициализатор для ctype 'char *' должен быть байтами, списком или кортежем, а не str
Когда я пытаюсь преобразовать строковые параметры в байты, я получаю это сообщение:
Файл "/usr/local/lib/python3.6/dist-packages/pylibmodbus/modbus_core.py", строка 60, в _run
повысить исключение (ffi.string (C.modbus_strerror (ffi.errno)))
Исключение: b 'Нет такого файла или каталога'