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


буфер реального времени E14-140M

Вы не вошли.

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

Евгений
11.03.2012 20:30:08
#1

Гость

буфер реального времени E14-140M

Доброго времени суток. Хотел уточнить пару моментов относительно буфера, в который попадают данные с АЦП при считывании в реальном времени.
1.Что происходит с буфером, если, например, считывать из него данные в момент, когда он еще не заполнен до конца? (заполнение буфера продолжится в фоновом режиме или его заполнение начнется заново)
2.Есть ли вероятность потери данных, если считывание производить в момент, когда буфер заполнится до конца?

12.03.2012 14:25:35
#2

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: буфер реального времени E14-140M

О каком буфере идет речь? Если речь идет о чтении штатными средствами, то о внутренней буферизации программисту приложения обычно думать не надо, просто во время сбора всегда должно быть не менее одного активного overlapped запроса. Для этого используется классическая двойная буферизация
http://en.wikipedia.org/wiki/Multiple_buffering

Или Вы обращаетесь напрямую в недокументированный буфер, который я описывал Виктору в ветке http://www.lcard.ru/forumthreads/11939 ? Это просто чтение куска памяти микроконтроллера, оно никак не влияет на сбор данных, т.е. <<продолжится в фоновом режиме>>. И может затереться, т.к. буфер циклический, а операция GetArray медленная.
Этот, как говорится, хак я рекомендовал Виктору как способ обхода ограничения возможностей модуля - а именно что данные в потоковом режиме отдаются только порциями по 32 отсчета. Я бы крайне не рекомендовал использовать его для чтения потока данных, т.е. способ оправдан только при остановленном сборе данных (после stop). Была задача забрать хвост при работе с внешней синхронизацией, если источник синхроимпульсов останавливается и нельзя заставить его выдать еще стробов до кратного 32.

Контакты

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

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

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

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