libximc: Как использовать с...

libximc 3.0.2

Как использовать с...

Для приобретения первых навыков использования библиотеки создано простое тестовое приложение testappeasy_C.
Языки, отличные от C-подобных, поддерживаются с помощью вызовов с преобразованием аргументов типа stdcall.

Заметки
  Для работы с SDK требуется Microsoft Visual C++ Redistributable Package (поставляется с SDK, файлы vcredist_x86 или vcredist_x64).
  Для работы на Linux требуется установить оба пакета libximc7_x.x.x и libximc7-dev_x.x.x целевой архитектуры в указанном порядке. Для установки пакетов можно воспользоваться .deb командой:
  sudo dpkg -i <имя_пакета>.deb

## Visual C++

Тестовое приложение может быть собрано с помощью testapp.sln. Для компиляции необходимо использовать также MS Visual C++, mingw-library.

Убедитесь, что Microsoft Visual C++ Redistributable Package установлен. Откройте проект examples/test_C/testapp_C/testapp.sln, выполните сборку и запустите приложение из среды разработки.

В случае, если планируется использовать Ethernet-адаптер 8Eth1, в файле testapp.c перед сборкой нужно прописать IP адрес Ethernet-адаптера (переменная enumerate_hints).

## CodeBlocks

Тестовое приложение может быть собрано с помощью testappeasy_C.cbp или testapp_C.cbp. Для компиляции необходимо использовать также MS Visual C++, mingw-library.

Убедитесь, что Microsoft Visual C++ Redistributable Package установлен. Откройте проект examples/test_C/testappeasy_C/testappeasy_C/testappeasy_C.cbp или examples/test_C/testapp_C/testapp_C.cbp, выполните сборку и запустите приложение из среды разработки.

## MinGW

MinGW это вариант GCC для платформы win32. Требует установки пакета MinGW.

testapp, скомпилированный с помощью MinGW, может быть собран с MS Visual C++ или библиотеками mingw:

mingw32-make -f Makefile.mingw all

Далее скопируйте libximc.dll в текущую директорию и запустите testapp.exe.

В случае, если планируется использовать Ethernet-адаптер 8Eth1, в файле testapp.c перед сборкой нужно прописать IP адрес Ethernet-адаптера (переменная enumerate_hints).

## C++ Builder

В первую очередь вы должны создать подходящую для C++ Builder библиотеку. Библиотеки Visual C++ и Builder не совместимы. Выполните:

implib libximc.lib libximc.def

Затем скомпилируйте тестовое приложение:

bcc32 -I..\..\ximc\win32 -L..\..\ximc\win32 -DWIN32 -DNDEBUG -D_WINDOWS testapp.c libximc.lib

В случае, если планируется использовать Ethernet-адаптер 8Eth1, в файле testapp.c перед сборкой нужно прописать IP адрес Ethernet-адаптера (переменная enumerate_hints).

Также существует пример использования библиотеки libximc в проекте С++ Builder, но он не поддерживается.

## XCode

testapp должен быть собран проектом XCode testapp.xcodeproj. Используйте конфигурацию Release. Библиотека поставляется в формате macOS framework, в той же директории находится собранное тестовое приложение testapp.app.

Запустите приложение testapp.app проверьте его работу в Console.app.

В случае, если планируется использовать Ethernet-адаптер 8Eth1, в файле testapp.c перед сборкой нужно прописать IP адрес Ethernet-адаптера (переменная enumerate_hints).

## GCC

Убедитесь, что libximc (с помощью rpm или deb) установлена на вашей системе. Пакеты должны устанавливаться с помощью package manager'а вашей ОС. Для macOS предоставляется фреймворк.

Убедитесь, что пользователь принадлежит к группе, позволяющей доступ к COM-порту (например, dip или serial).

testapp может быть собран следующим образом с установленной библиотекой:

make

Для кросс-компиляции (архитектура целевой системы отличается от архитектуры хоста) следует передать флаг -m64 или -m32 компилятору. Для сборки universal binary на macOS необходимо использовать вместо этого флаг -arch. Обратитесь к документации компилятора.

Затем запустите приложение с помощью:

make run

Примечание: make run на macOS копирует библиотеку в текущую директорию. Если вы хотите использовать библиотеку из другой директории, пожалуйста укажите в LD_LIBRARY_PATH или DYLD_LIBRARY_PATH путь к директории с библиотекой.

В случае, если планируется использовать Ethernet-адаптер 8Eth1, в файле testapp.c перед сборкой нужно прописать IP адрес Ethernet-адаптера (переменная enumerate_hints).

## .NET

Для использования в .NET предлагается обертка ximc/winX/wrappers/csharp/ximcnet.dll. Она распространяется в двух различных архитектурах. Тестировалось на платформах .NET от 2.0 до 4.5.1.

Тестовые приложения на языке C# для Visual Studio 2013 расположены в директориях test_CSharp (для C#) и test_VBNET (для VB.NET). Откройте проекты и соберите их.

В случае, если планируется использовать Ethernet-адаптер 8Eth1, в файле testapp.cs или testapp.vb (в зависимости от языка) перед сборкой нужно прописать IP адрес Ethernet-адаптера (переменная enumerate_hints для C#, переменная enum_hints для VB).

## Java

Как запустить пример на Linux. Перейдите в examples/test_Java/compiled-winX/ и выполните

java -cp /usr/share/java/libjximc.jar:test_Java.jar ru.ximc.TestJava

Как запустить пример на Windows. Перейдите в examples/test_Java/compiled-winX/. Запустите:

java -classpath libjximc.jar -classpath test_Java.jar ru.ximc.TestJava

Как модифицировать и пересобрать пример. Исходный текст расположен внутри test_Java.jar. Перейдите в examples/test_Java/compiled. Распакуйте jar:

jar xvf test_Java.jar ru META-INF

Затем пересоберите исходные тексты:

javac -classpath /usr/share/java/libjximc.jar -Xlint ru/ximc/TestJava.java

или для Windows или macOS:

javac -classpath libjximc.jar -Xlint ru/ximc/TestJava.java

Затем соберите jar:

jar cmf MANIFEST.MF test_Java.jar ru

В случае, если планируется использовать Ethernet-адаптер 8Eth1, в файле TestJava.java перед сборкой нужно прописать IP адрес Ethernet-адаптера (переменная ENUM_HINTS).

## Python

Измените текущую директорию на examples/test_Python/xxxxtest. NB: Для работы с библиотекой libximc в примере используется модуль-обёртка ximc/crossplatform/wrappers/python/libximc.

Для запуска:

python xxxx.py

В случае, если планируется использовать Ethernet-адаптер 8Eth1, в файле test_Python.py перед запуском нужно прописать IP адрес Ethernet-адаптера (переменная enum_hints).

## MATLAB

Тестовая программа на MATLAB testximc.m располагается в директории examples/test_MATLAB.

Перед запуском:

На macOS: скопируйте ximc/macosx/libximc.framework, ximc/macosx/wrappers/ximcm.h, ximc/ximc.h в директорию examples/test_MATLAB. Установите XCode, совместимый с Matlab

На Linux: установите libximc*deb и libximc-dev*deb нужной архитектуры. Далее скопируйте ximc/macosx/wrappers/ximcm.h в директорию examples/matlab. Установите gcc, совместимый с Matlab.

Для проверки совместимых XCode и gcc проверьте документы https://www.mathworks.com/content/dam/mathworks/mathworks-dot-com/support/sysreq/files/SystemRequirements-Release2014a_SupportedCompilers.pdf или похожие.

На Windows: перед запуском ничего делать не нужно

Измените текущую директорию в MATLAB на examples/test_MATLAB. Затем запустите в MATLAB:

testximc

В случае, если планируется использовать Ethernet-адаптер 8Eth1, в файле testximc.m перед запуском нужно прописать IP адрес Ethernet-адаптера (переменная enum_hints).

# Логирование в файл

Если программа, использующая libximc, запущена с установленной переменной окружения XILOG, то это включит логирование в файл. Значение переменной XILOG будет использовано как имя файла. Файл будет открыт на запись при первом событии лога и закрыт при завершении программы, использующей libximc. В лог записываются события отправки данных в контроллер и приема данных из контроллера, а также открытия и закрытия порта.

# Требуемые права доступа

Библиотеке не требуются особые права для выполнения, но нужены права доступа на чтение-запись в USB-COM устройства в системе. Исключением из этого правила является функция только для ОС Windows "fix_usbser_sys()" - если процесс использующий библиотеку не имеет повышенных прав, то при вызове этой функции программная переустановка устройства не будет работать.

# Си-профили

Си-профили это набор заголовочных файлов, распространяемых вместе с библиотекой libximc. Они позволяют в программе на языке C/C++ загрузить в контроллер настройки одной из поддерживаемых подвижек вызовом всего одной функции. Пример использования си-профилей вы можете посмотреть в директории примеров "examples/test_C/testprofile_C".

# Python-профили

Python-профили - это набор конфигурационных функций, распространяемых вместе с библиотекой libximc. Они позволяют в программе на языке Python загрузить в контроллер настройки одной из поддерживаемых подвижек вызовом всего одной функции.
Пример использования python-профилей вы можете посмотреть в директории примеров "examples/test_Python/profiletest/testpythonprofile.py".