Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Здравствуйте.
Отдельной инструкции к сожалению нет.
Все требуемое Вы установили.
В качестве консольного примера можно взять пример из исходных кодов библиотеки: https://gitlab.com/l-card/acq/devices/e … type=heads
Просто нужно собрать main.cpp (из консоли достаточно вызвать: g++ main.cpp -o <имя исполняемого файла>).
Для запуска примера ./<имя исполняемого файла> <номер слота> <имя bios>
<номер слота> для одного устройства 0
<имя bios> - в вашем случае - E440
В качестве документации можно использовать документацию lcomp под Windows (ставится с http://lcard.ru/download/lcomp.exe), сами функции такие же
А что именно подразумевается под "Сломалось взаимодействие с нашим ПО"? Какие именно возможности LTR43 вы используете и в чем проявляется некорректная работа?
Так с точки зрения api работа не должна была меняться. Чтобы проверить, действительно ли проблема в версии прошивки LTR43, выложил сюда архив с версией 2.0: http://lcard.ru/download/ltr43_avr_update_2.0.zip (нужно разархивировать, закрыть все программы, работающие с модулем LTR43, и вызвать ltr43_update_all.bat)
Чтобы ответить про данные нужен код настройки параметров работы модуля (т.е. все что идет с момента open и до start), а также знать, на какие контакты какой сигнал подаете.
Еще непонятно почему с src: Int, вылетает ошибка Invalid Memory Access, получается только с size: IntArray
Не совсем понял, src это исходный массив данных, он в любом случае массив. Если имелся ввиду параметр size в LTR24_ProcessData, то так как функция меняет его значение (на входе размер данных src, на выход после вызова - размер действительных данных в data), то он передается в C по указателю, а не значению, что технически в C выполняется аналогично передачи массива размером 1, но с разным смыслом. В JNA вроде для этого есть IntByReference.
Также в руководстве у некоторых полей структуры указано "не используется в LTR24-1", это значит полей нет или просто их нельзя использовать?
Забыл ответить из первого поста, эти поля есть, тип структуры всегда одинаковый, просто их не нужно менять, т.к. задающиеся ими режимы есть только в LTR24-2
Здравствуйте.
Правильно ли я понимаю что т.к. pack = 4, минимальный размер поля должен быть 4 байта?
Не совсем так, правильнее каждое поле от начала структуры выравнено на минимум между своим размером и 4 (т.е. байтовое располагается подряд, WORD всегда выравнен на 2 байта от начала структуры, DWORD/INT/float/double выравнены на 4 байта)
Т.е. например несколько байтовых полей идут всегда подряд.
Если два байтовых поля, а потом двухбайтовое, они тоже будут подряд.
Если одно байтовое, а потом двухбайтовое, то будет пропуск после первого байта, чтобы выравнять второе поле на 2 байта.
Если одно байтовое, а потом 4-х байтовое, то после байтового поля будет 3 байта пропуска, чтобы выравнять второе на 4 байта.
Если одно байтовое, а потом 8-и байтовое, то будет точно также 3 байта пропуска, т.к. из-за pack(4) поля размером больше 4 тоже выравниваются на 4
Также нужно учесть, что размер BOOL 4 байта, а размер BOOLEAN - 1 байт. Размер указателя зависит от используемой разрядности компилятора/виртуальной машины (4 или 8 байт).
Если в языке есть способ узнать размер полученной структуры (по аналогии с sizeof в C), то правильность вы всегда можете проверить, сравнив размер, полученный в вашем языке аналогом sizeof, с размером, который будет в поле Size после вызова LTR24_Init
Так то сам сигнальный процессор можно перевести в idle-mode, и настроить, чтобы он просыпался по пину, на который настроить трансляцию с сигнала с разъема SYNC. Другой вопрос, насколько сильно скажется это на потребления всего устройства (крейт + модуль + датчики), т.к. остальные узлы крейта и модуль целиком все равно будут работать в обычном режиме. Не совсем правда понял, кто должен узнать его состояние и дать команду? По идее сам процессор и должен проснуться по сигналу и запустить сбор данных с модулей.
Здравствуйте. Если говорить про исходную библиотеку e502api/x502api на C, то она под Linux работает, в том числе и под ARM, нужно только собрать или взять собранный пакет под нужную архитектуру и ОС.
Что касается LabView и .Net обертки (lpcieNet), через которую работают штатные примеры LabView, то их работа под Linux не проверялась. Нельзя исключать, что для запуска понадобятся какие-то правки.
Ну и само LabView, нужно смотреть как у него с поддержкой ARM, раньше вроде была поддержка только amd/intel, вроде есть некий LabVIEW Hobbyist Toolkit для запуска на Raspberry, но не знаю, есть ли там какие-то особенности...
Здравствуйте.
Действительно, штатная прошивка крейта подразумевает управление его работой со стороны ПК, а для использования крейта как автономного устройства и для записи на SD понадобится писать свою прошивку на основе штатной. По поводу запуска по триггеру и спящего режима, то тут нужно уточнение, что является триггером, и какие требования к спящему режиму, т.к. у крейта не предусмотрено специального низкопотребляющего режима работы, если речь про это.
По поводу VisualDSP++, то последняя прошивка версии 3.0.0.x данную среду не требует, она собирается компилятором gcc, ее можно взять отсюда:
www.lcard.ru/download/user/ltr/ltreu_bfin_rtems-master.zip - исходные коды прошивки
www.lcard.ru/download/user/ltr/ltreu_bfin_rtems_rtos_lib-master.zip - требуемые сторонние компоненты, включая компилятор, используемая ОСРВ RTEMS и т.п. В readme.txt описано как собирать.
Для управления LTR11 и приема данных понадобится взять логику работы из библиотеки ltr11api (исходные коды можно взять из git: https://gitlab.com/l-card/acq/devices/l … api/ltrapi) и перенести внутрь крейта.
Если требуется разработка прошивки под Вашу задачу, то можете прислать запрос с подробным ее описанием в поддержку (support@lcard.ru), чтобы узнать возможность реализации, условия и сроки.
Технически сама возможность может быть реализована, но в настоящий момент на эту возможность активных запросов от клиентов нет.
Если Вам эта возможность нужна, то можете написать запрос с описанием задачи на почту поддержки (support@lcard.ru), чтобы узнать возможные сроки и условия реализации этих возможностей.
А Вам требуется этот расчет именно на уровне модуля? Так то сам модуль может выдавать как сохраненные временные выборки исходного сигнала, так и непрерывный поток отсчетов, по ним должно быть возможно рассчитать нужный спектр уже на ПК в своей программе. Или Вас устраивает, что он может быть рассчитан на верхнем уровне, но Вам хотелось бы иметь уже готовое ПО верхнего уровня, которое может его строить?
Здравствуйте.
К сожалению данная возможность не реализована.
Под описанием Вы имеете ввиду страницу на сайте?
Изначально действительно планировалась реализация такой возможности под конкретного заказчика, видимо ее описание добавили на эту страницу еще до выхода модуля, и потом не убрали, поправим.
Возможности модуля с точки зрения ПО описаны в главе 1.1 руководства https://www.lcard.ru/download/vi_soft_manual.pdf, лучше ориентироваться в первую очередь на них, там данные актуальные на текущий момент.
Здравствуйте!
Аппаратно на уровне модуля такой возможности к сожалению нет. Только если вместе с данными АЦП выполнять синхронный ввод с цифровых линий и уже на верхнем уровне анализировать состояние входа и вручную останавливать сбор.
Судя по тому, что не читается серийный номер L-502, скорее всего плате нужно обновить прошивку, т.к. была проблема с совместимостью с некоторыми мат. платами. У Вас есть ПК (желательно с Windows), на котором бы плата виделась и корректно считывался серийный номер (можно в X502Studio проверить)? Если да, то посмотрите версию прошивки и попробуйте обновить с помощью утилиты lxfw_update из последнего sdk
Да, если подать в качестве параметров флагов 0, это значит отсутствие флагов, что Вам и нужно.
По поводу формулы восстановления, то offs идет для 24-битного кода, поэтому сперва нужно домножить на 256, а потом уже прибавлять offs. И так же значение параметра offs вычитается (см. описание X502_SetAdcCoef), т.е. формула будет:
(N*256 - offs) * k * RANGE / 6000000
Здравствуйте.
Возможно проблема в том что не вызывается или вызывается не в тот момент функция X502_Configure(). Она должна вызываться после задания всех параметров, включая X502_SetSyncStartMode, и до X502_StreamsStart(). Функции X502_SetXXX только изменяют параметры в структуре настроек описателя модуля в ПК, а в модуль настройки передаются только по Configure, без нее и настройки не применяться.
Странно, видимо скачался у Вас старый файл прошивки, возможно браузер закешировал. В старом файле 1.0.5 действительно могла отображаться версия 1.0.4.2, но он должен быть уже заменен. Попробуйте по явной ссылке с версией: https://www.lcard.ru/download/vi101_fw-v1.0.6.lbmf .
Перед обновлением должна отобразиться доступная версия 1.0.6 и после обновления версия прошивки должна стать 1.0.6.
Добрый день!
Попробуйте обновить прошивку модуля до версии 1.0.6 отсюда: https://www.lcard.ru/download/vi101_fw.lbmf
Здравствуйте.
E502-P1 может работать от внешней частоты до 2000000 Гц.
Для остальных модификаций подавать внешнюю опорную частоту выше 1500000 Гц некорректно, сам модуль работать будет, но вот с точки зрения измеряемого сигнала, могут быть искажения, т.е. для случая выше 1500000 Гц корректность измеряемого сигнала и соответствие характеристикам модуля не гарантируется.
Здравствуйте.
Приведенные полученные с выхода функции значения соответствуют таблице в ГОСТ Р 8.585-2001.
Если я правильно понимаю, то если смотреть разницу полученных значений на выходе функции, то она у Вас совпадает примерно с разницей температуры, т.е. вопрос по сути только в абсолютном значении, которое имеет фиксированное смещение результата.
Если так, это связано с тем, что термопара измеряет не абсолютную температуру, а разницу температур горячего спая (самой термопары) и холодного (где термопара соединяется с обычными проводами, соединения, которое находится вне нагрева обычно при температуре окружающей среды), подробнее см. https://www.lcard.ru/lexicon/thermoelectricity. Т.е. для получения абсолютной температуры к результату на выходе функции нужно добавить температуру холодного спая.
Это значение может быть либо фиксированное, если эта температура известна и изменения ее в ходе эксперимента не значительны для измерения (в LMS для этого в настройках преобразователя термопары есть параметр "Температура холодного спая"), либо ее нужно измерять отдельно, например с помощью термосопротивления (пример использования H-27R100 есть тут https://www.lcard.ru/support/faq/adc_for_thermopair), в этом случае нужно получать температуру холодного спая аналогично, но уже функцией преобразования из значения сопротивления для соответствующего термосопротивления, и добавлять к результату термопары (в LMS в этом случае параметр температуры холодного спая в преобразовании нужно ставить в 0, и делать дополнительный расчетный канала как сумма термопары и термосопротивления).
Здравствуйте.
Если Вы работаете через библиотеки ltrapi / ltrXXXapi, то работа с крейтом по сети ничем не отличается от работы с крейтом по USB, так как API работает с службой ltrd, которая уже работает с крейтами либо по USB, либо по Ethernet, и всю специфичную для интерфейса обработку берет на себя. Вам нужно только добавить в службу IP-адрес крейта и выполнить запрос на подключение по нему. Это можно сделать через программу LTR Manger или функции ltrapi (вариант через LTR Manger описан в главе 3 документа https://www.lcard.ru/download/ltr_soft_ … tarted.pdf, если нужно более подробное описание LTR Manger, то оно есть тут https://www.lcard.ru/download/ltr_cross_sdk.pdf, а по функциям API - раздел 5.3.5 в https://www.lcard.ru/download/ltrapi.pdf).
Использование TCP Open Connection нужно только если Вы вообще хотите работать с крейтом напрямую без API и без службы, но это тогда Вам весь код протокола обмена из ltrd и ltrapi нужных модулей нужно реализовывать вручную, на основе исходных кодов этих программ, так как у нас нет документа, описывающиего эти протоколы.
К сожалению это судя по всему проблема в самом железе крейта... Модули внутри подключаются группами по 8 к разным кросс-платам, и раз пропали все модули после 8-го, что-то случилось со второй. Тут только передавать крейт в ремонт...
Судя по всему действительно был небольшой период, когда версия модуля не наносилась на плату. Но сами модули кроме маркировки одинаковы, первое число до буквы в серийном номере по сути соответствует версии модуля.
Обновил архив, включил версию lms для Ubuntu 24.04
Вы ранее указывали номер LTR27 4T118164, который работал везде, а это номер тоже LTR27v4 (в отличие от 2R330323). Т.е. получается все же часть LTR27v4 у вас работают во всех крейтах? Это в общем вполне возможно, т.к. проблема не в том, что определенная версия LTR27 не работает с определенной версией крейта, а скорее в том, что определенные экземпляры LTR27 могут не работать с определенными экземплярами крейтов, а в других работать, даже при одинаковых всех прошивках и т.п. При покупке крейта с модулями оборудование тестируется в собранном виде и поэтому при использовании в купленном составе проблем нет, они могут и возникнуть только при перестановке. В 2021 году подобная проблема была обнаружена и исправлена в прошивке ПЛИС самих модулей LTR27, т.е. если проблема у Вас та же, что была обнаружена тогда, то при покупке новых модулей будет уже новая прошивка и этой проблемы не будет. Другой вопрос, что точно гарантировать, что у Вас точно та же проблема, что была исправлена в прошивке ПЛИС можно только если обновить у нас прошивку в неработающих модулях и проверить на крейте, в котором она не работала (по тем признакам что можно узнать удаленно очень похожа).
Обновить прошивку ПЛИС самого LTR27 к сожалению возможно только у нас.
Версии из LTR Manager - это версии прошивок крейта, а не прошивок модулей. Версии прошивки модулей можно узнать только в ПО, работающем с модулями. До 21 года прошивка вообще не менялась в течении жизни для LTR27v4, поэтому версия была введена уже в 21 году и большинство ПО действительно ее не отображает. Посмотреть можно в программе LMS (https://www.lcard.ru/products/software/lms). Можно использовать бесплатную демо-версию. Для этого нужно создать новый эксперимент, перейти на вкладку устройства и нажать там иконку "синхронизация списка устройств" и выбрать в обнаруженных модулях требуемый модуль. Там будет в информации поле "Версия PLD" и для LTR27 с исходной прошивкой будет версия 0, а в обновленных - 1.
Здравствуйте.
То, что индикатор TE01 горит красным - это нормально, это относится к тестовому оборудованию.
Про указанное сообщение, если оно возникает при попытке запуска пункта меню Service->Multimeter (или другого сервиса из этого меню), то действительно для LTR51 эти сервисы недоступны. Проверить работу модуля можно через меню Module->Configure и далее после настройки нажать кнопку "Сбор данных".
В штатном репозитории есть пакеты для написания своего ПО для работы с крейтами, включая библиотеки на C, службу ltrd, и программу просмотра подключенного оборудования и настройки крейтов LTR Manager (cv. https://www.lcard.ru/download/ltr_cross_sdk.pdf).
В качестве законченного пользовательского ПО для LTR, из работающего под Linux, только LMS. Но без приобретения лицензии она работает только в демо-режиме, где доступны до 2-х каналов.
Здравствуйте.
Можете пояснить, что подразумеваете под "не работают". Они вообще не видятся в крейте в программе LTR Manager? Или в LTR Manager они видятся, но дальше при работе возникают ошибки? Какие именно и как проявляются?
Можете указать сер. номера везде работающих и не везде работающих LTR27?