current revision
This commit is contained in:
@@ -11,17 +11,23 @@ struct TurnData {
|
||||
TurnData() : radSinceLastEvent(0), radSinceStart(0) {;}
|
||||
};
|
||||
|
||||
class TurnSensor : public SensorListener<AccelerometerData>, public SensorListener<GyroscopeData>, public Sensor<TurnData> {
|
||||
class TurnSensor :
|
||||
public SensorListener<AccelerometerData>, // << takes
|
||||
public SensorListener<GyroscopeData>, // << takes
|
||||
public Sensor<TurnData> { // << provides
|
||||
|
||||
private:
|
||||
|
||||
TurnDetection turn;
|
||||
TurnData data;
|
||||
|
||||
AccelerometerSensor& acc;
|
||||
GyroscopeSensor& gyro;
|
||||
|
||||
public:
|
||||
|
||||
/** ctor */
|
||||
TurnSensor(AccelerometerSensor& acc, GyroscopeSensor& gyro) {
|
||||
TurnSensor(AccelerometerSensor& acc, GyroscopeSensor& gyro) : acc(acc), gyro(gyro) {
|
||||
acc.addListener(this);
|
||||
gyro.addListener(this);
|
||||
}
|
||||
@@ -34,6 +40,10 @@ public:
|
||||
//
|
||||
}
|
||||
|
||||
bool isRunning() const override {
|
||||
return acc.isRunning() && gyro.isRunning();
|
||||
}
|
||||
|
||||
virtual void onSensorData(Sensor<AccelerometerData>* sensor, const Timestamp ts, const AccelerometerData& data) override {
|
||||
(void) sensor;
|
||||
turn.addAccelerometer(ts, data);
|
||||
|
||||
Reference in New Issue
Block a user