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

e502 tcp/ip передача

Вы не вошли.

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

alex_63
07.02.2018 08:28:34
#1

Гость

e502 tcp/ip передача

Здравствуйте.
Прошу проконсультировать по передачи в управляющем потоке для e502 в ethernet.
Цель:Есть устройство с linux, где возможно запускать скрипты bash, хочу с него через сокеты сетевые попробовать управлять прибором. Идеально было бы отправить прошивку через сеть и запустить её.

В документации на прибор не указано про обязательность параметров. Например, Если у команды 0х0B их нет, как должна выглядеть строка для передачи?

Есть пример команды в hex?

07.02.2018 16:13:46
#2

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

Re: e502 tcp/ip передача

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

При передаче команды всегда должен передаваться весь заголовок фиксированного размера (5 32-битных слов: признак начала, код команды, параметр, размер на передачу, размер на прием). Если параметр не указан, то он не используется в настоящее время, но передавать его все равно нужно. В качестве неиспользуемых полей нужно передавать нулевые значения (на случай, если в будущих версиях этот параметр будет использоваться для каких-то целей). Таким образом, для указанной команды, Вы передаете в качестве следующие 32-битные слова: 0x314C5443, 0x0B, 0x0, 0x0, 0x20.

А какую прошивку имеете ввиду, сигнального процессора.

Под linux можно и C-ые библиотеки собрать...

alex_63
13.02.2018 23:53:35
#3

Гость

Re: e502 tcp/ip передача

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

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

При передаче команды всегда должен передаваться весь заголовок фиксированного размера (5 32-битных слов: признак начала, код команды, параметр, размер на передачу, размер на прием). Если параметр не указан, то он не используется в настоящее время, но передавать его все равно нужно. В качестве неиспользуемых полей нужно передавать нулевые значения (на случай, если в будущих версиях этот параметр будет использоваться для каких-то целей). Таким образом, для указанной команды, Вы передаете в качестве следующие 32-битные слова: 0x314C5443, 0x0B, 0x0, 0x0, 0x20.

А какую прошивку имеете ввиду, сигнального процессора.
Под linux можно и C-ые библиотеки собрать...

В планах подключить Е-502 к панели оператора СП207 от ОВЕН. Написал запрос к разработчикам СП207 для уточнения версии и ядра системы.
Сейчас тренировался на raspberry (Raspbian), к сожалению, не получается скомпилировать тестовые примеры.

Не понятно, какой исходник нужно выбирать (хотел попробовать циклический сбор).
При сборке требует библиотеки в дистрибутивах есть x502.lib,x502.a, не нашел x502.so. При этом библиотеки есть от borland и еще варианты.
Я копировал в lib библиотеки и в include описания *.h, после вызывал cmake и gcc, получал
main.c: undefined reference to ...
Возможно ли написать инструкцию по компиляции для распберри?

Спасибо

14.02.2018 12:16:56
#4

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

Re: e502 tcp/ip передача

Если Вы имеете ввиду под дистрибутивом - lpcie_setup.exe, то с ним устанавливаются библиотеки для написания программ под Windows (для разных компиляторов).

Для написания программ под Linux в случае с распберри (когда нет готовых пакетов для e502) Вам нужно будет собрать библиотеки самостоятельно, для чего нужно скачать исходные коды sdk (либо через mercurial (см. http://www.lcard.ru/download/lcard_bitbucket_repos.pdf), либо последний zip архив отсюда https://bitbucket.org/lcard/lpcie_sdk/downloads).

Для сборки могут два разных варианта:
1. Если у Вас в rasbian на самой плате есть установленный gcc и cmake и Вы собираете софт на ней самой, то тогда этот архив можно переместить на плату, распаковать там в некую директорию (если там есть mercurial и выход в интернет на плате, то можно прям и скачать с нее), создать отдельную директорию для сборки и из нее сделать:
cmake -DCMAKE_BUILD_TYPE=Release <путь к распакованным исходникам>
make
make install
Если на каком-то шаге возникнет ошибка, то можете просто прислать весь вывод.

2. Если же Вы собираете весь софт, что загружается в плату на ПК, то тут уже зависит от тех средств кросскомпиляции, которые Вы используете, т.к. их достаточно много разных.

alex_63
15.02.2018 00:08:50
#5

Гость

Re: e502 tcp/ip передача

Спасибо за развернутый ответ.
Плата подключена к интернету. Я делал по первому варианту.
1.скачал  wget https://bitbucket.org/lcard/lpcie_sdk/d … 1.1.12.zip
2.распаковал в каталоге ~/test1 распаковал unzip lpcie_sdk_src-1.1.12.zip
3.создал каталог ~/test1/app, запускаю в нем

pi@pi:~/test1/app $ cmake -DCMAKE_BUILD_TYPE=Release ~/test1/lpcie_sdk
-- The C compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Found libusb-1.0: /usr/include, /usr/lib/arm-linux-gnueabihf/libusb-1.0.so
CMake Error at /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake: 138 (message):
  Could NOT find Avahi (missing: AVAHI_LIBRARY-COMMON AVAHI_LIBRARY-CLIENT
  AVAHI_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  api/x502api/devs/e502/cmake/modules/FindAvahi.cmake:5 (find_package_handle_standard_args)
  api/x502api/devs/e502/CMakeLists.txt:103 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/pi/test1/app/CMakeFiles/CMakeOutput.log".

Далее судя по ошибка не хватает каких-то модулей и библиотек, которые не находятся в репозиториях.

15.02.2018 11:27:02
#6

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

Re: e502 tcp/ip передача

Да, не находит библиотеку от avahi (используется для поиска устройств в локальной сети).
Если есть доступ к репозиториям, то можете установить соответствующий пакет.
apt-get install libavahi-client-dev

Тогда напишите, соберется ли после установки этого пакета.

В принципе можно будет попробовать сделать эту зависимость зависимость опциональной, т.к. эта библиотека может и не быть во всех дистрибутивах.

alex_63
16.02.2018 15:09:57
#7

Гость

Re: e502 tcp/ip передача

После установки
libavahi-client-dev
Все шаги из инструкции прошли без ошибок.
Правильно ли я понимаю, что это компилировались и собирались только библиотеки?
Или всё что находилось в каталоге?
Прошу прощения за простой вопрос: дальше как запустить тестовый пример?

16.02.2018 18:50:10
#8

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

Re: e502 tcp/ip передача

Примеры по умолчанию не собираются, но их можно собрать вместе с SDK, если при вызове cmake перед путем к исходникам добавить опцию -DBUILD_EXAMPLES=ON (собранные примеры будут внутри директории сборки в api/x502api/examples/c/)

Либо можно собрать пример вручную. Если он состоит из main.c, то можно просто gcc:

gcc -o<имя выходного файла> -lx502api -le502api -ll502api main.c

Если пути к установленным .h файлам и библиотекам (по умолчанию ставится в /usr/local) не прописаны и при сборке не может их найти, то можно указать вручную, через опции -I и -L соответственно:

gcc -o<имя выходного файла> -I/usr/local/include -L/usr/local/lib -lx502api -le502api -ll502api main.c
alex_63
28.03.2018 01:24:35
#9

Гость

Re: e502 tcp/ip передача

Спасибо за помощь, тестовый пример скомпилировался и запускается.
Возможно, пригодится кому-нибудь моя подробная инструкция по компиляции консольного примера на raspberry:
1. cd ~
2. wget https://bitbucket.org/lcard/lpcie_sdk/d … 1.1.12.zip   
3. unzip lpcie_sdk_src-1.1.12.zip        
4. mkdir build                           
5. cd build                           
6. cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../lpcie_sdk
7. cd ~/build/api/x502api
8. make x502api
9. sudo make install
10. gcc -oe502 -I/usr/local/include -L/usr/local/lib -lx502api -le502api -ll502api main.c
11.  ./e502

Дополнительный вопрос появился, через некоторое количество шагов приложение завершается:
"Ошибка обработки данных: Неверный номер канала в обрабатываемом потоке синхронного ввода
Сбор данных остановлен успешно"
С чем может быть связано?
Е502 подключен к распберри через ethernet

28.03.2018 16:46:49
#10

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

Re: e502 tcp/ip передача

Это происходит при использовании вашей прошивки Blackfin или также проявляется при работе в режиме FPGA (если явно выставить режим X502_SetMode())?
Происходит всегда на одном и том же шаге?

alex_63_
29.03.2018 09:09:59
#11

Гость

Re: e502 tcp/ip передача

Эта ошибка появляется в любом варианте и fpga, и в тестовой прошивке.
Шаг каждый раз разный.
Если скомпилировать пример с сайта, то выводится только 1 блок и завершается работа.

29.03.2018 11:23:58
#12

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

Re: e502 tcp/ip передача

Странно, до этого с таким не встречался, а на windows если запускать этот же пример, это проблема проявляется?
Можете тогда по ошибке в ProcessData сохранить слова от модуля переданные на вход ProcessData в файл и прислать

29.03.2018 11:25:07
#13

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

Re: e502 tcp/ip передача

Да и на всякий случай, проверьте, что версия прошивки ARM последняя (1.0.19) и если что обновите отсюда http://www.lcard.ru/download/e502-m4.bin

Контакты

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

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

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

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