Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Низкий уровень на python - звучит странно.
Когда начнете получать данные с АЦП, если у вас частота дискретизации достаточно высокая или много каналов, то можете упереться в производительность питона при парсинге потока данных.
Правда я не изучал как там льются данные по USB - работаю с АЦП по Ethernet, возможно вам и не придется ничего парсить. Но если данные льются упакованными так же как при передаче по Ethernet, то парсить придется. Рекомендую для получения массивов данных использовать массивы numpy, а не родные питоновские контейнеры.
При использовании numpy и deque нет проблем с обработкой потока с АЦП e14-140 на максимальной частоте (200 кГц), с одновременной отрисовкой графиков. И все на не самом мощном ноутбуке. Так что сделать обработку на python в принципе возможно.
Спасибо, получил письмо с примером!
Скомпилированный пример действительно работает как надо в 64-битном режиме на Windows 7.
wlcomp.h для 64 бит отличается в том, что для hDll используется тип данных c_ulonglong вместо c_ulong в 32-битной версии.
Изменение типа данных однако не изменило картины для программы на питоне. Все так же, на семерке не работает, в XP работает.
В итоге поставил 32-битный питон, который заработал с 32-битной wlcomp.dll под 64-битной ОС. Благодарю за помощь.
Благодарю! Файл получил!
Теперь библиотека wlcomp64 открывается. И работает, но только на Windows XP 64-bit и только с драйвером 6.0.2.5 от 20.12.2011.
Версии драйвера для E14-140 выше 6.0.2.5 не устанавливаются на Windows XP 64-bit (проверял версии 7.0.0.5 от 20.12.2017 и 7.0.0.4 от 04.06.2015).
При попытке запуска на Windows 7 64-bit происходит следующее:
Вызов LoadAPIDLL проходит без ошибок и я получаю указатель hDll.
При вызове CallCreateInstance возвращается код ошибки 2 вместо 0 и нулевой указатель hIfc.
Под Windows XP 64-bit на этом этапе код ошибки 0 и годный указатель hIfc.
Код, который запускался на обеих системах:
from ctypes import cdll, pointer, c_ulong
wl = cdll.wlcomp64
hDll = pointer(c_ulong(wl.LoadAPIDLL('lcomp64.dll')))
hErr = pointer(c_ulong())
print 'hDll', hDll.contents.value
hIfc = pointer(c_ulong(wl.CallCreateInstance(hDll, 0, hErr)))
print 'hIfc', hIfc.contents.value
print 'hErr', hErr.contents.value
Результат запуска на Windows 7 64-bit:
hDll 4200464384
hIfc 0
hErr 2
Результат запуска на Windows XP 64-bit:
hDll 187891712
hIfc 188361808
hErr 0
При этом на семерке работает штатная программа LGRAPH без проблем, с любой версией драйвера.
Целевая платформа, для которой разрабатывается программа - Windows 7 64-bit, установить туда XP не представляется возможным.
Прошу Вашей подсказки, что же нужно сделать, чтобы использовать E14-140 через wlcomp64 под Windows 7 64-bit.
Спасибо, посмотрел wlcomp.dll, но при попытке ее использовать на 64-битной ОС появляется ошибка:
---------------------------------------------------------------------------
WindowsError Traceback (most recent call last)
<ipython-input-3-3b8c505be86b> in <module>()
1 from ctypes import *
2
----> 3 wl = cdll.wlcomp
4
5 hDll = pointer(c_ulong(wl.LoadAPIDLL('lcomp.dll')))
c:\Progs\anaconda2\lib\ctypes\__init__.pyc in __getattr__(self, name)
434 if name[0] == '_':
435 raise AttributeError(name)
--> 436 dll = self._dlltype(name)
437 setattr(self, name, dll)
438 return dll
c:\Progs\anaconda2\lib\ctypes\__init__.pyc in __init__(self, name, mode, handle, use_errno, use_last_error)
364
365 if handle is None:
--> 366 self._handle = _dlopen(self._name, mode)
367 else:
368 self._handle = handle
WindowsError: [Error 193] %1 не является приложением Win32
Код, вызвавший ошибку:
from ctypes import *
wl = cdll.wlcomp
hDll = pointer(c_ulong(wl.LoadAPIDLL('lcomp.dll')))
hErr = pointer(c_ulong())
print 'hDll', hDll
hIfc = pointer(c_ulong(wl.CallCreateInstance(hDll, 0, hErr)))
print 'hIfc', hIfc
print 'hErr', hErr
print wl.OpenLDevice(hIfc)
Не могли бы вы выложить для скачивания 64-битную версию wlcomp.dll ?
Прошу помощи при подключении модуля E14-140M к программе на Python под Windows либо через lcomp.dll, либо через lusbapi.dll.
Сейчас проблема в том, что не удается правильно описать интерфейс IDaqLDevice в программе на Python.
Работающий пример, который бы открывал плату и к примеру, читал бы ее серийный номер, был бы абсолютно достаточным.
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск