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


E20-10 + Linux

Вы не вошли.

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

Dmitriy
11.01.2008 15:25:20
#1

Гость

E20-10 + Linux

Прикрутил Ваши дрова под openSuse 10.2 (kernel 2.6.18.2-34). На удевление, все сразу заработало :-) Потоковый сбор данных роботает нормально.
Однако, в силу специфики (радилокация) мне необходимо запускать преобразование по зондирующему импульсу, получить небольшое количество отсчетов (512 - 1024), затем остановка и все сначала по слудующему импульсу.
Как я понял из документации и материалов этой конференции, 20-10, к моему большому сожалению, не умеет после старта по внешнему источнику получить получить фиксированное кол-во отсчетов и ждать следующего запускающего импульса.
Поскольку остановка преобразования может быть только программная, я переработал тестовую программу следующим образом: после приема необходимого колиства отсчетов я делаю:
pI->StopLDevice();
pI->FillDAQparameters(&adcPar.t2);
pI->SetParametersStream(&adcPar.t2, &size, (void **)&p, (void **)&pp,L_STREAM_ADC);
IrqStep = adcPar.t2.IrqStep;
pages = adcPar.t2.Pages;
и снова старт.
Приавильно ли я сделал?
Происходти ли при pI->StartLDevice(); очистка внутреннего буфера 20-10 или я сначало получу то, что недокачал в предидуший раз?

Для тестирования программы подал на 20-10 20кГц от генератора. При работе по внутреннему старту (adcPar.t2.SynchroType = 0х81) получаю склеенные кусочки синусоиды необходимой длинны - вроде все номально. Однако, когда я меняю adcPar.t2.SynchroType на 0х94 (внешний старт по спаду) и подаю внешние запускающие импульсы, то  получаю случайный сигнал, в котором ИНОГДА попадаются кусочки синусоиды, как правило более короткие чем надо :-((
Подскажите пожалуйста, где может быть ошибка?

P.S. (for Poul) В одном из Ваших сообщений меня очень удивило, что Вы стремитесь к унификации кода для разных ОС. Мне представляется, что писать один и тотже драйвер для PCI-ных USB-шных устройств это уже неоправданный геморрой, а уж писать Линуховые дрова на основе Виндюшных это все равно, что чесать правое ухо левой ногой (хотя йогам нравиться :-).  Хотя, конечно, каждый разработчик должен руководствоваться пережде всего своей собственной логикой.

14.01.2008 11:03:15
#2

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

Re: E20-10 + Linux

Если рестарт делать без переустановки параметров то достаточно {stop - initstart - start}? очистка по идее происходит. Внешний запускающий надо один подать и смотреть что плата стартанула и собрала синусоиду..

Различия в драйверах между виндой и линуксом сильно преувеличено...если придерживаться некоторых ограничений и определенного стиля то все почти одинаково... Но главное что DLL общая по исходникам....