Документация Engee

Работа с внешним оборудованием через РИТМ в Engee

Страница в процессе разработки.

РИТМ — это аппаратное решение для запуска моделей в реальном времени. Оно позволяет интегрировать сценарии работы с физическим оборудованием и управлять им прямиком из Engee.

Чтобы приступить к работе с целевой платформой «РИТМ»:

  1. Добавьте машину РИТМ в Engee через приложение РИТМ.Управление машинами ritm icon.

  2. Установите поддержку блоков РИТМ:

    engee.package.install("RITM-Engee-Blocks")
  3. Установите пакет поддержки внешнего оборудования:

    engee.package.install("Engee-Device-Manager")
    Подробнее о процессе установки см. в Интеграция Engee с оборудованием.
  4. После этих шагов становятся доступны модули работы с внешним оборудованием, обеспечивающие программное управление целевой платформой «РИТМ». Для подключения модулей введите следующие команды:

    using Main.EngeeDeviceManager.Targets
    using Main.EngeeDeviceManager.Targets.RITM.RITM_API
  5. На последнем этапе создайте объект целевой платформы РИТМ для взаимодействия с устройствами и укажите 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 — возвращает результат профилирования модели на РИТМе.

Подробное описание каждого метода представлено в статье Программное управление РИТМ.

Пошаговый пример работы с моделью РИТМ

  1. Подключение модулей — подключите пространства имен, содержащие определения целевой платформы «РИТМ» и ее API:

    using Main.EngeeDeviceManager.Targets
    using Main.EngeeDeviceManager.Targets.RITM.RITM_API
  2. Создание объекта целевой платформы РИТМ и установка URL — создайте объект ritm, представляющий собой целевую платформу, и укажите IP-адрес машины РИТМ:

    ritm = Targets.RITM.Ritm()
    Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/")
  3. Проверка доступности РИТМ — проверьте, установлена ли связь с устройством РИТМ:

    RITM_API.isConnected(ritm)

    Если метод возвращает false, то проверьте IP-адрес и запущена ли клиентская программа на РИТМ.

  4. Сборка открытой в Engee модели на РИТМе в независимом режиме:

    model = Engee.engee.gcm()
    Targets.upload_model(ritm, model)
    Targets.generate_executable_code(ritm, model, false)
    Targets.compile_model(ritm, model)
  5. Запуск модели — запустите модель на машине РИТМ:

    Targets.start_model(ritm, model)

    После запуска модель начнет выполняться в заданном ранее режиме (в нашем случае в независимом).

  6. Остановка модели — остановите выполнение всех запущенных моделей на РИТМ:

    Targets.stop_model(ritm)
  7. Вывод содержимого директории на РИТМ — получите список файлов в указанной директории (/home/ritm/):

    RITM_API.listFiles(ritm, "/home/ritm/")
  8. Чтение содержимого файла — выведите содержимое файла (install_manifest.txt) по заданному пути (/home/ritm/build/newmodel_1/build):

    RITM_API.readFile(ritm, "install_manifest.txt"; path="/home/ritm/build/newmodel_1/build/")
  9. Получение файла в текущую директорию — получите указанный файл в Engee:

    RITM_API.getFile(ritm, "install_manifest.txt"; from="/home/ritm/build/newmodel_1/build/", to="")

    Если параметр to не указан, то файл будет сохранен в текущей директории Engee.

  10. Получение информации о памяти — запросите данные о потреблении памяти моделью:

    RITM_API.memInfo(ritm, "newmodel_1")
  11. Просмотр последних 10 строк логов — получите последние строки журнала выполнения модели:

    RITM_API.getLog(ritm, 10)

    Используйте их для отладки и диагностики модели.

  12. Создание скриншота и получение пути к нему — выполните снимок экрана с машины РИТМ:

    RITM_API.getScreenshot(ritm, "example.png")

    Файл будет сохранен во временной директории на РИТМа и путь к нему будет возвращен в виде строки.

  13. Проверка состояния модели — убедитесь, что модель запущена на целевой платформе «РИТМ»:

    RITM_API.isRunning(ritm, "newmodel_1")

    Если функция вернет true, то модель в процессе выполнения.

  14. Получение данных профилирования — получите данные профилирования модели с РИТМа в виде файла или строки:

    RITM_API.getData(ritm, "newmodel_1", "/user/", true)