Skip to content

Commit

Permalink
- Changed buffersizes to 1.
Browse files Browse the repository at this point in the history
 - Removed ugly optimization from RingBuffer.
 - Fixed compile error from AccelerometerChain.
  • Loading branch information
Antti Virtanen committed Feb 21, 2011
1 parent dfb7079 commit 0ecc30f
Show file tree
Hide file tree
Showing 27 changed files with 48 additions and 52 deletions.
2 changes: 1 addition & 1 deletion adaptors/accelerometeradaptor/accelerometeradaptor.cpp
Expand Up @@ -48,7 +48,7 @@ AccelerometerAdaptor::AccelerometerAdaptor(const QString& id) :
sensordLogW() << "Input device not found.";
}

accelerometerBuffer_ = new DeviceAdaptorRingBuffer<OrientationData>(128);
accelerometerBuffer_ = new DeviceAdaptorRingBuffer<OrientationData>(1);
addAdaptedSensor("accelerometer", "Internal accelerometer coordinates", accelerometerBuffer_);

// Set Metadata
Expand Down
2 changes: 1 addition & 1 deletion adaptors/alsadaptor-ascii/alsadaptor-ascii.cpp
Expand Up @@ -69,7 +69,7 @@ ALSAdaptorAscii::ALSAdaptorAscii(const QString& id) : SysfsAdaptor(id, SysfsAdap
}

addPath(devPath);
alsBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(16);
alsBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(1);
addAdaptedSensor("als", "Internal ambient light sensor lux values", alsBuffer_);

setDescription("Ambient light");
Expand Down
2 changes: 1 addition & 1 deletion adaptors/alsadaptor-sysfs/alsadaptor-sysfs.cpp
Expand Up @@ -38,7 +38,7 @@
ALSAdaptorSysfs::ALSAdaptorSysfs(const QString& id) :
SysfsAdaptor(id, SysfsAdaptor::IntervalMode, true, Config::configuration()->value("als-sysfs_path").toString())
{
alsBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(1024);
alsBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(1);
addAdaptedSensor("als", "Internal ambient light sensor lux values", alsBuffer_);

introduceAvailableDataRange(DataRange(0, 65535, 1));
Expand Down
2 changes: 1 addition & 1 deletion adaptors/alsadaptor/alsadaptor.cpp
Expand Up @@ -90,7 +90,7 @@ ALSAdaptor::ALSAdaptor(const QString& id):
sensordLogW() << "Other HW except RM680 and RM696";
}

alsBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(32);
alsBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(1);
addAdaptedSensor("als", "Internal ambient light sensor lux values", alsBuffer_);

setDescription("Ambient light");
Expand Down
2 changes: 1 addition & 1 deletion adaptors/gyroscopeadaptor/gyroscopeadaptor.cpp
Expand Up @@ -39,7 +39,7 @@ GyroscopeAdaptor::GyroscopeAdaptor(const QString& id) :
setValid(false);
}

gyroscopeBuffer_ = new DeviceAdaptorRingBuffer<AngularVelocityData>(32);
gyroscopeBuffer_ = new DeviceAdaptorRingBuffer<AngularVelocityData>(1);

addAdaptedSensor("gyroscope", "l3g4200dh", gyroscopeBuffer_);

Expand Down
2 changes: 1 addition & 1 deletion adaptors/kbslideradaptor/kbslideradaptor.cpp
Expand Up @@ -49,7 +49,7 @@ KeyboardSliderAdaptor::KeyboardSliderAdaptor(const QString& id) :
sensordLogW() << "Input device not found.";
}

kbstateBuffer_ = new DeviceAdaptorRingBuffer<KeyboardSliderState>(3);
kbstateBuffer_ = new DeviceAdaptorRingBuffer<KeyboardSliderState>(1);
addAdaptedSensor("keyboardslider", "Device keyboard slider state", kbstateBuffer_);

