Найти - Пользователи
Полная версия: ctypes и libmodbus
Начало » Python для новичков » ctypes и libmodbus
1
svas
Есть такая библиотека libmodbus для работы с протоколом modbus. Использую данную библиотеку вместе с ctypes. Но есть проблема.
Есть одна функция modbus_mapping_new, которая должна возвращать указатель, возвращает None.
С:
modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits,
int nb_registers, int nb_input_registers)
Python:
mapping_new = l.modbus_mapping_new
mapping_new.argtypes = [ct.c_int, ct.c_int, ct.c_int, ct.c_int]
mapping_new.restype = ct.c_void_p
Такой код печатает None и иногда ошибка сегментирования
m = lib.new_tcp("127.0.0.1", 1502)
mapping = lib.mapping_new(100, 100, 100, 100)
print mapping
lib.mapping_free(mapping)
lib.free(m)
Непонятно, почему возвращается None, хотя функция нормально отрабатывает. В errno - 0, скачивал исходники, дополнял функцию modbus_mapping_new fprintf'ами - функция отрабатывает нормально и возвращает коректный результат.
svas
Та функция просто выделяет память под массивы, реализовал на python
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB