# Интерфейс взаимодействия с модулем Для взаимодействия с модулями "ГеоСкан Пионер" используются два подхода: - Обработка данных с пинов/UART (LUA) - Передача данных на другое устройство (pioneer_sdk) ## LUA Для взаимодействия модуля с LUA-скриптом, обработка изображений внутри LUA-скрипта не целесообразна, поэтому требуется реализация логики обработки изображений на самом модуле (так, например, реализован модуль [Камера OpenMV](https://docs.geoscan.aero/ru/master/module/openMV.html)) В этом случае требуется добавить в модуль дополнительный контроллер (В случае с OpenMV использовался STM32) - Цена увеличится примерно на 65 долларов Схема взаимодействия Пионера с модулем: ```mermaid sequenceDiagram participant P as Пионер participant M as Контроллер модуля participant C as Камера P->>M: Запрос проверки activate M C-->>M: Изображение Note over M: Обработка изображения и показаний с датчиков M-->>P: Результат проверки deactivate M ``` ## pioneer_sdk ```python class Pioneer: def __init__(self, pioneer_ip='192.168.4.1', pioneer_video_port=8888, pioneer_video_control_port=8888, pioneer_mavlink_port=8001, logger=True): ... video_control_address = (pioneer_ip, pioneer_video_control_port) self.__video_control_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.__video_control_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.__video_control_socket.settimeout(5) self.__video_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.__video_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.__video_socket.settimeout(5) ... ``` pioneer_sdk использует сокеты для получения изображения с ЛА. Для взаимодействия с камерами модуля требуется расширение базового класса и модификация прошивки Пионера Схема взаимодействия Пионера с модулем: ```mermaid sequenceDiagram participant C as Компьютер participant P as Пионер participant M as Контроллер модуля C->>P: Запрос данных activate P M-->>P: Данные P-->>C: Данные deactivate P Note over C: Обработка данных ```