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

LTR11Stop. ERROR_NO_CMD_RESPONSE.

Вы не вошли.

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

namik
19.07.2021 10:01:14
#1

Гость

LTR11Stop. ERROR_NO_CMD_RESPONSE.

Пишу простенький программу (W10 x64, C#) для обмена с LTR11 (LTR-EU-2 fw. 3.0). Периодически ( ~ 1/3), при остановке сбора данных вылетает ERROR_NO_CMD_RESPONSE. Таймаут увеличивал до 10 с., Библиотека и служба обновлены до последних.  Через LTR Manager вижу, что обмен останавливается (не мгновенно, а постепенно). Но ответа об успешном завершении нет. Через USB и Ethernet все одинаково. Опрашиваю 4 канала LTR11 с частотой 1 кГц.  Принимаю методом LtrApi.Recv по 200 uint за один прием. Ткните где копать))

namik
19.07.2021 10:14:36
#2

Гость

Re: LTR11Stop. ERROR_NO_CMD_RESPONSE.

Забыл указать, что LtrApi.Recv выполняется асинхронно в бесконечной While (true) петле. Может непрерывный прием хвоста данных мешает получить ответ?

namik
19.07.2021 14:26:26
#3

Гость

Re: LTR11Stop. ERROR_NO_CMD_RESPONSE.

Пока решил так: перед запуском метода Ltr11.Stop останавливаю Ltr11.Rcv в while (true) петле, жду 200 мс., а потом запускаю Ltr11.Stop.

namik
30.07.2021 07:34:12
#4

Гость

Re: LTR11Stop. ERROR_NO_CMD_RESPONSE.

Короче, вдруг еще у кого-нибудь будет такая проблема. Пока выполняется Ltr11.Rcv и вы качаете данные с модуля, то Rcv.Stop исполняется, но ответа от инструкции можете не дождаться.

31.07.2021 19:06:24
#5

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

Re: LTR11Stop. ERROR_NO_CMD_RESPONSE.

Библиотеки ltrapi не предполагают одновременный вызов из разных потоков функций для работы с одним и тем же модулем (за исключением явно описанных сценариев для части модулей). Если с одним модулем идет работа из разных потоков, то нужно обеспечить, чтобы не было одновременных вызовов функций библиотеки. При останове соответственно сперва нужно завершить цикл получения данных с помощью Recv, затем уже вызвать функцию Stop (иначе вполне возможен прием ответа на команду Stop функцией Recv и Stop не завершится корректно)

Контакты

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

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

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

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