Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
|
||||
|
|
Ошибка 24 модуля: невыровненные данныеСтоит задача считывать каждые 5 мс данные и отправлять их дальше. |
|||
|
||||
|
|
Re: Ошибка 24 модуля: невыровненные данныеProcessData обрабатывает данные покадрово, т.е. каждый обрабатываемый блок данных должен состоять из числа слов, кратного N (для 20-битного формата) или 2*N (длф 24-битный формата), где N - число разрешенных каналов. Т.е. если у Вас 4 канала и 20-битный режим, то необходимо не просто обрабатывать слова в очереди "когда в очереди набирается 4 или больше слов", но обрабатывать кратное 4 словам кол-во слов, после чего оставшиеся слова сдвигать в начало очереди и следующий принятый блок добавлять к ним. Данные ошибки как раз могут возникать, если склейка данных по кадрам и обработка строго целыми кадрами выполнена не корректно. Следует также учитывать, что Windows не система реального времени, да и при передаче данных вносятся задержки передачи, поэтому обработка с таймаутом 5 мс будет приводить к тому, что хотя сбор на уровне модуля выполняется строго с заданной частотой (с учетом погрешности опорного генератора крейта), размеры принятых данных за 5 мс на стороне Windos будут сильно меняться от приема к приему и не соответствовать исходному интервалу сигнала 5 мс на уровне модуля. Если требуется обрабатывать по 5 мс исходя из времени синхронного ввода на уровне модуля, то может быть более корректно вычисление числа точек, которое модуль собирает за 5 мс исходя из установленной частоты и выполнять прием и обработку этого числа отсчетов с большим таймаутом (для учета времени передачи и задержек Windows), чтобы при штатной работе функция возвращалась по приему нужного количества отсчетов, а не таймауту, тогда хоть время на стороне ПК может варьироваться, но обкатываемые данные будет соответствовать интервалу снятых данных за 5 мс, и ручное разбиение на кадры не нужно (т.к. прием уже будет выравненным). |
|||
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4
Многоканальный телефон:+7 (495) 785-95-25
Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск