6.1.1. Работа с контроллером в среде Visual Studio¶
Скачайте пример программы для VisualStudio со страницы Программное обеспечение .
Примечание
Тестовое приложение может быть собрано с помощью testapp.sln. Для компиляции необходимо использовать также MS Visual C++, mingw-library не поддерживается. Убедитесь, что Microsoft Visual C++ Redistributable Package 2013 установлен.
Откройте проект examples/testapp/testapp.sln, выполните сборку и запустите приложение из среды разработки.
Распакуйте архив и запустите «testapp».
После запуска программы откроется командная строка. В ней Вы увидите сообщение: «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, выполните сборку и запустите приложение из среды разработки.
После запуска программы откроется командная строка. В ней Вы увидите сообщение: «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» - закрывает указанное устройство.