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


Помогите разобраться с функцией StartLDevice

Вы не вошли.

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

Дмитрий
16.11.2003 13:38:55
#1

Гость

Помогите разобраться с функцией StartLDevice

Уважаемые коллеги! Помогите, пожалуйста, разобраться с функцией StartLDevice из виндоусовской библиотеки ( vdxapi.lib )!
Дело в том, что, как сказано в описании, “ После выполнения функции можно переходить к откачиванию данных из буфера ”. Но я не вижу вообще никакой реакции. Перед этой функцией я вызвал GetSlotParam, OpenLDevice, memset(&ph,0,sizeof(PLATA_DESCR)), ReadPlataDescr_PLX, LoadBios, установил параметры adcPar, RequestBuffer, SetParameters, InitStartLDevice, - все работает корректно. Исходя из установленных параметров (Rate и количества реально выделенной памяти), она должна заполнять внешний кольцевой буфер несколько секунд (adcPar.AutoInit поставил 1), а у меня программа отваливает (в смысле корректно заканчивает работать) сразу, без всяких задержек. Чего я не учел?
Заранее благодарен за помощь!

17.11.2003 09:40:09
#2

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

Re: Помогите разобраться с функцией StartLDevice

Пример то как работает?

Дмитрий
18.11.2003 00:49:09
#3

Гость

Re: Помогите разобраться с функцией StartLDevice

Насколько я понял, после вызова всех этих функций, включая StartLDevice, должно начаться автоматическое заполнение внешнего кольцевого буфера, адрес на который (data) и указатель синхронизации (sync) выдает функция SetParameters. Т. е. sync, как я понял, должен отслеживать текущую координату массива data, куда пишется текущий отсчет ADC. И я стал через некоторые задержки выводить значение sync – не изменяется! Как же корректно запустить этот процесс? Можно ли попросить простенький пример (с исходником) с корректной организацией заполнения внешнего кольцевого буфера?

18.11.2003 09:53:26
#4

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

Re: Помогите разобраться с функцией StartLDevice

Хм ... А чем примеры из дистрибутива не устраивают?

Дмитрий
19.11.2003 09:22:58
#5

Гость

Re: Помогите разобраться с функцией StartLDevice

А подскажите, пожалуйста, какие примеры наиболее информативны. Я вот взял пример из L-Card//Library//l7xx.tst, просто добавил туда процедуру отображения указателя sync в цикле с задержкой – и никакого эффекта (задержки для заполнения кольцевого буфера, изменения указателя) не заметил.

19.11.2003 10:10:55
#6

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

Re: Помогите разобраться с функцией StartLDevice

Не понял. Этот пример sync и так печатает.

Дмитрий
19.11.2003 23:38:41
#7

Гость

Re: Помогите разобраться с функцией StartLDevice

Пардон! Я по простоте своей не разобрался с организацией потока сбора данных с помощью функций ServiceThread, CreateFile, CreateFileMapping, MapViewOfFile, CreateThread. Если это не сложно, можно пару слов об идеологии использования этих функций в данном примере? И нельзя ли сбор данных организовать как-нибудь попроще? Или в 32-х разрядном windows-приложении это наиболее приемлемый вариант?

20.11.2003 10:09:26
#8

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

Re: Помогите разобраться с функцией StartLDevice

Ну там файл отображается в память и запись в него идет копированием в отдельном потоке. Поток отдельный тк квантование потока связаного с окном (основного) хреновое. Если скорость не велика то можете и в основном потоке это делать.

20.11.2003 10:09:31
#9

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

Re: Помогите разобраться с функцией StartLDevice

Ну там файл отображается в память и запись в него идет копированием в отдельном потоке. Поток отдельный тк квантование потока связаного с окном (основного) хреновое. Если скорость не велика то можете и в основном потоке это делать.

Дмитрий
20.11.2003 11:05:52
#10

Гость

Re: Помогите разобраться с функцией StartLDevice

Спасибо! Попробую поковыряюсь. Если чего не пойму, еще раз спрошу.