Есть ли в CAPL функция для запуска / открытия исполняемого файла в фоновом режиме?

Я хочу запустить исполняемый файл из сценария CAPL. Есть ли для этого какая-либо функция?
Я ищу функцию, которая будет запускать исполняемый файл в фоновом режиме. Например. если получено определенное сообщение, то запустить приложение.
Есть ли возможность в CAPL для этого?


person Harshan.B    schedule 17.10.2017    source источник


Ответы (2)


Да, для этого есть две функции:

long sysExec(char cmd[], char params[]);
long sysExec(char cmd[], char params[], char directory[]);

long sysExecCmd(char cmd[], char params[]);
long sysExecCmd(char cmd[], char params[], char directory[]);

Эти функции выполняют внешнюю команду. Они не ждут, пока команда завершит свое выполнение. Возвращаемое значение - 1, если команда была успешно запущена; в противном случае - 0. Обратите внимание, что значение, возвращаемое самой командой, не будет возвращено, поскольку вызов не ожидает завершения команды.

sysExec должен быть предоставлен исполняемый файл; sysExecCmd вызывает cmd.exe /K с первым параметром, который открывает командное окно, в котором команда выполняется, как если бы она была введена напрямую.

Обратите внимание, что в случае распределенной среды моделирования, использующей устройство VN8900, модуль реального времени (семейство VT 6000) или сервер CANoe RT, sysExec выполняет запрошенную команду на удаленной платформе.

Вот пример:

sysExec("C:\\windows\\notepad.exe", "");
person dymanoid    schedule 18.10.2017

Третий вариант, если вам не нужна параллельная обработка, - это функция testwaitforsyscall ().

Это будет ждать x тайм-аут для возврата вашего внешнего исполняемого файла и проанализирует, правильно ли, некорректно, с ошибками или истекло ли время ожидания вашего приложения.

person VioletVynil    schedule 21.09.2018
comment
Эта опция, являющаяся частью TFS, требует TestCase, поэтому она доступна только в онлайн-режиме. - person Daemon Painter; 16.12.2019