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

Форум

Вы не вошли.

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

#1 Техническая поддержка » Операционная система не может определить крейт/установить драйверы » 18.10.2021 10:04:33

BumbleBee1995
Ответов: 1

Здравствуйте. Возникла следующая проблема: ОС не может правильно определить крейты или установить к ним драйверы. В диспетчере устройств видно, что это "USB устройства от фирмы Л_Кард" и что это определённый крейт (LTR-U-8/16, LTR-CEU-1-4), но со значком восклицательного знака. Установлена последняя версия lcomp от 05.2021.

В сведениях драйвера показаны 3 драйвера (ldevs.sys, ldevusbu.sys, WdfCoinstaller01009.dll) при этом у ldevs.sys в полях "Постащик",  "Версия файла", "Авторские права" написано "Нет данных".
Иногда в поле "Цифровая подпись" записывается "Microsoft Hardware Compatibility" у всех 3х драйверов.

Временно можно было решить проблему обновлением драйверов (с нескольких попыток), при этом возникала след. ошибка - "Система обнаружила драйвер но при попытке установить возникла ошибка (Код 10 - Запуск устройства невозможен)". Но при новом запуске компьютера устройства снова переставали правильно обнаруживаться. Так же возникала ошибка примерно следующего содержания - "Невозможно проверить подлинность цифровой подписи драйвера ...", "Не удается проверить цифровую подпись драйверов, необходимых для данного устройства. При последнем изменении оборудования или программного обеспечения могла быть произведена установка неправильно подписанного или поврежденного файла либо вредоносной программы неизвестного происхождения. (Код 52)".

Т.к. проблема возникает на нескольких устройствах(с разными ОС) с разными крейтами привожу частные случаи:
1) ПК Windows 10 Pro  - крейт LTR-U-8/16;
2) ПК Windows 7 Домашняя базовая (Service Pack 1) - крейт LTR-CEU-1-4 (в диспетчере устройств почему то определяется как "PCI устройства от фирмы Л_Кард");
3) Ноутбук Windows 8 - крейт LTR-U-8/16.

P.S.
В прошлом я обращался к вам с подобной проблемой (ПК Windows 7 - крейт LTR-CEU-1-4) и тогда все решалось установкой обновления (что-то вроде KB085... полного названия не помню).

#2 Техническая поддержка » Работа с несколькими измерительными модулями » 07.09.2021 11:38:14

BumbleBee1995
Ответов: 1

Здравствуйте.
Поставлена следующая задача - опрашивать одновременно модули LTR11 и LTR212 и выводить показания на экран. Использется крейт LTR-U-8. Работаю в Borland C++ Builder 6.

Опыта работы сразу с несколькими модулями нет (Как и в использовании более 2х потоков). До этого создавал простые программы на основе ваших примеров.
Решение сделал такое: Опрос модулей вынес в отдельный поток. В одном цикле вызываются функции Recv и Process обоих модулей (сначала LTR11 потом LTR212). Частоту опроса LTR11  установил 1000Гц, LTR212 - 150Гц (режим 4х каналов с высокой точностью). Настроил массивы для хранения одного элемента (за вызов Recv получаем одно значение) т.к. процесс длится не больше 5 сек. Массивы обработанных данных через вызов Synchronize() передаю в главный поток и там отображаю в TextBox и точками на графике.

Возникла проблема: при текущих настройках (LTR11 - 1000Гц, LTR212 - 150ГЦ) практически сразу возникает задержка в показаниях LTR11. Однако если снизить частоту LTR11 до равной или меньшей LTR212 проблема пропадает. Проблема, мне кажется, вызвана разницей частот опроса.

Вопросы следующие:
1. Правильно ли опрашивать модули с такой разницей частот опроса в одном потоке как я делаю сейчас? Или их стоит разнести по отдельным потокам?
2. В функции Recv() есть аргумент - "количество слов данных в запрашиваемом массиве". Правильно я понял, что это количество точек, которое мы запрашиваем на считывание из буфера АЦП? И зависит ли время исполнения этой функции от этого аргумента?
3. В руководстве программиста LTR11 написано, что показания сначала записываются в fifo-буфер АЦП, а Recv() нужна для того чтобы "своевременно откачивать данные". Допустим в буфере уже есть 1000 значений, с помощью Recv() я запросил 100. Получается мы считаем первые 100 точек(fifo-буфер). Что произойдёт с остальными? Они сдвинутся(<-) и запись продолжиться? Или буфер обнулится?
4. Есть ли подробное руководство по использованию временных меток(tmark, Start)? Информации из руководств программиста модулей мне не хватило, чтоб разобраться.

С уважением, Максим(gug.shm@mail.ru).

P.S.
Пожалуйста, если у вас есть и если можно, можете предоставить пример ПО для одновременного опроса нескольких модулей?

#4 Re: Техническая поддержка » C#.WindowsForms.Неадекватные данные на выходе функции ProcessData(). » 12.08.2021 09:49:22

Алексей L Card пишет:

Да, что-то не вижу прикрепленных проектов. Можете выслать на support@lcard.ru с указанием, что для Борисова Алексея.

Сообщение получено?

#5 Re: Техническая поддержка » C#.WindowsForms.Неадекватные данные на выходе функции ProcessData(). » 11.08.2021 09:56:00

Т.к. не уверен, что проекты прикрепились - готов выслать их на почту, если предоставите.

#6 Техническая поддержка » C#.WindowsForms.Неадекватные данные на выходе функции ProcessData(). » 11.08.2021 09:53:51

BumbleBee1995
Ответов: 5

Здравствуйте.
Проблема следующая: Я решил написать приложение на C# для опроса модуля Ltr114 с использованием Windows Forms. За основу взял пример для C# с вашего сайта. Создал класс с исполняемым методом (ИМ), в котором производится запуск, опрос, и остановка модуля. Запустил метод через BackgroundWorker. Для передачи данных между потоками создал класс-хранилище и посылал его экземпляр из ИМ (как аргумент UserState) в главный поток используя метод BackgroundWorker'а - ReportProgress().
В ИМ после вызова функции ProcessData(), получаю массив обработанных данных типа double - data. Однако при попытке получить строчное представление его(data) элементов функция ToString() выдает результат - "не число".
Странно то, что если делать консольное приложение с той же логикой (буквально использовать тот же класс с ИМ и пользоваться BackgroundWorker) массив data содержит нормальные данные, строчные представления которых можно получить ф-цией ToString().

Т.к. это первый опыт написание приложения на C# для работы с модулями LTR возникают следующие вопросы:
1) Правильно ли подключена ваша библиотека ltrModulesNet и только ли она нужна?
2) Если не затруднит, ответьте здесь ошибаюсь я в написании программы или же в случае с Windows Forms действительно происходит какой-то сбой в работе ProcessData()?

Прикладываю к сообщению в архиве три проекта, сделанные в VisualStudio 2012.
1) Приложение Windows Forms с использованием BackgroundWorker;
2) Консольное приложение с использованием Thread;
3)Консольное приложение с использованием BackgroundWorker;

Ответ можете отправить на почту gug.shm@mail.ru

Заранее спасибо!

Контакты

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

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

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

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