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


Работа с L-1221 из Windows

Вы не вошли.

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

Леонид
26.01.2005 16:04:39
#1

Гость

Работа с L-1221 из Windows

Я знаком с работой L-1221 в ос QNX, где прикладная программа сама обрабатывает аппаратные
прерывания при заполнении полубуфера и вовремя считывает данные, а далее занимается своей работой
до следующего аппаратного прерывания.

Теперь знакомлюсь с похожей программой непрерывного чтения из L-1221 но в Windows. Программа
организует постоянно зацикленный поток, в котором непрерывно через запрос к драйверу анализируется
номер последнего заполненного полубуфера, если номер изменяется - тогда из драйвера принимаются
данные, если нет - проверка непрпрывно продолжается... Загрузка процессора страмится к 100%.

А можно ли из драйвера получать сигнал о заполнении полубуфера, считывать данные, а затем заниматься
своей работой до поступления следующего сигнала (как аналог аппаратного прерывания) ?

Буду признателен за ссылку на образец или за пример кода. Спасибо.

26.01.2005 16:12:50
#2

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

Re: Работа с L-1221 из Windows

нету там такого, а загрузку снижать надо проверяя пореже...

Леонид
27.01.2005 15:43:32
#3

Гость

Re: Работа с L-1221 из Windows

Спасибо за отклик. А в драйвере размер полубуфера тоже равен 2048 отсчетов, или его в драйвере можно настроить пошире: чтобы не так часто проверять заполнение?

Не знаю почему, но в выше описанном примере при частоте заполнения полубуфера около 6Гц и непрерывно проверяющем заполнение потоке в программе Windows2000 все равно изредка происходит потеря данных - это видно позже при просмотре длительно записанного сигнала идеальной синусоиды с генератора.

27.01.2005 16:30:26
#4

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

Re: Работа с L-1221 из Windows

буфер там неограничен...задается как Pages*IrqStep

Леонид
31.01.2005 14:52:16
#5

Гость

Re: Работа с L-1221 из Windows

Возникли проблемы с открытием указателя на драйвер с помощью CreateFile после установки Lcard SDK for Windows95/98/2000/NT.

Установку SDK выполняю стандартно запуском Setup.exe.

После копирования файлов настраиваю тип платы, базовый адрес и вектор прерывания для L-1221.

Далее проверяю содержание реестра Windows2000 по направлению
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Ldevisa/Devices
Здесь появляются описания
LDEV/0
    /1
    /2
    /3
Причем в LDEV/0 находятся настроенные мною параметры.

Так же наблюдаю что в Winnt/System32 не переписываются драйверы *.vxd при установке. Они только копируются в папки w95 и w98 внутри папки для установки SDK (по умолчанию L-Card ).

Проблемы с открытием драйвера возникают на следующем коде:


    char szDrvName[16]="////.//LDEV0";
     
HANDLE hDevice;

  hDevice=createFile(szDrvName,GENERIC_READ,0,NULL,OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, NULL);


    if (hDevice == (HANDLE) INVALID_HANDLE_VALUE)
        errorExit("Ошибка открытия виртуального драйвера");

и у меня выдается “ошибка открытия виртуального драйвера”…

Пож. Поясните: как правильно установить SDK, где должны находиться *.vxd драйверы,
Что нужно проверить в реестре чтобы правильно открыть HANDLE на драйвер. Спасибо.

31.01.2005 15:07:59
#6

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

Re: Работа с L-1221 из Windows

vxd и не должны копироваться под NT. Там sys используются. Чтобы драйвер открылся надо чтобы прерывание свободно было и было Legasy ISA в биосе компа. Если оно уже кем то занято то ничего работать не будет.