6.1.1. Работа с контроллером в среде Visual Studio

Скачайте примеры программ для VisualStudio со страницы Программное обеспечение .

Комплект разработчика также содержит предварительно скомпилированные примеры: testapp и testappeasy как 32 и 64-битные приложения для Windows и 64-битное приложение для OSX, test_CSharp, test_VBNET - только 32-битные. Руководство по программированию можно найти по этой ссылке.

6.1.1.1. Visual C++

Примеры, написанные на языке C, находятся в каталоге «examples/test_C».

Скомпилированная версия библиотеки содержит уже скомпилированные примеры, вы можете просто запустить их. Распакуйте архив и запустите, например, программу «testapp».

Также примеры можно собрать с помощью <имя_примера>.sln. Библиотека также должна быть скомпилирована с помощью MS Visual C++, mingw-library не поддерживается. Убедитесь, что установлен Microsoft Visual C++ Redistributable Package 2013.
Например, откройте решение examples/testapp/testapp.sln, соберите и запустите из IDE.

6.1.1.1.1. Что делает программа testapp?

../../../_images/testapp.png

После запуска программы откроется командная строка. В ней Вы увидите сообщение: «Hello! I`m a stupid test program!»

Программа «testapp» сообщает версию используемой библиотеки, а также сообщает свою битность. Также «testapp» указывает, какой порт она удерживает.

После открытия устройства программа считывает поля данных из ссылки на структуру «status_t».

rpm int CurSpeed Текущая скорость
pos float CurPosition Первичное поле, в котором хранится текущая позиция, как бы ни была устроена обратная связь
upwr int Upwr Напряжение на силовой части, десятки мВ
ipwr int Ipwr Ток потребления силовой части
flags unsigned int Flags Флаги состояния
mvsts unsigned int MvCmdSts Состояние команды движения

Функция result_t XIMC_API get_device_information (device_t id, device_information_t *device information) - Возвращает информацию об устройстве

Функция result_t XIMC_API get_engine_settings (device_t id, engine_settings_t *engine settings) - Считывает настройки двигателя

Структура engine_settings_calb_t - result_t XIMC_API set_engine_settings_calb (device_t id, const engine_settings_calb_t *engine_settings - calb, const calibration_t *calibration)

После этого программа testapp отправляет в контроллер команду движения влево в течение 2 секунд «command_left». После успешного выполнения команды «command_left», вызывается команда остановки «command_stop».

Важно

В конце на устройство отправляется команда «command_stop». «Close_device» закрывает указанное устройство.

6.1.1.1.2. Что делает программа testappeasy?

Программа «testappeasy» не так уж сильно отличается от программы «testapp». Откройте проект examples/testappeasy/testappeasy.sln, выполните сборку и запустите приложение из среды разработки.

../../../_images/testappeasy.png

После запуска программы откроется командная строка. В ней Вы увидите сообщение: «This is a ximc test program.»

Программа умеет сообщать версию используемой библиотеки.

С помощью команды «open_device» программа «testappeasy» открывает устройство в режиме эксклюзивного доступа.

Предупреждение

Библиотека Libximc работает с контроллером в режиме эксклюзивного доступа. Каждый контроллер, открытый билиотекой libximc (XiLab тоже использует эту билиотеку), должен быть закрыт, прежде чем может быть использован другим процессом.

После открытия устройства программа testappeasy отправляет в контроллер команду движения влево в течении 3 секунд «command_left». После успешного выполнения команды «command_left» вызывается команда остановки «command_stop».

Команда «calibration.A = 0.1;» устанавливает калибровочную константу 0.1 (один шаг контроллера равен этому количеству единиц)

Команда «calibration.MicrostepMode = engine_settings.MicrostepMode;» - Используется для установки режима микрошагов, используется для правильного преобразования микрошагов в калиброванные единицы измерения.

После программа «testappeasy» считывает состояние калиброванного устройства с устройства.

В конце на устройство отправляется команда «command_stop». «Close_device» - закрывает указанное устройство.

Примечание

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

6.1.1.2. .NET (C# и Visual Basic)

Тестовые приложения C# находится в «examples/test_CSharp», VB.NET - «examples/test_VBNET». Обертка для libximc.dll - wrappers/csharp/ximcnet.dll. Она поставляется с двумя различными архитектурами и зависит от .NET 2.0.

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