Форум:

Вы не вошли.

 Поиск | Регистрация | Вход 

#1 Re: Техническая поддержка » E14-140 Lusbapi For C# » 11.12.2018 13:07:40

Poul пишет:

когда то давно было так http://www.lcard.ru/forums/viewtopic.php?id=7251&p=2 как изменился C# с тех пор я честно говоря не знаю. не работаю с ним. но он должен быть точно в 32 битном ррежиме для wlcomp.

так у меня так и есть. ULONG тоже самое что и UInt32. Возможен вариант оформить договор на разработку библиотеки?

#2 Re: Техническая поддержка » E14-140 Lusbapi For C# » 10.12.2018 14:22:08

Опять возобновили попытку установить связь с модулями, на этот раз через wlcomp Snimok.jpg
В ошибка указывает, что неверна сигнатура. Типы данных от сюда https://msdn.microsoft.com/ru-ru/library/0wf2yk2k.aspx . Любые другие параметры сигнатуры вызывают туже ошибку.

#3 Re: Техническая поддержка » E14-140 Lusbapi For C# » 01.10.2018 13:14:50

Poul пишет:

Для работы в C# для lcomp в свое время был написан сишный враппер wlcomp с обычными функциями и сишными объявлениями структур. и то  там надо ручкми было много написать для шарпа (поиском по форуму должны быть ссылки). для lusbapi я не помню есть ли у меня враппер (возможно тоже писал). в понедельник как выйду из отпуска посмотрю.

все ссылки на wlcomp уже недействительны, а в lcomp.Exe нет обертки. Не могли бы вы выслать, то что есть? может на другие модули хотя бы. за ранее спасибо

Тихомиров Сергей пишет:

Все тонкости взаимодействия с железом модуля можно найти в низкоуровневом описании на модуль E14-140:
                              www.lcard.ru/download/e14-140_low_level.pdf

К сожалению для меня это совсем бесполезно, т.к. у меня все модификации (e14-14, e14-14D,e14-14M и т.п.)

#4 Re: Техническая поддержка » E14-140 Lusbapi For C# » 27.09.2018 08:16:13

Тихомиров Сергей пишет:

1. Я сам не использую C# (по крайне мере пока).
2. Насколько я понимаю Marshal.GetObjectForIUnknown() должна принимать IntPtr, указывающий на COM объект. Но у нас никаких COM объектов нет.  Как мне видится нужно попробовать средствами C# адекватно описать чисто абстрактный класс ILE140 (если это вообще возможно), а  затем произвести корректное приведение типов полученного указателя pModule к этому классу (интерфейсу).
3. Про протокол передачи дынных совсем ничего не понял. Каких данных и куда?

Я правильно понимаю:
Экспортируется метод(CreateLInstance("e140")) для получение указателя на USB устройство по имени. Далее  ссылка на устройство передается в методы реализованные в библиотеке  Lusbapi.lib То есть по факту Lusbapi.dll нужна исключительно для поиска USB модуля (в данном случае "e140"). Из за чего и не получается некоем образом использовать эту DLL на С#.
То есть если я хочу на C# работать с модулем, мне необходимо полностью реализовать(а не только интерфейс/абстрактный класс) библиотеку Lusbapi.lib ?

Под протоколом я подразумеваю протокол. Размер пакетов(и формат). Набор команд на установку параметров и набор ответов от модуля.

#5 Re: Техническая поддержка » E14-140 Lusbapi For C# » 26.09.2018 10:17:02

Тихомиров Сергей пишет:

Насколько я могу понять, Вы пытаетесь импортировать из библиотеки Lusbapi функции типа OpenLDevice(), CloseLDevice() и т.д. А таких импортируемых функций в библиотеке Lusbapi в принципе нет, это просто методы чисто абстрактного класса. Именно поэтому при компиляции и возникает ошибка "System.EntryPointNotFountException: 'Не удаётся найти точку входа OpenLDevice в DLL Lusbapi.dll'".

Попробовал передать указатель интерфейсу. Тоже не работает.
26092018.jpg
Можете показать пример хотя бы для 1й функции? Или может есть протокол передачи дынных, что бы полностью вручную реализовать управление.

#6 Re: Техническая поддержка » E14-140 Lusbapi For C# » 25.09.2018 15:32:43

Тихомиров Сергей пишет:

Библиотека Lusbapi предоставляет пользователю всего две импортируемые функции: GetDllVersion() и CreateLInstance().
При этом функция CreateLInstance() возвращает фактически указатель на интерфейс взаимодействия с модулей. В интерпретации С++ этот интерфейс (в Вашем случае) представляет из себя чисто абстрактный класс типа ILE140 (подробнее см. Lusbapi.h). Например:

       // попробуем получить указатель на интерфейс взаимодействия с модулем
	ILE140 *pModule = static_cast<ILE140 *>(CreateLInstance("e140"));

Всё дальнейшее взаимодействие с модулем осуществляется с помощью полученного указателя, используя только методы класса ILE140.

Так указатель я получаю. Через marshal.ptrtostructure. Как через этот указатель использовать методы, если не тем способом как у меня? Если реализовать сделать интерфейс и сослаться на него, то необходимо реализовать методы....

#7 Техническая поддержка » E14-140 Lusbapi For C# » 24.09.2018 14:37:19

Alexpwn
Ответов: 14

Здравствуйте.
Пытаюсь сделать обертку на C# для Lusbapi.dll
Реализовал классы по аналогии со струкуторами
Snimok1.jpg
на вызове открытии устройства выбивает исключение.
Snimok.jpg
До этого момента было достаточно много тем где пытались решить реализацию обертки. Но конечного или частично реализации найти не удалось.
Для других DLL(управление аналогичными USB измерительными устройствами) все решалось DLLImport и все работало как часы.

#9 Техническая поддержка » Модуль сбора данных LTR24-1 "ошибка инициализации" » 26.02.2018 11:37:14

Alexpwn
Ответов: 2

При инициализации пишет: Error_chanel_closed
Порядок работы.
подключение к креейту,  установка разряда АЦП, частота дискретизации, настройка каналов(включить, предел 10 В, АС – выключить, ICP – выключить, тест - выключить)

Еще заметил, что предел 10 В и  ICP_5 имеет одно и тоже значение, после команды adc_set() выбивает ошибку.
При этом читает данные абсолютно нормально

Inicializacija.png

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск