ev3-api/library/libcpp-ev3/src/GyroSensor.cpp (26 lines of code) (raw):
//
// GyroSensor.cpp
//
// Copyright (c) 2015-2016 Embedded Technology Software Design Robot Contest
//
#include "GyroSensor.h"
using namespace ev3api;
//=============================================================================
// Constructor
GyroSensor::GyroSensor(ePortS port)
:
Sensor(port, GYRO_SENSOR),
mOffset(DEFAULT_OFFSET)
{
ev3_gyro_sensor_reset(getPort());
(void)ev3_gyro_sensor_get_rate(getPort());
}
//=============================================================================
// set sensor offset data at 0 [deg/sec]
void GyroSensor::setOffset(int16_t offset)
{
mOffset = offset;
}
//=============================================================================
// Reset gyro sensor.
void GyroSensor::reset(void)
{
ev3_gyro_sensor_reset(getPort());
}
//=============================================================================
// get anguler velocity [deg/sec]
int16_t GyroSensor::getAnglerVelocity(void) const
{
return ev3_gyro_sensor_get_rate(getPort()) - mOffset;
}
//=============================================================================
// get angule [deg]
int16_t GyroSensor::getAngle(void) const
{
return ev3_gyro_sensor_get_angle(getPort());
}