setDescription("Keyboard slider events (via input device)");
Expand Down
Expand Up @@ -49,7 +49,7 @@ MagnetometerAdaptorAscii::MagnetometerAdaptorAscii(const QString& id) :
}
introduceAvailableDataRange(DataRange(-2048, 2048, 1));
addPath(SYSFS_MAGNET_PATH, devId);
magnetBuffer_ = new DeviceAdaptorRingBuffer<TimedXyzData>(16);
magnetBuffer_ = new DeviceAdaptorRingBuffer<TimedXyzData>(1);
addAdaptedSensor("magnetometer", "ak8974 ascii", magnetBuffer_);
}

Expand Down
2 changes: 1 addition & 1 deletion adaptors/magnetometeradaptor/magnetometeradaptor.cpp
Expand Up @@ -52,7 +52,7 @@ MagnetometerAdaptor::MagnetometerAdaptor(const QString& id) :
} else {
sensordLogD() << "Detected magnetometer driver at " << driverHandle_;
addPath(driverHandle_, 0);
magnetometerBuffer_ = new DeviceAdaptorRingBuffer<TimedXyzData>(128);
magnetometerBuffer_ = new DeviceAdaptorRingBuffer<TimedXyzData>(1);
addAdaptedSensor("magnetometer", "Internal magnetometer coordinates", magnetometerBuffer_);
}

Expand Down
2 changes: 1 addition & 1 deletion adaptors/mrstaccelerometer/mrstaccelerometeradaptor.cpp
Expand Up @@ -21,7 +21,7 @@ MRSTAccelAdaptor::MRSTAccelAdaptor (const QString& id) :

devId = 0;
addPath (devPath, devId);
buffer = new DeviceAdaptorRingBuffer<OrientationData>(128);
buffer = new DeviceAdaptorRingBuffer<OrientationData>(1);
addAdaptedSensor("accelerometer", "MRST accelerometer", buffer);

setDescription("MRST accelerometer");
Expand Down
2 changes: 1 addition & 1 deletion adaptors/proximityadaptor-ascii/proximityadaptor-ascii.cpp
Expand Up @@ -49,7 +49,7 @@ ProximityAdaptorAscii::ProximityAdaptorAscii(const QString& id) :
introduceAvailableDataRange(DataRange(0, 4096, 1));
devId = 0;
addPath(SYSFS_PROXIMITY_PATH, devId);
proximityBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(16);
proximityBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(1);
addAdaptedSensor("proximity", "apds9802ps ascii", proximityBuffer_);
}

Expand Down
2 changes: 1 addition & 1 deletion adaptors/proximityadaptor-evdev/proximityadaptor-evdev.cpp
Expand Up @@ -51,7 +51,7 @@ ProximityAdaptorEvdev::ProximityAdaptorEvdev(const QString& id) :
sensordLogW() << "Input device not found.";
}

proximityBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(3);
proximityBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(1);
addAdaptedSensor("proximity", "Proximity state", proximityBuffer_);

introduceAvailableDataRange(DataRange(-1, 1, 1));
Expand Down
2 changes: 1 addition & 1 deletion adaptors/proximityadaptor/proximityadaptor.cpp
Expand Up @@ -100,7 +100,7 @@ ProximityAdaptor::ProximityAdaptor(const QString& id) :
#endif
}

proximityBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(16);
proximityBuffer_ = new DeviceAdaptorRingBuffer<TimedUnsigned>(1);
addAdaptedSensor("proximity", "Proximity state", proximityBuffer_);

m_threshold = readThreshold();
Expand Down
2 changes: 1 addition & 1 deletion adaptors/tapadaptor/tapadaptor.cpp
Expand Up @@ -48,7 +48,7 @@ TapAdaptor::TapAdaptor(const QString& id) :
sensordLogW() << "Input device not found.";
}

tapBuffer_ = new DeviceAdaptorRingBuffer<TapData>(128);
tapBuffer_ = new DeviceAdaptorRingBuffer<TapData>(1);
addAdaptedSensor("tap", "Internal accelerometer tap events", tapBuffer_);

setDescription("Device tap events (lis302d)");
Expand Down
2 changes: 1 addition & 1 deletion adaptors/touchadaptor/touchadaptor.cpp
Expand Up @@ -44,7 +44,7 @@ TouchAdaptor::TouchAdaptor(const QString& id) : InputDevAdaptor(id, HARD_MAX_TOU
if (!getInputDevices("touchscreen")) {
sensordLogW() << "Input device not found.";
}
outputBuffer_ = new DeviceAdaptorRingBuffer<TouchData>(128);
outputBuffer_ = new DeviceAdaptorRingBuffer<TouchData>(1);
addAdaptedSensor("touch", "Touch screen input", outputBuffer_);

setDescription("Touch screen events");
Expand Down
10 changes: 5 additions & 5 deletions chains/accelerometerchain/accelerometerchain.cpp
Expand Up @@ -39,16 +39,16 @@
AccelerometerChain::AccelerometerChain(const QString& id) :
AbstractChain(id)
{
aconv_ = { { 1.0, 0.0, 0.0 },
{ 0.0, 1.0, 0.0 },
{ 0.0, 0.0, 1.0 } };
setMatrixFromString("1.0,0.0,0.0,\
0.0,1.0,0.0,\
0.0,0.0,1.0");
SensorManager& sm = SensorManager::instance();

accelerometerAdaptor_ = sm.requestDeviceAdaptor("accelerometeradaptor");
Q_ASSERT( accelerometerAdaptor_ );
setValid(accelerometerAdaptor_->isValid());

accelerometerReader_ = new BufferReader<AccelerationData>(128);
accelerometerReader_ = new BufferReader<AccelerationData>(1);

// Get the transformation matrix from config file
QString aconvString = Config::configuration()->value("acc_trans_matrix", "").toString();
Expand All @@ -66,7 +66,7 @@ AccelerometerChain::AccelerometerChain(const QString& id) :
Q_ASSERT(accCoordinateAlignFilter_);
((CoordinateAlignFilter*)accCoordinateAlignFilter_)->setMatrix(TMatrix(aconv_));

outputBuffer_ = new RingBuffer<AccelerationData>(128);
outputBuffer_ = new RingBuffer<AccelerationData>(1);
nameOutputBuffer("accelerometer", outputBuffer_);

// Create buffers for filter chain
Expand Down
8 changes: 4 additions & 4 deletions chains/orientationchain/orientationchain.cpp
Expand Up @@ -37,17 +37,17 @@ OrientationChain::OrientationChain(const QString& id) :
Q_ASSERT( accelerometerChain_ );
setValid(accelerometerChain_->isValid());

accelerometerReader_ = new BufferReader<AccelerationData>(128);
accelerometerReader_ = new BufferReader<AccelerationData>(1);

orientationInterpreterFilter_ = sm.instantiateFilter("orientationinterpreter");

topEdgeOutput_ = new RingBuffer<PoseData>(128);
topEdgeOutput_ = new RingBuffer<PoseData>(1);
nameOutputBuffer("topedge", topEdgeOutput_);

faceOutput_ = new RingBuffer<PoseData>(128);
faceOutput_ = new RingBuffer<PoseData>(1);
nameOutputBuffer("face", faceOutput_);

orientationOutput_ = new RingBuffer<PoseData>(128);
orientationOutput_ = new RingBuffer<PoseData>(1);
nameOutputBuffer("orientation", orientationOutput_);

// Create buffers for filter chain
Expand Down
14 changes: 4 additions & 10 deletions core/ringbuffer.h
Expand Up @@ -143,16 +143,10 @@ class RingBuffer : public RingBufferBase
void write(unsigned n, const TYPE* values)
{
// buffer incoming data
if(__is_pod(TYPE) && n <= bufferSize_ && ((bufferSize_ - writeCount_) < n)) {
memcpy(nextSlot(), values, n);
writeCount_ += n;
}
else {
while (n) {
*nextSlot() = *values++;
commit();
--n;
}
while (n) {
*nextSlot() = *values++;
commit();
--n;
}
wakeUpReaders();
}
Expand Down
2 changes: 2 additions & 0 deletions debian/changelog
Expand Up @@ -16,6 +16,8 @@ sensord (0.6.39) unstable; urgency=low
* Fixed bug from SysfsAdaptor::writeToFile(): it used wrong method to get size of the buffer.
* Removed FilterProperty: it had possible memory leak and could return references to already deleted memory.
* AccelerometerChain transformation matrix is now instance specific.
* Changed buffersizes to 1.
* Removed ugly optimization from RingBuffer.

-- Timo Rongas <ext-timo.2.rongas@nokia.com> Tue, 08 Feb 2011 13:35:32 +0200

Expand Down
4 changes: 2 additions & 2 deletions sensors/accelerometersensor/accelerometersensor.cpp
Expand Up @@ -41,9 +41,9 @@ AccelerometerSensorChannel::AccelerometerSensorChannel(const QString& id) :
Q_ASSERT( accelerometerChain_ );
setValid(accelerometerChain_->isValid());

accelerometerReader_ = new BufferReader<AccelerationData>(128);
accelerometerReader_ = new BufferReader<AccelerationData>(1);

outputBuffer_ = new RingBuffer<AccelerationData>(128);
outputBuffer_ = new RingBuffer<AccelerationData>(1);

// Create buffers for filter chain
filterBin_ = new Bin;
Expand Down
4 changes: 2 additions & 2 deletions sensors/alssensor/alssensor.cpp
Expand Up @@ -49,9 +49,9 @@ ALSSensorChannel::ALSSensorChannel(const QString& id) :
alsAdaptor_ = sm.requestDeviceAdaptor("alsadaptor");
Q_ASSERT( alsAdaptor_ );

alsReader_ = new BufferReader<TimedUnsigned>(32);
alsReader_ = new BufferReader<TimedUnsigned>(1);

outputBuffer_ = new RingBuffer<TimedUnsigned>(32);
outputBuffer_ = new RingBuffer<TimedUnsigned>(1);

// Create buffers for filter chain
filterBin_ = new Bin;
Expand Down
4 changes: 2 additions & 2 deletions sensors/compasssensor/compasssensor.cpp
Expand Up @@ -43,9 +43,9 @@ CompassSensorChannel::CompassSensorChannel(const QString& id) :
Q_ASSERT( compassChain_ );
setValid(compassChain_->isValid());

inputReader_ = new BufferReader<CompassData>(128);
inputReader_ = new BufferReader<CompassData>(1);

outputBuffer_ = new RingBuffer<CompassData>(128);
outputBuffer_ = new RingBuffer<CompassData>(1);

// Create buffers for filter chain
filterBin_ = new Bin;
Expand Down
4 changes: 2 additions & 2 deletions sensors/gyroscopesensor/gyroscopesensor.cpp
Expand Up @@ -40,9 +40,9 @@ GyroscopeSensorChannel::GyroscopeSensorChannel(const QString& id) :
gyroscopeAdaptor_ = sm.requestDeviceAdaptor("gyroscopeadaptor");
Q_ASSERT( gyroscopeAdaptor_ );

gyroscopeReader_ = new BufferReader<AngularVelocityData>(128);
gyroscopeReader_ = new BufferReader<AngularVelocityData>(1);

outputBuffer_ = new RingBuffer<AngularVelocityData>(128);
outputBuffer_ = new RingBuffer<AngularVelocityData>(1);

// Create buffers for filter chain
filterBin_ = new Bin;
Expand Down
4 changes: 2 additions & 2 deletions sensors/magnetometersensor/magnetometersensor.cpp
Expand Up @@ -43,7 +43,7 @@ MagnetometerSensorChannel::MagnetometerSensorChannel(const QString& id) :
Q_ASSERT( compassChain_ );
setValid(compassChain_->isValid());

magnetometerReader_ = new BufferReader<CalibratedMagneticFieldData>(128);
magnetometerReader_ = new BufferReader<CalibratedMagneticFieldData>(1);

scaleCoefficient_ = Config::configuration()->value("magnetometer_scale_coefficient", QVariant(300)).toInt();

Expand All @@ -56,7 +56,7 @@ MagnetometerSensorChannel::MagnetometerSensorChannel(const QString& id) :
}
}

outputBuffer_ = new RingBuffer<CalibratedMagneticFieldData>(128);
outputBuffer_ = new RingBuffer<CalibratedMagneticFieldData>(1);

// Create buffers for filter chain
filterBin_ = new Bin;
Expand Down
4 changes: 2 additions & 2 deletions sensors/orientationsensor/orientationsensor.cpp
Expand Up @@ -41,9 +41,9 @@ OrientationSensorChannel::OrientationSensorChannel(const QString& id) :
Q_ASSERT( orientationChain_ );
setValid(orientationChain_->isValid());

orientationReader_ = new BufferReader<PoseData>(128);
orientationReader_ = new BufferReader<PoseData>(1);

outputBuffer_ = new RingBuffer<PoseData>(128);
outputBuffer_ = new RingBuffer<PoseData>(1);

// Create buffers for filter chain
filterBin_ = new Bin;
Expand Down
4 changes: 2 additions & 2 deletions sensors/proximitysensor/proximitysensor.cpp
Expand Up @@ -40,9 +40,9 @@ ProximitySensorChannel::ProximitySensorChannel(const QString& id) :
proximityAdaptor_ = sm.requestDeviceAdaptor("proximityadaptor");
Q_ASSERT( proximityAdaptor_ );

proximityReader_ = new BufferReader<TimedUnsigned>(16);
proximityReader_ = new BufferReader<TimedUnsigned>(1);

outputBuffer_ = new RingBuffer<TimedUnsigned>(16);
outputBuffer_ = new RingBuffer<TimedUnsigned>(1);

// Create buffers for filter chain
filterBin_ = new Bin;
Expand Down
6 changes: 3 additions & 3 deletions sensors/rotationsensor/rotationsensor.cpp
Expand Up @@ -42,20 +42,20 @@ RotationSensorChannel::RotationSensorChannel(const QString& id) :
Q_ASSERT( accelerometerChain_ );
setValid(accelerometerChain_->isValid());

accelerometerReader_ = new BufferReader<AccelerationData>(128);
accelerometerReader_ = new BufferReader<AccelerationData>(1);

compassChain_ = sm.requestChain("compasschain");
if (compassChain_ && compassChain_->isValid()) {
hasZ_ = true;
compassReader_ = new BufferReader<CompassData>(128);
compassReader_ = new BufferReader<CompassData>(1);
} else {
sensordLogW() << "Unable to use compass for z-axis rotation.";
}

rotationFilter_ = sm.instantiateFilter("rotationfilter");
Q_ASSERT(rotationFilter_);

outputBuffer_ = new RingBuffer<TimedXyzData>(128);
outputBuffer_ = new RingBuffer<TimedXyzData>(1);

// Create buffers for filter chain
filterBin_ = new Bin;
Expand Down
4 changes: 2 additions & 2 deletions sensors/tapsensor/tapsensor.cpp
Expand Up @@ -39,9 +39,9 @@ TapSensorChannel::TapSensorChannel(const QString& id) :
tapAdaptor_ = sm.requestDeviceAdaptor("tapadaptor");
Q_ASSERT( tapAdaptor_ );

tapReader_ = new BufferReader<TapData>(128);
tapReader_ = new BufferReader<TapData>(1);

outputBuffer_ = new RingBuffer<TapData>(128);
outputBuffer_ = new RingBuffer<TapData>(1);

// Create buffers for filter chain
filterBin_ = new Bin;
Expand Down

0 comments on commit 0ecc30f

Please sign in to comment.