8.7. Виртуальный контроллер, как в XILab

Вы можете использовать виртуальный контроллер в своих программах. Для этого используйте функцию:

device_t XIMC_API open_device (const char *uri)

Открывает устройство по имени uri и возвращает идентификатор, который будет использоваться для обращения к устройству.

Аргументы

uri- уникальный идентификатор устройства. Uri устройства имеет вид:

"xi-com:port"               - # Serial port
"xi-net://host/serial"      - # XiNet connection
"xi-udp://<ip/host>:<port>" - # Raw UDP connection
"xi-tcp://<ip/host>:<port>" - # Raw TCP connection
"xi-emu:///file"            - # Virtual device

Пример:

"xi-com:\\.\COM3        # in Windows
"xi-com:/dev/tty.s123"` # in Linux/Mac

Для сетевого устройства «host» это IPv4 адрес или полностью определённое имя домена, «serial» это серийный номер устройства в шестнадцатеричной системе.

Пример:
"xi-net://192.168.0.1/00001234"
"xi-net://hostname.com/89ABCDEF"

Для работы по UDP/TCP протоколу используйте «xi-udp://<ip/host>:<port>» или «xi-tcp://<ip/host>:<port>».

Пример:

"xi-udp://192.168.0.1:1818"
"xi-tcp://192.168.0.1:1820"

Для виртуального устройства «file» это путь к файлу с сохраненным состоянием устройства. Если файл не существует, он будет создан и инициализирован значениями по умолчанию.

Пример:

"xi-emu:///C:\Users\<user>\AppData\Roaming\XILab.conf/V_1"   # in Windows
"xi-emu:///home/<user>/.config/XILab.conf/V_1"               # in Linux/Mac

Вы также можете использовать виртуальный контроллер из программного обеспечения XILab с загруженным профилем. Для этого выберите и откройте виртуальный контроллер в XILab.
После загрузите необходимый профиль (»Settings» -> «Load setting from file…») или просто установите необходимые параметры и нажмите «Apply». Затем файл будет сохранен в каталоге C:UsersuserAppDataRoamingXILab.conf/V_x, где x - номер виртуального контроллера.

В вашей программе вы можете открыть этот виртуальный контроллер, указав полный путь к файлу.
Например:

device_name = "xi-emu:///C:\Users\<user>\AppData\Roaming\XILab.conf/V_1"
device = open_device(device_name)
../../_images/virtual_device.png

Демонстрация работы виртуального контроллера

Внимание

Функция загрузки профиля реализована только в интерфейсе XILab. Если вам нужно изменить настройки этапа во время выполнения кода, вы можете использовать альтернативный вариант. Вы можете загрузить профиль на флэш-память контроллера (откройте XILab->Settings->Load setting from file… ->выберите свой профиль->ОК->Apply->Save settings to flash). Затем вы можете изменить настройки в вашей программе. Как только вы захотите вернуть все настройки по умолчанию, выполните Команду READ