Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 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 за один прием. Ткните где копать)) |
|||
|
||||
|
Re: LTR11Stop. ERROR_NO_CMD_RESPONSE.Забыл указать, что LtrApi.Recv выполняется асинхронно в бесконечной While (true) петле. Может непрерывный прием хвоста данных мешает получить ответ? |
|||
|
||||
|
Re: LTR11Stop. ERROR_NO_CMD_RESPONSE.Пока решил так: перед запуском метода Ltr11.Stop останавливаю Ltr11.Rcv в while (true) петле, жду 200 мс., а потом запускаю Ltr11.Stop. |
|||
|
||||
|
Re: LTR11Stop. ERROR_NO_CMD_RESPONSE.Короче, вдруг еще у кого-нибудь будет такая проблема. Пока выполняется Ltr11.Rcv и вы качаете данные с модуля, то Rcv.Stop исполняется, но ответа от инструкции можете не дождаться. |
|||
|
||||
|
Re: LTR11Stop. ERROR_NO_CMD_RESPONSE.Библиотеки ltrapi не предполагают одновременный вызов из разных потоков функций для работы с одним и тем же модулем (за исключением явно описанных сценариев для части модулей). Если с одним модулем идет работа из разных потоков, то нужно обеспечить, чтобы не было одновременных вызовов функций библиотеки. При останове соответственно сперва нужно завершить цикл получения данных с помощью Recv, затем уже вызвать функцию Stop (иначе вполне возможен прием ответа на команду Stop функцией Recv и Stop не завершится корректно) |
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск