Подача окна управления сценариями TCL через C ++ Console

Я получил программное обеспечение для симуляции автомобиля, которое позволяет вводить параметры через окно управления скриптом.

Что я хочу сделать, так это написать небольшое приложение на C ++, которое выполняет некоторые вычисления и начинает вводить построчные команды в окно управления сценарием tcl автосимулятора.

Идея состоит в том, чтобы использовать датчик отслеживания головы, чтобы получить текущую позицию в плоскости xyz, а затем на основе данных выполнить некоторую обработку и автоматически написать что-то вроде:

>> Movie eval {dict set View(0:0) xrot 12 yrot 0 zrot 0}

в окно скрипта, чтобы настроить текущий вид.

Приведенная выше команда переводит панорамирование текущего изображения с камеры в положение 12 градусов вправо (x-направление), где 0 градусов = взгляд вперед.

Итак, мой вопрос сейчас:
Как я могу сказать моему приложению C ++ написать вышеуказанную команду в открытое окно управления сценарием?

1

Решение

Простейшим способом может быть использование comm пакет в Tcllib (стандартная библиотека сообщества Tcl). Единственная реальная сложность заключается в том, что используемый им протокол не является общедоступным (в основном это отправка команд, закодированных в определенном формате), поэтому вам понадобится какой-то способ легко об этом говорить.

Самый простой способ говорить об этом — встроить интерпретатор Tcl в ваше приложение C ++. Тогда вы сможете загрузить comm пакет в переводчик и использовать comm::comm send чтобы сделать то, что вы хотите (вам также потребуется пакет на другой стороне и скопировать через идентификатор, но это должно быть достаточно просто).

set remoteid ???;  # Look this up with [comm::comm self] on the other side
comm::comm send $remoteid \
dict set View(0:0) xrot 12 yrot 0 zrot 0

Конечно, вам нужно обернуть это внутри соответствующих звонков Tcl_Eval()сначала создав локального переводчика с Tcl_CreateInterp() после инициализации библиотеки Tcl с Tcl_FindExecutable()и так далее, но это просто стандартное встраивание.

0

Другие решения


По вопросам рекламы [email protected]