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

Получение данных LTR12

Вы не вошли.

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

27.11.2024 22:15:56
#1

Участник
Здесь с 22.06.2023
Сообщений: 39

Получение данных LTR12

1) Объясните, пожалуйста, смысл расчета объема данных в примере для LTR12:
ltr_cross_sdk\ltrapi\examples\c\ltr12\ltr12_recv\main.c,
в частности, строка 192:
DWORD block_ch_pts = (DWORD)(((hltr12.State.FrameFreq * BLOCK_TIME) + 999)/1000);
В чем смысл в конце формулы " + 999)/1000)"?
Это желание выделить память с запасом?

2) Пример:
используем 2 канала LTR12 с общим нулем.
Делаем в кадре дополнительных 2 замера для ровного счета.
Частота 100 кадров в секунду, то есть, adcFreq=400Гц в нашем случае.
Длительность одно измерений 2сек.
Для данных в LTR12_Recv надо зарезервировать массив DWORD длиной 800=2сек*100Гц*(2+2) (с учетом 2 дополнительных измерений в кадре), а в LTR12_ProcessData для результат массив double длиной 400= 2сек*100Гц*2.
Все верно?

28.11.2024 18:31:22
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,295

Re: Получение данных LTR12

1) деление на 1000 потому что BLOCK_TIME указан в мс, а частота в hltr12.State.FrameFreq - в Гц.
   По поводу +999 просто сделано для округления в большую сторону, если получается не целое число точек на время блока (преобразование из double в DWORD идет в С отбросом дробной части, т.е. если hltr12.State.FrameFreq * BLOCK_TIME кратно 1000, то добавление 999/1000 будет отброшено при приведении к целому, а если не кратно, то на получается ближайший интервал не меньше запрошенного)
2) Да, тут все правильно.

Контакты

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

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

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

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