6.1.2. Работа с контроллером в среде Delphi¶
Скачайте пример программы для Delphi со страницы Программное обеспечение.
Примечание
Обертка для использования в Delphi libximc.dll предлагается как модуль wrappers/pascal/ximc.pas. Консольное тестовое приложение размещено в директории «testdelphi». Проверено с Delphi 6 на 32-битной системе. Просто скомпилируйте, разместите DLL в директории с исполняемым модулем и запустите его.
Предупреждение
Для работы примера скопируйте файлы ximc.pas, keyfile.sqlite, libximc.dll, xiwrapper.dll, bindy.dll из папки ximc рядом с «testdelphi.dpr» и запустите «testdelphi.dpr» с помощью Вашей Delphi IDE.
Чтобы запустить скомпилированный пример из командной строки, скопируйте все файлы (keyfile.sqlite, libximc.dll, … и т.д.) в папку «compiled-win32» и запустите «testdelphi.exe»
Откройте проект examples/testdelphi/testdelphi.dpr, выполните сборку и запустите приложение из среды разработки.
Распакуйте архив и запустите «testdelphi.ехе».
![../../../_images/testdelphi.png](../../../_images/testdelphi.png)
После запуска программы откроется командная строка. В ней Вы увидите сообщение: «Hello»
Демонстрационная программа «testdelphi» использует команду «result_t XIMC_API get_status (device_t id, status_t ,status)» для вывода текущего состояния устройств. Также «testdelphi» указывает, какой порт она удерживает.
Примечание
set_bindy_key( «keyfile.sqlite» ); Необходимо вызывать перед любым вызовом «enumerate_devices» или «open_device», если вы хотите использовать сетевые контроллеры. Принимает как абсолютные, так и относительные пути, относительные пути разрешаются относительно рабочего каталога процесса. Если вам не нужны сетевые устройства, то «set_bindy_key» является необязательным.
С помощью команды «open_device» программа «testdelphi» открывает устройство в режиме эксклюзивного доступа.
Предупреждение
Библиотека Libximc работает с контроллером в режиме эксклюзивного доступа. Каждый контроллер, открытый билиотекой libximc (XiLab тоже использует эту билиотеку), должен быть закрыт, прежде чем может быть использован другим процессом.
После открытия устройства программа считывает поля данных из ссылки на структуру «status_t».
rpm | int CurSpeed | Текущая скорость |
pos | float CurPosition | Первичное поле, в котором хранится текущая позиция, как бы ни была устроена обратная связь |
flags | unsigned int Flags | Флаги состояния |
Функция result_t XIMC_API get_engine_settings (device_t id, engine_settings_t *engine settings) считывает настройки двигателя
После этого программа «testdelphi» выполняет команду движения вправо «сommand_right». После успешного выполнения команды «command_right», вызывается команда «command_stop».
Команда «calibration.A = 0.1;» - устанавливает калибровочную константу 0.1 (один шаг контроллера равен этому количеству единиц)
Команда «calibration.MicrostepMode = engine_settings.MicrostepMode;» - используется для установки режима микрошагов, также команда используется для правильного преобразования микрошагов в калиброванные единицы измерения.
После программа «testdelphi» считывает состояние калиброванного устройства.
Предупреждение
В конце на устройство отправляется команда «command_stop». «Close_device» - закрывает указанное устройство.