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?¶

После запуска программы откроется командная строка. В ней Вы увидите сообщение: «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, выполните сборку и запустите приложение из среды разработки.

После запуска программы откроется командная строка. В ней Вы увидите сообщение: «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) соответственно. Откройте проекты и соберите.