Форум: Техническая поддержка

Тема: Подружить USB E440 и Labview

Вы не вошли.

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

Alex G.
22.08.2001 15:04:27
#1

Гость

Подружить USB E440 и Labview

Прекрасно понимаю новый стиль dllек для работы с платами (которые дают тока CreateInstance), однако LAbView такое не понимает.
Соответственно есть несколько путей
1. Переписать LusbApi.dll чтоб возвращались все функции
2. Написать dll врапер (доступ ко всем функциям lusbapi.dll)
3. Напистаь dll thunk к нескольким функциям из Lusbapi.dll.
Какой бы вы путь посоветовали бы ?
Делов-то на день работы (начиная с нуля), но не хочется лишнее время тратить...

22.08.2001 16:58:27
#2

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,477

Re: Подружить USB E440 и Labview

Можно выбрать любой из этих путей. Хотя, судя по всему, врапер кажется самый простой и быстрый путь.
В принципе, в случае успеха, можно выложить Ваши результаты у нас на сайте, чтобы ими смогли воспользоваться все пользователи модуля E-440.

Alex G.
22.08.2001 18:56:43
#3

Гость

Re: Подружить USB E440 и Labview

Хмм, а с другой стороны - сложность
формализации типа передаваемых данных
(проблема Labview).
Я видимо реализую пару вариантов. Благо
Borland 5.2.2 доступен для скачивания и его
архив занимает всего 8.5 Мб...

Влад (модератор)
23.08.2001 09:23:39
#4

Гость

Re: Подружить USB E440 и Labview

Удачи Вам. Если все получиться хорошо, просьба поделиться результатом smile.

Alex G.
23.08.2001 13:34:43
#5

Гость

Re: Подружить USB E440 и Labview

Э, уже в развитие темы - e440.bio - БИОС DSP обязательно каждый раз грузить или это по желанию?

23.08.2001 14:37:27
#6

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,477

Re: Подружить USB E440 и Labview

В принципе, загрузка модуля требуется всего один раз после подачи на него напряжения питания (через USB кабель).

Alex G.
23.08.2001 15:06:42
#7

Гость

Re: Подружить USB E440 и Labview

Упс. а я думал оно во флеше лежит...
Придется еще один файл в комплекте таскать ;(

Alex G.
24.08.2001 12:35:42
#8

Гость

Re: Подружить USB E440 и Labview

Можно подробности про e4400->ReadData(short *, DWORD *, LPDWRORD *, LPOVERLAPPED)?
Если я задаю NumberOfWordstoRead - то каков смысл NumberofbutesRead?
Или таки режим вычитывания ассинхронный ? те я получу в buffer не более NumberOfWordstoRead ?
Если нет - то возможен ли такой режим (те я получаю данных неболее заданного числа?).

24.08.2001 13:19:27
#9

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,477

Re: Подружить USB E440 и Labview

Смысл параметров функции ReadData() почти полностью идентичен Windows API функции ReadFile(). Собственно говоря именно ReadFile() и используется в ReadData(). Подробности можно просмотреть в Help на эту Windows API функцию.

Alex G.
24.08.2001 13:36:00
#10

Гость

Re: Подружить USB E440 и Labview

это понятно. вопрос состоял в том, что сделано внутри драйвера. Он ждет пока будет накоплено NumberOfWordstoRead или производится чтение из буффера (сколько было) и все? Зачем тогда у вас в примере всякие выходы по TimeOutу и тп ?

24.08.2001 14:55:51
#11

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,477

Re: Подружить USB E440 и Labview

Функция ReadData() работает почти полностью идентичено Windows API функции ReadFile() с учетом того, эта операция должна быть асинхронной (т.е. с использованием структуры OVERLAPPED).
При этом вызов функции ReadData() спокойно завершается, хотя, может быть, еще ничего и не собрано. Система в фоновом режиме сама начинает считывать NumberOfWordstoRead отсчетов из модуля. По окончании сего процесса система информирует Вас об этом с помощью события, которое Вы можете отловить используя соответствующие функции из Windows API. Именно в этом режиме можно применять таймауты ожидания прихода события. Во время считывния системой данных из модуля Ваше приложение, в принципе, можете занимаеться чем-нибудь более интересным, например формированием следующей порции данных для вывода на ЦАП, периодически проверяя приход события.

Alex G.
31.08.2001 16:54:37
#12

Гость

Re: Подружить USB E440 и Labview

Что-то никак оно не заработает. Но должно вот-вот wink покамест трап непонятный ловлю.
А вопрос такой - размер AdcFifolength это велечина, которая определяется чем - оборудованием, драйвером или как? Пугает то что иногда возвращается значение равное 0.

03.09.2001 14:39:01
#13

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,477

Re: Подружить USB E440 и Labview

Непосредственно после загрузки модуля переменная AdcFifolength должна быть равна 0х3000. Впоследствии эту величину можно программно менять в диапазоне от 64 до 0х3000.

Alex G.
03.09.2001 16:04:32
#14

Гость

Re: Подружить USB E440 и Labview

Интересное дело. А почему у меня периодически, после перезагрузки dll - AdcFifolength=0 ??? хотя функция возвращает 1.

Alex G.
13.09.2001 09:15:48
#15

Гость

Re: Подружить USB E440 и Labview

Итак! Нашел время - довел все до разумного состояния.
1. LabView 6.0i - глюкавит хуже прежних. видимо фиксы ждать надо. (хочу назад на 4ку ;((((
2. Стиль работы с Dllками в LabView вызывает озверение часа через 2 работы.
3. И хоть он написан на C - нет никакой возможности по уму работать с С структурами. Сами понимаете как это отражается (в основоном на психике wink)))))))

4. Не понял почему, но с кол-вом забираемых данных из буффера ADC надо быть аккуратным. Типа полбуффера это хорошо, а точно буффер - не всегда
5. Вроде купили модуль с DACом на борту - а плата пишет что его нет. Ну соответственно это API я не стал делать...

Alex G.
PS и упаси вас господи вызывать ReleaseLDevice из LabView ;(
pps sorry за резкость до 3 часов ночи глюки борол...

Контакты

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

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

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

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