D-Bus-сервис для управления эмуляцией местоположения
Сервис позволяет управлять эмуляцией местоположения. Подробнее…
| Шина: | сессионная | 
| Служба: | ru.omp.GeoclueEmulationManagement | 
| Объект: | /ru/omp/GeoclueEmulationManagement | 
| Интерфейс: | ru.omp.GeoclueEmulationManagement | 
Методы
- goToPositionOnTrack(int index)
 - loadTrack(variant[] positions)
 - pauseTrack()
 - resumeTrack()
 - setAltitude(double altitude)
 - setLatitude(double latitude)
 - setLongitude(double longitude)
 - setPosition(double latitude, double longitude, double altitude)
 - setTrackIntervalMode(bool useDefaultInterval)
 - setTrackLooped(bool looped)
 - setTrackSpeed(int speed)
 - startTrack()
 - stopTrack()
 
Подробное описание
Сервис позволяет управлять эмуляцией местоположения: устанавливать координаты и настраивать 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-треку не производится, то метод ничего не делает.