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


E14-440 + fedora42

Вы не вошли.

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

21.08.2025 11:51:40
#1

Участник
Здесь с 03.04.2019
Сообщений: 2

E14-440 + fedora42

Здравствуйте, уважаемая Техническая поддержка L-card!

У меня есть опыт работы и создание своего софта для плат E440, E14-440, E-154 и E502 под Windows

Я пытаюсь создать регистрацию на АЦП E14-440 но уже на Linux
Выбрал последний дистрибутив Fedora 42.
Все сделал по инструкции https://www.lcard.ru/download/lcard_lin … utions.pdf:
1. Добавил ссылку на репозитрий https://download. opensuse.org/repositories/home:l-card/Fedora_42/home:l-card.repo
2. Установил (перезагрузился затем) sudo dnf install lcomp-dkms liblcomp1 liblcomp1-devel (под user)
3. Повторно  dnf install lcomp-dkms liblcomp1 liblcomp1-devel (под root)

        Репозитории загружены.
        Пакет "lcomp-dkms-1.58.5-3.1.noarch" уже установлен.
        Пакет "liblcomp1-1.58.2-1.1.x86_64" уже установлен.
       Пакет "liblcomp1-devel-1.58.2-1.1.x86_64" уже установлен.

А что дальше?

Попытался:
4. скачал файлы примеров  от 2021 года https://www.lcard.ru/download/lcomp_linux.tgz
    - скомпилировал Makefile для test/test.cpp/
    - запустил ./test 7 e440
    - ошибка: error open dll!! ./liblcomp.so: cannot open shared object file: No such file or directory
    - понял, что иду не в том направлении.

5. Инструкции подключения и работы с АЦП под Linux(такой как под  Windows) не нашел.

Большая просьба - объясните, пожалуйста:
- возможно я не всё установил?
- где найти файлы примеров работы E14-440 под Linux (Fedora42)
- есть ли подробная инструкция запуска АЦП под Linux

На Linux я впервые работаю с железом.

----
По просьбе Технической поддержки L-card продублировал эти вопросы со своей электронной почты в форум.

22.08.2025 11:52:57
#2

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

Re: E14-440 + fedora42

Здравствуйте.

Отдельной инструкции к сожалению нет.

Все требуемое Вы установили.
В качестве консольного примера можно взять пример из исходных кодов библиотеки: 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), сами функции такие же

Рустам Каримов Хмм
Вчера 20:43:17
#3

Гость

Re: E14-440 + fedora42

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

Здравствуйте.

Отдельной инструкции к сожалению нет.

Все требуемое Вы установили.
В качестве консольного примера можно взять пример из исходных кодов библиотеки: 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), сами функции такие же

Здраствуйте, уважаемые разработчики.

Fedora42. E14-440. Всё получилось. Спасибо.

Но теперь задача подружить E502 с Fedora42.

Я так понял, что для АЦП E502 требуется иной подход под Linux, чем для E14-440.

Мне нужны примеры, либо Ваши инструкции для моей следующей задачи:

Мне нужно написать простую тестовую программу для чтение данных с помощью АЦП E502 на С++ для Linux Fedora (используя как пример предоставленный код): частота общая 2 МГц, 8 каналов (входа X1, X3, X5, X7, X9, X11, X13 и X15), АЦП запускается по фронту от PPS на DI_SYN1 входе. Нужно учитывать мертвое время (чтобы АЦП запускался каждую секунду), которое можно будет менять вручную в INI-файле (мертвое время задается в микросекундах, первое значение надо приравнять 64 мкс). Запись производится 2 секунды. Данные записываются в текстовый файл test_dat.txt, в котором 8 столбцов для соответственно 8 каналов данных. Типа данных  signed short. Сигналы подаются на каждый канал в режиме "общая земля"

Так как нужно записать данные за две секунды, но АЦП будет запускаться каждую секунду. Это означает, что надо будет соединить два массива, где пропущенные данные (мертвого времени) будут равно нулю и записать в один файл. Причем размеры массива памяти для каждой секунды должны быть равны, т.е для последней второй секунды, также будет учитываться мертвое время, которое тоже нужно заполнить нулями. Т.е. необходимо, чтобы в памяти хранились два буфера данных (по одному на каждую секунду измерения), но при записи в файл добавлялись нули в местах мертвого времени:

На вход X1 будет подавать синусоида с частотой 10 кГц (при этом частота дискретизации ЦАП равно 1 МГц), которая создается ЦАП этой же АЦП, на вход X15 будет подаваться импульс PPS от GPS. Этот же PPS подается на DI_SYN1

Также в ini-фаил добавить характеристики синусоиды: частоту в Гц (по умолчанию 10000 Гц) и ее амплитуду в милиВольтах (по умолчанию 1000 мВ)

Таким образом с помощью этой программы можно будет протестировать (для будущей более серьезной программы):
1) запуск АЦП от PPS
2) Проверка работы ЦАП  и возможности подачи от выхода ЦАП синусоиды на вход АЦП этого же E502
3) Исследование длительности мертвого времени, чтобы регистрация велась стабильно с ежесекундным запуском АЦП
4) Проверка верности записи синусоиды и импульса PPS (и их характеристик) на соответствующие входа АЦП
-----------
Итак. Нужно установить драйверы для E502.
Cоздать вышеописанную программу - для этого мне нужны примеры кода на С++ под Linux, так как Вы мне помогли с E14-440.

В библиотеке файлов я нашел только реализацию программы регистрации для графической оболочки. У меня цель обойтись без нее. Только минимальная Fedora42.

Сегодня 03:40:51
#4

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

Re: E14-440 + fedora42

Здравствуйте.

Да, для L-502/E-502/E16 используется другая библиотека. Ее подробное описание приведено тут: https://www.lcard.ru/download/x502&e16api.pdf
По поводу установки библиотеки, то пакеты устанавливаются аналогично lcomp, только требуемый пакет libx502api1-devel и его зависимости. Драйвер для E-502 не требуется, так как работа по USB под Linux идет через стандартную библиотеку  libusb-1.0, а Ethrenet в принципе драйверов не требует. Установка под Linux описана в пункте 2.1.7 руководства программиста.

Примеры есть на сайте на странице https://www.lcard.ru/support/developer в разделе E-502/L-502, там есть два консольных примера под msvc/gcc:
Ввод - https://www.lcard.ru/download/examples/ … m_read.zip
Циклический вывод - https://www.lcard.ru/download/examples/ … le_out.zip
Также в исходных кодах библиотеки можно дополнительные примеры использования посмотреть: https://gitlab.com/l-card/acq/devices/x … type=heads

По поводу Вашей задачи я не до конца понял про мертвое время и запуск каждую секунду на 2 секунды. Но думаю что Вам нужно смотреть в сторону запуска постоянного потокового ввода одновременно данных АЦП и цифровых линий и по данным цифровых линий определять момент фронта PPS и привязывать к нему данные АЦП и уже делить на файлы и изменять данные в соответствии с задачей. Режимом именно запуска сбора по сигналу синхронизации у Вас вряд ли получится, т.к. во-первых синхронизация запуска АЦП и ЦАП идет по одному условию, а у Вас ЦАП если я правильно понял должен генерировать сигнал непрерывно и на том же модуле, а во-вторых иначе у Вас будут теряться данные во время перезапуска сбора, а у Вас время записи на 2 секунды по сути на два блока непрерывного сбора, и не понятно как гарантировать, чтобы перезапуск успел до прихода следующего PPS.

Сегодня 06:57:05
#5

Участник
Здесь с 03.04.2019
Сообщений: 2

Re: E14-440 + fedora42

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

Здравствуйте.

Да, для L-502/E-502/E16 используется другая библиотека. Ее подробное описание приведено тут: https://www.lcard.ru/download/x502&e16api.pdf
По поводу установки библиотеки, то пакеты устанавливаются аналогично lcomp, только требуемый пакет libx502api1-devel и его зависимости. Драйвер для E-502 не требуется, так как работа по USB под Linux идет через стандартную библиотеку  libusb-1.0, а Ethrenet в принципе драйверов не требует. Установка под Linux описана в пункте 2.1.7 руководства программиста.

Примеры есть на сайте на странице https://www.lcard.ru/support/developer в разделе E-502/L-502, там есть два консольных примера под msvc/gcc:
Ввод - https://www.lcard.ru/download/examples/ … m_read.zip
Циклический вывод - https://www.lcard.ru/download/examples/ … le_out.zip
Также в исходных кодах библиотеки можно дополнительные примеры использования посмотреть: https://gitlab.com/l-card/acq/devices/x … type=heads

По поводу Вашей задачи я не до конца понял про мертвое время и запуск каждую секунду на 2 секунды. Но думаю что Вам нужно смотреть в сторону запуска постоянного потокового ввода одновременно данных АЦП и цифровых линий и по данным цифровых линий определять момент фронта PPS и привязывать к нему данные АЦП и уже делить на файлы и изменять данные в соответствии с задачей. Режимом именно запуска сбора по сигналу синхронизации у Вас вряд ли получится, т.к. во-первых синхронизация запуска АЦП и ЦАП идет по одному условию, а у Вас ЦАП если я правильно понял должен генерировать сигнал непрерывно и на том же модуле, а во-вторых иначе у Вас будут теряться данные во время перезапуска сбора, а у Вас время записи на 2 секунды по сути на два блока непрерывного сбора, и не понятно как гарантировать, чтобы перезапуск успел до прихода следующего PPS.


Спасибо, Алексей!

Моя задача - это просто научиться работать с E502. "Мертвое время"= "1 секунда" - "время чтения данных с АЦП". Как раз оно необходимо, чтобы  гарантировать перезапуск АЦП от следующего PPS.

Контакты

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

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

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

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