6.1.7. Краткое описание работы с поддерживаемыми языками программирования¶
Для приобретения первых навыков использования библиотеки создано простое тестовое приложение testapp. Языки, отличные от C-подобных, поддерживаются с помощью вызовов с преобразованием аргументов типа stdcall.
Простое тестовое приложение на языке C расположено в директории «examples/test_C/testapp_C», проект на C# - в «examples/test_CSharp», на VB.NET - в «examples/test_VBNET», для Delphi 6 - в «example/test_Delphi», для MATLAB - «examples/test_MATLAB», для Java - «examples/test_Java», для Python - «examples/test_Python». Библиотеки, заголовочные файлы и другие необходимые файлы расположены в директориях «win32»/»win64», «MacOSX» и подобных. В комплект разработчика также входят уже скомпилированные примеры: testapp и testappeasy в варианте 32 и 64 бита под Windows и только 64 бита под OSX, test_CSharp, test_VBNET, test_Delphi - только 32 бита, test_Java - кроссплатформенный, test_MATLAB и test_Python не требуют компиляции. Также руководство по программированию можно скачать по этой ссылке.
Примечание
Для работы с SDK требуется Microsoft Visual C++ Redistributable Package 2013 (поставляется с SDK, файлы vcredist_x86 или vcredist_x64)
6.1.7.1. Visual C++¶
Тестовое приложение может быть собрано с помощью testapp.sln. Для компиляции необходимо использовать также MS Visual C++, mingw-library не поддерживается. Убедитесь, что Microsoft Visual C++ Redistributable Package 2013 установлен.
Откройте проект examples/testapp/testapp.sln, выполните сборку и запустите приложение из среды разработки.
6.1.7.2. .NET (C# и Visual Basic)¶
Для использования в .NET предлагается обертка wrappers/csharp/ximcnet.dll. Она распространяется в двух различных архитектурах и зависит от .NET 2.0.
Тестовые приложения на языке C# для Visual Studio 2013 расположены в директориях testcs (для C#) и testvbnet (для VB.NET). Откройте проекты и соберите.
6.1.7.3. Delphi¶
Обертка для использования в Delphi libximc.dll предлагается как модуль wrappers/pascal/ximc.pas. Консольное тестовое приложение размещено в директории «testdelphi». Проверено с Delphi 6 на 32-битной системе. Просто скомпилируйте, разместите DLL в директории с исполняемым модулем и запустите его.
6.1.7.4. Matlab¶
Тестовая программа на MATLAB testximc.m располагается в директории examples/testmatlab.
Перед запуском:
На OS X: скопируйте ximc/macosx/libximc.framework, ximc/macosx/wrappers/ximcm.h, ximc/ximc.h в директорию examples/matlab. Установите XCode, совместимый с Matlab.
На Linux: установите libximc*deb и libximc-dev*deb нужной архитектуры. Далее скопируйте ximc/macosx/wrappers/ximcm.h в директорию examples/matlab. Установите gcc, совместимый с Matlab.
Для проверки совместимых XCode и gcc проверьте документы или похожие.
На Windows: перед запуском ничего делать не нужно. Измените текущую директорию в MATLAB на examples/matlab. Затем запустите в MATLAB:
6.1.7.5. Java¶
Как запустить пример на Linux. Перейдите в ximc-2.x.x/examples/testjava/compiled/ и выполните:
$ java -cp /usr/share/java/libjximc.jar:testjava.jar ru.ximc.TestJava
Как запустить пример на Windows или Mac. Перейдите в ximc-2.x.x./examples/testjava/compiled/. Скопируйте содержимое ximc-2.x.x/ximc/win64/ или ximc-2.x.x/ximc/macosx/ соответственно в текущую директорию. Затем запустите:
$ java -classpath libjximc.jar -classpath testjava.jar ru.ximc.TestJava
Как модифицировать и пересобрать пример. Исходный текст расположен внутри testjava.jar. Перейдите в examples/testjava/compiled. Распакуйте jar:
$ jar xvf testjava.jar ru META-INF
Затем пересоберите исходные тексты:
$ javac -classpath /usr/share/java/libjximc.jar -Xlint ru/ximc/TestJava.java
или для Windows или Mac:
$ javac -classpath libjximc.jar -Xlint ru/ximc/TestJava.java
Затем соберите jar:
$ jar cmf META-INF/MANIFEST.MF testjava.jar ru
6.1.7.6. Python¶
Измените текущую директорию на examples/test_Python/xxxxtest.
На Linux: может понадобиться установить LD_LIBRARY_PATH, чтобы Python мог найти библиотеки с RPATH. Например, запустите:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`
На Windows и MacOS: перед запуском ничего делать не нужно. Запустите Python 2 или Python 3:
python xxxx.py
Примечание
Логирование в файл. Если программа, использующая libximc, запущена с установленной переменной окружения XILOG, то это включит логирование в файл. Значение переменной «XILOG» будет использовано как имя файла. Файл будет открыт на запись при первом событии лога и закрыт при завершении программы, использующей libximc. В лог записываются события отправки данных в контроллер и приема данных из контроллера, а также открытия и закрытия порта.
Примечание
Требуемые права доступа: библиотеке не требуются особые права для выполнения, а нужен только доступ на чтение-запись в USB-COM устройства в системе. Исключением из этого правила является функция только для ОС Windows «fix_usbser_sys()» - если процесс использующий библиотеку не имеет повышенных прав, то при вызове этой функции программная переустановка устройства не будет работать.
Примечание
Си-профили. Си-профили это набор заголовочных файлов, распространяемых вместе с библиотекой libximc. Они позволяют в программе на языке C/C++ загрузить в контроллер настройки одной из поддерживаемых подвижек вызовом всего одной функции. Пример использования си-профилей вы можете посмотреть в директории примеров «testcprofile».
6.1.7.7. Python (Jupyter Notebook)¶
Мы добавили поддержку Jupyter Notebook, чтобы упростить программирование на Python.
В приведенном ниже блокноте показано, как работать с контроллерами двигателей Standa 8SMC5 через привязку libximc python.
Если вы не знакомы с Jupyter Notebooks, обратитесь к официальной документации.
Открыть в Colab
Открыть в HTML-формате
Примечание
По умолчанию этот блокнот использует виртуальный контроллер. Для демонстрации его работы реальный контроллер вам не потребуется, но если он у вас есть, вы также можете протестировать его с помощью этого блокнота.