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

Внешний запуск для LTR-11

Вы не вошли.

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

23.06.2015 12:58:58
#1

Участник
Откуда: Dubna
Здесь с 23.06.2015
Сообщений: 15

Внешний запуск для LTR-11

Добрый день!
Пишу собственное ПО для модуля LTR-11 на C#.
По заданию старт сбора данных должен начинаться от внешнего сигнала.
В параметрах работы АЦП в поле StartADCMode указываю LTR11_STARTADCMODE_EXTRISE.
Как я могу узнать что АЦП уже подготовил для дальнейшей обработки очередную порцию данных?
Есть ли для такого режима какой-либо флаг готовности?
Или может это настраивается в функции LTR_Recv ?
(кстати, в Руководстве программиста для модуля LTR-11 она упоминается неоднократно,
но вот описания к ней там НЕТ...)
Ваш пример для работы LTR-11 замечателен, но там работа ведется от внутреннего сигнала старта.
Был бы ОЧЕНЬ ПРИЗНАТЕЛЕН за кусок кода для режима ВЕНШНЕГО ЗАПУСКА (на С# ...)
Заранее спасибо за Вашу поддержку и помощь!

23.06.2015 13:59:32
#2

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

Re: Внешний запуск для LTR-11

Описание LTR_Recv() можете посмотреть в ltrapi.pdf, для всех модулей Recv() работает сходным образом.
Отдельного признака для этого нет, т.е. о том, что модуль начал принимать данные мы можем узнать только одним способом - что эти данные начали приходить.
По сути алгоритм может быть такой - пробуете принять блок данных, если модуль еще не начал принимать то Recv() вернет 0 (кол-во принятых данных) по завершению таймаута.
Когда модуль насченет передавать данные, то Recv() уже вернет положительное число (сколько слов передано). Отдельно стоит учитывать, что в первый раз, когда Recv() вернет число больше нуля, оно может быть меньше того числа, которое Вы запрашивали (какой бы ни был таймаут, т.к. данные могут начать поступать ближе к концу истечения таймаута) и соответственно оставшуюся часть блока нужно будет допринять и объединить с первой половиной.
Если нужно опрашивать, появились ли данные, то можно до прихода просто вызвать Recv() на одно слово с небольшим таймаутом (вплоть до 1 мс) и когда Recv() вернет 1, а не 0 - сохранить это слов, допринять блок без 1-го слово объединив с ним, а дальше уже принимать как обычно.
Если хотите пример, то я могу сделать такой пример, но наверное только завтра вечером.

23.06.2015 14:07:38
#3

Участник
Откуда: Dubna
Здесь с 23.06.2015
Сообщений: 15

Re: Внешний запуск для LTR-11

Да, спасибо за Ваши объяснения. Теперь бОлее ясно как работать.
Но: от примера (ОЧЕНЬ ЖЕЛАТЕЛЬНО на С#) я все равно НЕ ОТКАЖУСЬ !
С нетерпением буду ждать Ваш пример завтра.
Еще раз спасибо за оперативность и помощь ! ! !

24.06.2015 21:18:48
#4

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

Re: Внешний запуск для LTR-11

Пример выложил сюда https://bitbucket.org/lcard/ltr_cross_s … r11_cs.zip (тот, что ltr11_ext_start)

24.06.2015 22:53:23
#5

Участник
Откуда: Dubna
Здесь с 23.06.2015
Сообщений: 15

Re: Внешний запуск для LTR-11

Cпасибо! Приятно иметь дело с Компанией, у которой слова и дела не расходятся! Успехов Вам!

25.06.2015 19:55:19
#6

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

Re: Внешний запуск для LTR-11

Спасибо. И Вам тоже успехов!

Контакты

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

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

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

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