Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Непрерывный сбор данных E14-140 (lcomp.dll)

Вы не вошли.

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

max
15.07.2009 13:34:29
#1

Гость

Непрерывный сбор данных E14-140 (lcomp.dll)

Необходимо организовать непрерывный сбор и обработку  данных с 6 каналов. Количество считываний для обработки 256 точек на каждый канал. Частота считывания кадра 0.15625 кГц. Подскажите какой размер буфера выделять, и что передавать в параметры adcPar.t1.FIFO, adcPar.t1.IrqStep, adcPar.t1.Pages

Половина буфера - 256 кадров должна быть. пока обрабатывается одна половинка, заполняется другая

Заранее спасибо.

15.07.2009 13:51:43
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Непрерывный сбор данных E14-140 (lcomp.dll)

6*256 будет IrqStep, FIFO можно такое же задать а можно и больше... Pages минимум 2, но лучше больше и следить за счетчиком,а не просто половинками буфера работать

max
15.07.2009 14:18:31
#3

Гость

Re: Непрерывный сбор данных E14-140 (lcomp.dll)

После заполнения adcPar.t1 указанными выше значениями и вызова
SetParametersStream(&adcPar.t1, &tm, (void **)&data, (void **)&sync, L_STREAM_ADC);

значение размера буфера tm = 0
а значения параметров в структуре adcPar.t1 имеют следующие значения:
Pages = 1;
IrqStep = 1;
FIFO = 768;
Что довольно странно. Функция возвращает L_SUCCESS

Соответсвенно после запуска StartLDevice значение переменной Sync всегда 0 и никакого сбора данных не происходит.

Не могу понять в чем может быть проблема. Тестовые примеры работают, но там размеры буфера и прочие параметры имеют другое значение. Может существуют какие-то особенности для данного устройства по размеру буфера FIFO и т.д. ?

P.S. Раньше, такой проблемы не было, программа работала, поэтому и возникли вопросы. Однако после переустановки системы, и соответсвенно драйверов перестала работать программа

15.07.2009 15:04:01
#4

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Непрерывный сбор данных E14-140 (lcomp.dll)

А драйвера новые стоят? Если новые, а прогу собираете со старыми заголовочными файлами то траблы возможны...

15.07.2009 15:04:45
#5

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Непрерывный сбор данных E14-140 (lcomp.dll)

программа с какими параметрами работала?

max
15.07.2009 15:41:29
#6

Гость

Re: Непрерывный сбор данных E14-140 (lcomp.dll)

Задаю размер буфера:
DWORD tm = 3072;
pI->RequestBufferStream(&tm,L_STREAM_ADC);
Заполняю структуру, как советовали выше, после чего
pI->FillDAQparameters(&adcPar.t1);
Значения полей структуры
Pages:             2
IrqStep:           1536
FIFO:              1536
Rate:              100
Kadr:              0.15625

Далее выполняю функцию
pI->SetParametersStream(&adcPar.t1, &tm, (void **)&data, (void **)&sync, L_STREAM_ADC);
которая возвращает L_SUCCESS.
После этого вывожу размер буфера и значения полей структуры adcPar.t1:
Размер буфера  tm = 0
Pages:             2
IrqStep:           1536
FIFO:              24946
Rate:              100

Драйвера поставил новые, пересобрал все с новыми заголовками. При этом с новой lcomp.dll вообще в синий экран вываливается все. С dll из старого sdk   синего экрана нет, но и считывания данных тоже не происходит. Как будто выделяется буфер нулевого размера, поэтому и счетчик кадров тоже все время 0

15.07.2009 17:26:52
#7

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Непрерывный сбор данных E14-140 (lcomp.dll)

tm задайте ну 100000 например...

max
15.07.2009 17:32:00
#8

Гость

Re: Непрерывный сбор данных E14-140 (lcomp.dll)

С любым задаваемым значением размера буфера, после вызова функции SetParametersStream() значение tm становится равным 0

16.07.2009 09:04:45
#9

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Непрерывный сбор данных E14-140 (lcomp.dll)

пример попробуйте штатный со своими параметрами запустить.
И важно-> А драйвера новые стоят? Если новые, а прогу собираете со старыми заголовочными файлами то траблы будут. Менялись типы данных с USHORT на ULONG в структурах...