Работа с внешним оборудованием через РИТМ в Engee
Страница в процессе разработки. |
РИТМ — это аппаратное решение для запуска моделей в реальном времени. Оно позволяет интегрировать сценарии работы с физическим оборудованием и управлять им прямиком из 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() Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/")
Основные методы работы с РИТМ
Для работы с оборудованием на РИТМ доступны следующие методы:
-
Targets.upload_model
— загружает модель на РИТМ. -
Targets.generate_executable_code
— генерирует Си-обвязку на РИТМе. -
Targets.compile_model
— собирает модель на РИТМе. -
Targets.start_model
— запускает модель на РИТМе. -
Targets.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() Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/")
-
Проверка доступности РИТМ — проверьте, установлена ли связь с устройством РИТМ:
RITM_API.isConnected(ritm)
Если метод возвращает
false
, то проверьте IP-адрес и запущена ли клиентская программа на РИТМ. -
Сборка открытой в Engee модели на РИТМе в независимом режиме:
model = Engee.engee.gcm() Targets.upload_model(ritm, model) Targets.generate_executable_code(ritm, model, false) Targets.compile_model(ritm, model)
-
Запуск модели — запустите модель на машине РИТМ:
Targets.start_model(ritm, model)
После запуска модель начнет выполняться в заданном ранее режиме (в нашем случае в независимом).
-
Остановка модели — остановите выполнение всех запущенных моделей на РИТМ:
Targets.stop_model(ritm)
-
Вывод содержимого директории на РИТМ — получите список файлов в указанной директории (
/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)