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


Пропуск данных в LTR.

Вы не вошли.

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

Sergey
03.08.2006 17:25:19
#1

Гость

Пропуск данных в LTR.

Как известно, ОС'ы MS Windows не являются RealTime OS'ами, и, соответственно, не гарантируют выполнение каких либо операций с детерминированными временными интервалами, задержками и т.п. В http://www.lcard.ru/ltr.php3 сказано: "Внутренняя буферизация данных в LTR позволяет компенсировать на пиковой скорости передачи данных как минимум 200 мс "временных замираний" операционной системы, что исключает потерю данных." Понятно, что это смелое утверждение сформулированно некорректно, потому что дуэт USB+Windows может не гарантировать, а "вроде как работать" только при определенных условиях (мало ресурсоемких процессов, потоков и т.п.). В общем, гарантировать потерю данных нельзя. В связи с вышеизложенными соображениями есть несколько вопросов к разработчикам:
1) Откуда взялось магическое число 200мс?
2) Как прикладное ПО может узнать о факте случившегося пропуска?
3) Какой план дальнейших действий предусмотрен для прикладного ПО на случай пропуска данных?
Спасибо.

Maxim
03.08.2006 17:59:28
#2

Гость

Re: Пропуск данных в LTR.

1. Все просто - на борту крейта - FIFO буффер 4 Мб - на запись и FIFO буффер 4 Мб на считывание. При максимальной скорости считывания данных 20 Мб/c  позволяет хранить 200 мс.
2. Прикладному ПО при переполнении высылается крейтом комманда о переполнении внутреннего буффера.
3. В зависимости от ситуации. На текущий момент считается, что при переполнении буффера данные корруптятся относительно времени. Следовательно необходимо обресетить модули в крейте и начать сбор данных сначала.

Sergey
03.08.2006 18:26:09
#3

Гость

Re: Пропуск данных в LTR.

По 1 понял. Вначале показалось, что число 200мс является какой-то магической характеристикой ОС.

В каком разделе описания (ltr_sw.zip) можно подробно посмотреть по 2 пункту?

Maxim
03.08.2006 19:04:02
#4

Гость

Re: Пропуск данных в LTR.

Напрямую пользователю это не видно.
Предполагается, что он будет пользоватся LTRSERVER-ом, который уже учитывает особенности работы с USB, и конкретными модулями.
Сервер сообщает о ошибке переполнения в поле
flags структуры TLTR, смотрите ltrapi.pdf

03.08.2006 20:08:09
#5

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Пропуск данных в LTR.

Добавлю:
1) Даже при работе с LTR-крейтом напрямую (без LTR-сервера) ситуация переполнения буфера крейта тоже ловится, поскольку при переполнении крейт высылает по USB команду специального вида.
2) Принципиально не существует каких-либо технических проблем в увеличении размера буфера в LTR-крейте в следующих модификациях крейта. С другой стороны, L-Card на сегодняшний день не имеет разумного примера использования LTR, который бы показал, что увеличение буфера действительно необходимо.