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

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

Примечание

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

Откройте проект examples/testapp/testapp.sln, выполните сборку и запустите приложение из среды разработки.

Распакуйте архив и запустите «testapp».

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

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

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

Примечание

set_bindy_key( «keyfile.sqlite» ); Необходимо вызывать перед любым вызовом «enumerate_devices» или «open_device», если вы хотите использовать сетевые контроллеры. Принимает как абсолютные, так и относительные пути, относительные пути разрешаются относительно рабочего каталога процесса. Если вам не нужны сетевые устройства, то «set_bindy_key» является необязательным.

После открытия устройства программа считывает поля данных из ссылки на структуру «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» закрывает указанное устройство.

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

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

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

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

Примечание

set_bindy_key( «keyfile.sqlite» ); Необходимо вызывать перед любым вызовом «enumerate_devices» или «open_device», если вы хотите использовать сетевые контроллеры. Принимает как абсолютные, так и относительные пути, относительные пути разрешаются относительно рабочего каталога процесса. Если вам не нужны сетевые устройства, то «set_bindy_key» является необязательным.

С помощью команды «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» - закрывает указанное устройство.