Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 1, 2012 18:35:08

svas
От:
Зарегистрирован: 2010-01-27
Сообщения: 239
Репутация: +  9  -
Профиль   Отправить e-mail  

ctypes и libmodbus

Есть такая библиотека 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'ами - функция отрабатывает нормально и возвращает коректный результат.



Офлайн

#2 Фев. 2, 2012 11:33:31

svas
От:
Зарегистрирован: 2010-01-27
Сообщения: 239
Репутация: +  9  -
Профиль   Отправить e-mail  

ctypes и libmodbus

Та функция просто выделяет память под массивы, реализовал на python



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version