Интерфейс для работы со встроенными датчиками
01.02.2017
Объект сенсора создаётся с помощью конструктора CreateSensor:
app.CreateSensor( (str) type, (str) options )
Параметры:
- type - тип датчика:
- Acceleration - трёхосевой датчик линейного ускорения, возвращающий показатели ускорения без учёта силы тяжести. Это виртуальный датчик, использующий показания акселерометра.
- Accelerometer - ускорение в пространстве по осям X, Y, Z, включая силу тяжести, возвращающий значения в м/c2
- GameRotation - поворота
- GeomagneticRotation - вращения в магнитном поле
- Gravity - трёхосевой датчик силы тяжести, возвращающий значение в м/c2. Как правило, это виртуальный датчик с низкочастотным фильтром для показаний, возвращаемых акселерометром
- Gyroscope - трёхосевой гироскоп, возвращающий текущее положение устройства в пространстве в рад/c по трём осям
- HeartRate - пульса
- Humidity - датчик относительной влажности, возвращающий значение в процентах
- Light - освещённости (используется для динамического изменения яркости экрана)
- MagneticField - датчик геомагнитного поля, определяющий текущие показатели магнитного поля в микротеслах по трём осям
- Motion - движения
- Orientation - датчик ориентации (компас). Измеряет повороты, наклоны и вращение устройства в градусах
- Pressure - датчик атмосферного давления (барометр), возвращающий текущее давление в миллибарах. Можно определять высоту над уровнем моря, путём сравнения атмосферного давления в двух точках. Также барометры могут применяться для прогнозирования погоды.
- Proximity - датчик приближенности, который сигнализирует о расстоянии между устройством и целевым объектом в сантиметрах. Используется для обнаружения расстояния между устройством и ухом пользователя для автоматического регулирования яркости экрана или выполнения голосовой команды. В некоторых устройствах возвращает два значения - близко или далеко
- Rotation - положения устройства в пространстве в виде угла относительно оси. Виртуальный датчик, берущий показания от акселерометра и гироскопа
- StepDetector - обнаружения движения
- StepCounter - количества шагов
- Temperature - температуры в градусах Цельсия
- options - скорость работы:
- 'Fast' - быстро
- 'Fastest' - самая быстрая
- 'Medium' - средняя
- 'Slow' - медленная (по умолчанию)
Базовый пример
Выполнить в DS
Методы:
- GetAzimuth():float - возвращает величину азимута
- GetNames():[str] - возвращает названия всех сенсоров устройства
- GetPitch():float - возвращает угол тангажа - поворота вокруг оси x (-90..90)
- GetRoll():float - возвращает угол крена - поворота вокруг оси y (-90..90)
- GetType():str - возвращает тип объекта
- GetValues():[] - возвращает массив с 4 значениями. Последнее значение(с индекстом 3) является время имзмерения. В зависимости от датчика количество измеренных значений отличается и для получения правильного результата необходимо обращаться к соответствующим элементам данного массива
myObject.GetType(); // возвращает "Sensor"
- SetMaxRate( int rate ) - ограничивает количество событий при перемещении ползунка путём задания минимального интервала в мс между двумя событиями onTouch:
myObject.SetValue( 1000 ); // события onTouch происходят не чаще одного в секунду
- SetMinChange( float min ) - задаёт минимальный интервал отклика на реакцию
myObject.SetMinChange( 0.5 );
- SetOnChange( callback ) - задаёт ФОВ для задания действий при изменении значений датчика. В зависимости от датчика система передаёт в функцию разные параметры:
- Компас:
- float azimuth - азимут, градус (0..359). 0=Север, 90=Восток, 180=Юг, 270=Запад
- float pitch - угол поворота вокруг оси x, градус (-180 .. 180)
- float roll - угол поворота вокруг оси y, градус (-90ы..90)
- Ускорения:
- float x - значение ускорения по оси x, м/c2
- float y - значение ускорения по оси y, м/c2
- float z - значение ускорения по оси z, м/c2
- Освещённости
- int lux - величина освещённости, люкс
- Магнитного поля:
- float value - уровень магнитного поля, микротесла
myObject.SetOnChange( function(){ app.ShowPopup( 'Значение изменилось' )} );
- Start() - запускает работу сенсора
- Stop() - останавливает работу сенсора