Документация
ОС Аврора 5.1.1

D-Bus-сервис для управления эмуляцией местоположения

Сервис позволяет управлять эмуляцией местоположения. Подробнее…

Шина: сессионная
Служба: ru.omp.GeoclueEmulationManagement
Объект: /ru/omp/GeoclueEmulationManagement
Интерфейс: ru.omp.GeoclueEmulationManagement

Методы

Подробное описание

Сервис позволяет управлять эмуляцией местоположения: устанавливать координаты и настраивать GPS-трек. Эта функциональность эмулятора предназначена для экспертов.

Примеры использования D-Bus-сервиса с помощью вызова утилиты dbus-send:

  • Установка новой текущей позиции (широты, долготы, высоты):

    dbus-send --session --type=method_call --print-reply --dest=ru.omp.GeoclueEmulationManagement /ru/omp/GeoclueEmulationManagement ru.omp.GeoclueEmulationManagement.setPosition double:-1.1 double:54.2345 double:100
    
  • Запуск движения по загруженному GPS-треку:

    dbus-send --session --type=method_call --print-reply --dest=ru.omp.GeoclueEmulationManagement /ru/omp/GeoclueEmulationManagement ru.omp.GeoclueEmulationManagement.startTrack
    
  • Переход к позиции на загруженном GPS-треке:

    dbus-send --session --type=method_call --print-reply --dest=ru.omp.GeoclueEmulationManagement /ru/omp/GeoclueEmulationManagement ru.omp.GeoclueEmulationManagement.goToPositionOnTrack int32:12
    

Взаимодействие Аврора IDE и эмулятора для эмуляции местоположения и датчиков устроено не только через службы D-Bus, но и с помощью передачи сообщений по WebSockets.

Утилита dbus-send не поддерживает параметры методов в виде массивов и объектов variant. Поэтому для загрузки треков необходимо использовать другой способ, например, отправить сообщение по WebSockets на порт 1234 следующего формата:

session serviceName objectPath interfaceName methodName methodArguments

Например:

session ru.omp.GeoclueEmulationManagement /ru/omp/GeoclueEmulationManagement ru.omp.GeoclueEmulationManagement loadTrack array:array:double:1.1,2.2,30,1000;2,3,4,2000;10,11,12,1000;0,1,3,1000;22,33,44,2000;70,111,121,1000

Здесь array:array:double означает, что метод принимает массив массивов действительных чисел. Далее перечислены загружаемые точки GPS-трека. Точкой с запятой отделяются точки на треке, а только запятыми отделяются широта, долгота, высота и интервал конкретной точки.

Описание методов

void goToPositionOnTrack(int index)

Меняет текущую позицию на GPS-треке на позицию по переданному индексу в списке предзагруженных позиций. index — индекс позиции в списке позиций, загруженных методом loadTrack(). После смены текущей позиции на треке движение будет приостановлено (будет выставлена пауза). Если переданный индекс имеет значение меньшее, чем 0, то D-Bus-метод вернёт ошибку.

void loadTrack(variant[] positions)

Загружает GPS-трек для дальнейшей эмуляции движения по нему. positions — список из элементов-точек GPS-трека, где каждая точка (variant) — это массив, содержащий 4 вещественных числа:

  • широту (latitude);
  • долготу (longitude);
  • высоту (altitude);
  • интервал от предыдущей до данной позиции в миллисекундах (interval).

Таким образом, positions — это массив из массивов чисел, где каждый элемент содержит 4 числа.

void pauseTrack()

Ставит движение по GPS-треку на паузу. Если движение по GPS-треку не производится, то метод ничего не делает.

void resumeTrack()

Возобновляет движение по GPS-треку, если оно приостановлено. Если движение по GPS-треку выполняется в данный момент или движение остановлено полностью, то метод ничего не делает.

void setAltitude(double altitude)

Устанавливает новое значение высоты над уровнем моря в метрах. Диапазон допустимых значений: [-1000:10000].

void setLatitude(double latitude)

Устанавливает новое значение широты в градусах. Диапазон допустимых значений: [-90:90].

void setLongitude(double longitude)

Устанавливает новое значение долготы в градусах. Диапазон допустимых значений: [-180:180].

void setPosition(double latitude, double longitude, double altitude)

Устанавливает новые значения широты и долготы в градусах, а также высоты над уровнем моря в метрах. Диапазон допустимых значений широты: [-90:90]. Диапазон допустимых значений долготы: [-180:180].

void setTrackIntervalMode(bool useDefaultInterval)

Устанавливает режим использования временных интервалов между точками GPS-трека. useDefaultInterval — true, если необходимо использовать интервал между точками по умолчанию (2 секунды), false — если нужно использовать интервалы, указанные в списке загруженных позиций трека.

void setTrackLooped(bool looped)

Делает движение по GPS-треку зацикленным. looped — true, если трек необходимо зациклить, в противном случае — false.

void setTrackSpeed(int speed)

Устанавливает скорость движения по GPS-треку. speed — множитель скорости движения. Диапазон допустимых значений: [1:5].

void startTrack()

Запускает эмуляцию движения по загруженному GPS-треку. Если GPS-трек не был загружен или движение по GPS-треку уже выполняется, то метод ничего не делает. Если движение по GPS-треку приостановлено (стоит на паузе), то метод продолжает движение по треку. Если движение по GPS-треку остановлено полностью (вызван stopTrack()), то метод начинает движение по треку сначала.

void stopTrack()

Полностью останавливает движение по GPS треку. Если движение по GPS-треку не производится, то метод ничего не делает.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.