Пример использования программного управления для работы с КПМ «РИТМ»
РИТМ — это аппаратное решение для запуска моделей в реальном времени. Оно позволяет интегрировать сценарии работы с физическим оборудованием и управлять им прямиком из Engee.
Чтобы приступить к работе с целевой платформой «РИТМ»:
-
Добавьте машину РИТМ в Engee через приложение РИТМ.Управление машинами
. -
Установите поддержку блоков РИТМ:
engee.package.install("RITM-Engee-Blocks") -
Установите пакет поддержки внешнего оборудования:
engee.package.install("Engee-Device-Manager")Подробнее о процессе установки см. в Engee.Интеграции. -
После этих шагов становятся доступны модули работы с внешним оборудованием, обеспечивающие программное управление целевой платформой «РИТМ». Для подключения модулей введите следующие команды:
using Main.EngeeDeviceManager.Targets using Main.EngeeDeviceManager.Targets.RITM.RITM_API -
На последнем этапе создайте объект целевой платформы РИТМ для взаимодействия с устройствами и укажите IP-адрес соответствующего устройства:
ritm = Targets.RITM.Ritm() ritm.set_url("http://192.168.56.3:8000/")
Основные методы работы с РИТМ
Для работы с оборудованием на РИТМ доступны следующие методы:
-
ritm.upload_model— загружает модель на РИТМ. -
ritm.generate_executable_code— генерирует Си-обвязку на РИТМе. -
ritm.compile_model— собирает модель на РИТМе. -
ritm.start_model— запускает модель на РИТМе. -
ritm.stop_model— останавливает модель на РИТМе. -
RITM_API.isConnected— проверяет доступность РИТМа. -
RITM_API.isRunning— проверяет запущена ли модель РИТМа. -
RITM_API.listFiles— выводит список файлов в указанной директории. -
RITM_API.readFile— выводит содержимое указанного файла из заданной директории. -
RITM_API.getFile— получает указанный файл из заданной директории. -
RITM_API.memInfo— выводит информацию о потребляемой моделью памяти. -
RITM_API.getLog— возвращает указанное число строк логов выполнения модели на РИТМе. -
RITM_API.getScreenshot— создает скриншот на РИТМе и возвращает путь к файлу изображения. -
RITM_API.getData— возвращает результат профилирования модели на РИТМе.
| Подробное описание каждого метода представлено в статье Программное управление РИТМ. |
Пошаговый пример работы с моделью РИТМ
-
Подключение модулей — подключите пространства имен, содержащие определения целевой платформы «РИТМ» и ее API:
using Main.EngeeDeviceManager.Targets using Main.EngeeDeviceManager.Targets.RITM.RITM_API -
Создание объекта целевой платформы РИТМ и установка URL — создайте объект
ritm, представляющий собой целевую платформу, и укажите IP-адрес машины РИТМ:ritm = Targets.RITM.Ritm() ritm.set_url("http://192.168.56.3:8000/") -
Проверка доступности РИТМ — проверьте, установлена ли связь с устройством РИТМ:
RITM_API.isConnected(ritm)Если метод возвращает
false, то проверьте IP-адрес и запущена ли клиентская программа на РИТМ. -
Сборка открытой в Engee модели на РИТМе в независимом режиме:
model = Engee.engee.gcm() ritm.upload_model(model) ritm.generate_executable_code(model, false) ritm.compile_model(model) -
Запуск модели — запустите модель на машине РИТМ:
ritm.start_model(model)После запуска модель начнет выполняться в заданном ранее режиме (в нашем случае в независимом).
-
Остановка модели — остановите выполнение всех запущенных моделей на РИТМ:
ritm.stop_model() -
Вывод содержимого директории на РИТМ — получите список файлов в указанной директории (
/home/ritm/):RITM_API.listFiles(ritm, "/home/ritm/") -
Чтение содержимого файла — выведите содержимое файла (install_manifest.txt) по заданному пути (
/home/ritm/build/newmodel_1/build):RITM_API.readFile(ritm, "install_manifest.txt"; path="/home/ritm/build/newmodel_1/build/") -
Получение файла в текущую директорию — получите указанный файл в Engee:
RITM_API.getFile(ritm, "install_manifest.txt"; from="/home/ritm/build/newmodel_1/build/", to="")Если параметр
toне указан, то файл будет сохранен в текущей директории Engee. -
Получение информации о памяти — запросите данные о потреблении памяти моделью:
RITM_API.memInfo(ritm, "newmodel_1")
-
Просмотр последних 10 строк логов — получите последние строки журнала выполнения модели:
RITM_API.getLog(ritm, 10)Используйте их для отладки и диагностики модели.
-
Создание скриншота и получение пути к нему — выполните снимок экрана с машины РИТМ:
RITM_API.getScreenshot(ritm, "example.png")Файл будет сохранен во временной директории на РИТМа и путь к нему будет возвращен в виде строки.
-
Проверка состояния модели — убедитесь, что модель запущена на целевой платформе «РИТМ»:
RITM_API.isRunning(ritm, "newmodel_1")Если функция вернет
true, то модель в процессе выполнения. -
Получение данных профилирования — получите данные профилирования модели с РИТМа в виде файла или строки:
RITM_API.getData(ritm, "newmodel_1", "/user/", true)