Эмуляция датчиков
На устройствах ОС Аврора имеются встроенные датчики, например, гироскоп, компас, акселерометр. Эмулятор ОС Аврора не имеет реальных датчиков, но может имитировать работу с ними. Средствами Аврора IDE можно запустить плагин управления эмуляцией, задать различные значения датчиков и проверить работу программы.
Управление эмуляцией в Аврора IDE
Для взаимодействия с датчиками можно использовать три раздела:
- Настройка датчиков
- Содержит список переключателей для включения/выключения каждого из датчиков.
- Установка датчиков
- Содержит виджеты (ползунки, текстовые поля, выпадающие списки) для изменения значений конкретных датчиков.
- Ориентация
- Содержит виджеты для управления вращением и движением устройства.
Включение/выключение датчиков
Для управления состояниями датчиков (включения/выключения) необходимо перейти в раздел Настройка датчиков.
Рабочая область данного раздела содержит список из переключателей, по одному для каждого датчика.
Чтобы изменить состояние датчиков, необходимо последовательно выполнить следующие шаги:
- Поставить или убрать галочки на переключателях тех датчиков, которые необходимо включить или выключить.
- Нажать кнопку Принять для применения изменений.
Для отмены изменений и возврата переключателей к предыдущему принятому состоянию следует нажать кнопку Сбросить.
После применения изменений виджеты датчиков, помеченных как выключенные, станут недоступными в разделах Установка датчиков и Ориентация.
После применения изменений необходимо перезапустить все приложения на эмуляторе, работающие с датчиками.
Зависимость датчиков друг от друга
Значения некоторых датчиков зависят от других. Компас зависит от акселерометра и магнитометра. Датчик ориентации зависит от акселерометра, Датчик поворота зависит от акселерометра и компаса, и от магнитометра.
Остальные датчики не являются ни зависимыми, ни теми, от которых зависят.
Изменение состояния датчиков будет влиять на состояние зависимых датчиков и наоборот:
- При выключении акселерометра будут выключены компас, датчики ориентации и поворота, так как они зависят от него и не могут без него работать.
- При выключении магнитометра будут выключены компас и датчик поворота, так как они зависят от него.
- При включении компаса будут включены акселерометр и магнитометр, от которых он зависит.
- При включении датчика ориентации будет включён акселерометр, от которого он зависит.
- При включении датчика поворота будут включены акселерометр, компас и магнитометр, от которых он зависит.
Изменение значений датчиков
Для изменения значений датчиков необходимо перейти в раздел Установка датчиков. Рабочая область данного раздела содержит наборы виджетов для каждого из датчиков.
Ползунки позволяют менять значения в рамках определённого диапазона значений. Они связаны с текстовыми полями, где указаны текущие установленные значения. При редактировании значений в текстовом поле изменения принимаются по нажатию на «Enter», либо при потере фокуса данным текстовым полем. Выпадающие списки позволяют выбрать одно из заранее определённых значений.
При изменении какого-либо значения какого-либо датчика будет выполнен запрос к эмулятору на установку данного значения.
Особенности значений датчиков
Значения акселерометра
Значения акселерометра задаются в долях g (ускорения свободного падения, взятого равным 9.80665).
Ползунки и текстовые поля для акселерометра позволяют вводить количество долей g, которые пользователь хочет задать. Справа от текстового поля указываются значения акселерометра в м/c², которое будет в результате установлено на эмуляторе.
Значения уровня калибровки магнитометра и компаса
Значения уровня калибровки магнитометра и компаса имеют диапазон [0:3]
,
однако результирующие значения на эмуляторе будут иметь диапазон [0:1]
,
так как они будут равны установленному значению, делённому на 3 (а именно, [0, 0.(3), 0.(6), 1]
).
Это связано с особенностями плагина Sensorfw для магнитометра.
Значения датчика освещённости
Датчик освещённости имеет шесть заранее определённых значений (в люксах):
Параметр | Мин, лк | Макс, лк |
---|---|---|
Undefined | -1 | -1 |
Dark | 0 | 9 |
Twilight | 10 | 79 |
Light | 80 | 399 |
Bright | 400 | 2499 |
Sunny | 2500 | 3000 |
Значения датчика приближённости
Значение датчика приближённости задаётся как степень приближения и имеет диапазон [0:10]
,
однако результирующее значение на эмуляторе будет иметь диапазон [0:1]
.
Это также связано с особенностями плагина Sensorfw,
как и в случае с установкой уровня калибровки магнитометра.
Ориентация
На вкладке Ориентация можно управлять вращением и движением модели устройства. Внизу расположены элементы для настройки:
- радиокнопки для переключения между ползунками вращения или движения;
- ползунки для трёх осей вращения или движения, значения которых влияют на значения акселерометра (справа), гироскопа и магнитометра;
- кнопки для поворота устройства в одну из шести позиций, которые устанавливают значения датчика ориентации, а также значения ползунков и акселерометра.
Работа с датчиками
В проекте для работы с местоположением можно использовать компоненты QML Accelerometer, AmbientLightSensor, Compass, Gyroscope, LightSensor, Magnetometer, OrientationSensor, ProximitySensor, QTapSensor, RotationSensor, соотвествующие им C++-классы, а также другие классы и компоненты Qt Sensors.