From ed38fb45ffe470dce63805909fb2ef0f38caaef6 Mon Sep 17 00:00:00 2001 From: Simo Piiroinen Date: Wed, 26 Sep 2018 12:23:21 +0300 Subject: [PATCH] [hybrisadaptor] Subject sensor type specific actions to common policy Sensor specific adaptors derived from HybrisAdaptor class can be configured to enable/disable sensors directly via sysfs. While doing that they also bypass enable/disable policy that is implemented in HybrisAdaptor. Fix each HybrisXxxAdaptor class so that common policy logic is executed first, and direct sysfs manipulation is done based on policy decision. Signed-off-by: Simo Piiroinen --- .../hybrisaccelerometer/hybrisaccelerometeradaptor.cpp | 9 ++++----- adaptors/hybrisalsadaptor/hybrisalsadaptor.cpp | 9 ++++----- .../hybrisgyroscopeadaptor/hybrisgyroscopeadaptor.cpp | 9 ++++----- .../hybrismagnetometeradaptor.cpp | 9 ++++----- .../hybrisorientationadaptor.cpp | 9 ++++----- adaptors/hybrispressureadaptor/hybrispressureadaptor.cpp | 9 ++++----- .../hybrisproximityadaptor/hybrisproximityadaptor.cpp | 8 ++++---- .../hybrisstepcounteradaptor.cpp | 9 ++++----- core/hybrisadaptor.cpp | 2 ++ 9 files changed, 34 insertions(+), 39 deletions(-) diff --git a/adaptors/hybrisaccelerometer/hybrisaccelerometeradaptor.cpp b/adaptors/hybrisaccelerometer/hybrisaccelerometeradaptor.cpp index 4a16e5d3..1ec7f4cf 100644 --- a/adaptors/hybrisaccelerometer/hybrisaccelerometeradaptor.cpp +++ b/adaptors/hybrisaccelerometer/hybrisaccelerometeradaptor.cpp @@ -44,20 +44,19 @@ HybrisAccelerometerAdaptor::~HybrisAccelerometerAdaptor() bool HybrisAccelerometerAdaptor::startSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "1"); if (!(HybrisAdaptor::startSensor())) return false; - + if (isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "1"); sensordLogD() << "Hybris AccelAdaptor start\n"; return true; } void HybrisAccelerometerAdaptor::stopSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "0"); HybrisAdaptor::stopSensor(); + if (!isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "0"); sensordLogD() << "Hybris AccelAdaptor stop\n"; } diff --git a/adaptors/hybrisalsadaptor/hybrisalsadaptor.cpp b/adaptors/hybrisalsadaptor/hybrisalsadaptor.cpp index ab13c417..7a288f2e 100644 --- a/adaptors/hybrisalsadaptor/hybrisalsadaptor.cpp +++ b/adaptors/hybrisalsadaptor/hybrisalsadaptor.cpp @@ -52,11 +52,10 @@ HybrisAlsAdaptor::~HybrisAlsAdaptor() bool HybrisAlsAdaptor::startSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "1"); if (!(HybrisAdaptor::startSensor())) return false; - + if (isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "1"); sensordLogD() << "Hybris HybrisAlsAdaptor start\n"; return true; } @@ -120,9 +119,9 @@ void HybrisAlsAdaptor::sendInitialData() void HybrisAlsAdaptor::stopSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "0"); HybrisAdaptor::stopSensor(); + if (!isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "0"); sensordLogD() << "Hybris HybrisAlsAdaptor stop\n"; } diff --git a/adaptors/hybrisgyroscopeadaptor/hybrisgyroscopeadaptor.cpp b/adaptors/hybrisgyroscopeadaptor/hybrisgyroscopeadaptor.cpp index 4a0361e4..4c15e40b 100644 --- a/adaptors/hybrisgyroscopeadaptor/hybrisgyroscopeadaptor.cpp +++ b/adaptors/hybrisgyroscopeadaptor/hybrisgyroscopeadaptor.cpp @@ -51,20 +51,19 @@ HybrisGyroscopeAdaptor::~HybrisGyroscopeAdaptor() bool HybrisGyroscopeAdaptor::startSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "1"); if (!(HybrisAdaptor::startSensor())) return false; - + if (isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "1"); sensordLogD() << "HybrisGyroscopeAdaptor start\n"; return true; } void HybrisGyroscopeAdaptor::stopSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "0"); HybrisAdaptor::stopSensor(); + if (!isRunning() &&!powerStatePath.isEmpty()) + writeToFile(powerStatePath, "0"); sensordLogD() << "HybrisGyroscopeAdaptor stop\n"; } diff --git a/adaptors/hybrismagnetometeradaptor/hybrismagnetometeradaptor.cpp b/adaptors/hybrismagnetometeradaptor/hybrismagnetometeradaptor.cpp index 7599e11a..38873a5f 100644 --- a/adaptors/hybrismagnetometeradaptor/hybrismagnetometeradaptor.cpp +++ b/adaptors/hybrismagnetometeradaptor/hybrismagnetometeradaptor.cpp @@ -48,20 +48,19 @@ HybrisMagnetometerAdaptor::~HybrisMagnetometerAdaptor() bool HybrisMagnetometerAdaptor::startSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "1"); if (!(HybrisAdaptor::startSensor())) return false; - + if (isRunning() &&!powerStatePath.isEmpty()) + writeToFile(powerStatePath, "1"); sensordLogD() << "HybrisMagnetometerAdaptor start\n"; return true; } void HybrisMagnetometerAdaptor::stopSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "0"); HybrisAdaptor::stopSensor(); + if (!isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "0"); sensordLogD() << "HybrisMagnetometerAdaptor stop\n"; } diff --git a/adaptors/hybrisorientationadaptor/hybrisorientationadaptor.cpp b/adaptors/hybrisorientationadaptor/hybrisorientationadaptor.cpp index 96125dca..d06d3d64 100644 --- a/adaptors/hybrisorientationadaptor/hybrisorientationadaptor.cpp +++ b/adaptors/hybrisorientationadaptor/hybrisorientationadaptor.cpp @@ -64,20 +64,19 @@ HybrisOrientationAdaptor::~HybrisOrientationAdaptor() bool HybrisOrientationAdaptor::startSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "1"); if (!(HybrisAdaptor::startSensor())) return false; - + if (isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "1"); sensordLogD() << "Hybris OrientationAdaptor start\n"; return true; } void HybrisOrientationAdaptor::stopSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "0"); HybrisAdaptor::stopSensor(); + if (!isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "0"); sensordLogD() << "Hybris OrientationAdaptor stop\n"; } diff --git a/adaptors/hybrispressureadaptor/hybrispressureadaptor.cpp b/adaptors/hybrispressureadaptor/hybrispressureadaptor.cpp index 5cf27cce..b77b30cd 100644 --- a/adaptors/hybrispressureadaptor/hybrispressureadaptor.cpp +++ b/adaptors/hybrispressureadaptor/hybrispressureadaptor.cpp @@ -50,20 +50,19 @@ HybrisPressureAdaptor::~HybrisPressureAdaptor() bool HybrisPressureAdaptor::startSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "1"); if (!(HybrisAdaptor::startSensor())) return false; - + if (isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "1"); sensordLogD() << "Hybris HybrisPressureAdaptor start\n"; return true; } void HybrisPressureAdaptor::stopSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "0"); HybrisAdaptor::stopSensor(); + if (!isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "0"); sensordLogD() << "Hybris HybrisPressureAdaptor stop\n"; } diff --git a/adaptors/hybrisproximityadaptor/hybrisproximityadaptor.cpp b/adaptors/hybrisproximityadaptor/hybrisproximityadaptor.cpp index 00836b04..316bc0c9 100644 --- a/adaptors/hybrisproximityadaptor/hybrisproximityadaptor.cpp +++ b/adaptors/hybrisproximityadaptor/hybrisproximityadaptor.cpp @@ -57,10 +57,10 @@ HybrisProximityAdaptor::~HybrisProximityAdaptor() bool HybrisProximityAdaptor::startSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "1"); if (!(HybrisAdaptor::startSensor())) return false; + if (isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "1"); sensordLogD() << "HybrisProximityAdaptor start\n"; return true; } @@ -127,9 +127,9 @@ void HybrisProximityAdaptor::sendInitialData() void HybrisProximityAdaptor::stopSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "0"); HybrisAdaptor::stopSensor(); + if (!isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "0"); sensordLogD() << "HybrisProximityAdaptor stop\n"; } diff --git a/adaptors/hybrisstepcounteradaptor/hybrisstepcounteradaptor.cpp b/adaptors/hybrisstepcounteradaptor/hybrisstepcounteradaptor.cpp index 0f0df386..6d2828ab 100644 --- a/adaptors/hybrisstepcounteradaptor/hybrisstepcounteradaptor.cpp +++ b/adaptors/hybrisstepcounteradaptor/hybrisstepcounteradaptor.cpp @@ -56,11 +56,10 @@ HybrisStepCounterAdaptor::~HybrisStepCounterAdaptor() bool HybrisStepCounterAdaptor::startSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "1"); if (!(HybrisAdaptor::startSensor())) return false; - + if (isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "1"); sensordLogD() << "Hybris HybrisStepCounterAdaptor start\n"; return true; } @@ -72,9 +71,9 @@ void HybrisStepCounterAdaptor::sendInitialData() void HybrisStepCounterAdaptor::stopSensor() { - if(!powerStatePath.isEmpty()) - writeToFile(powerStatePath, "0"); HybrisAdaptor::stopSensor(); + if (!isRunning() && !powerStatePath.isEmpty()) + writeToFile(powerStatePath, "0"); sensordLogD() << "Hybris HybrisStepCounterAdaptor stop\n"; } diff --git a/core/hybrisadaptor.cpp b/core/hybrisadaptor.cpp index 3913e96f..cc85701b 100644 --- a/core/hybrisadaptor.cpp +++ b/core/hybrisadaptor.cpp @@ -809,6 +809,7 @@ void HybrisAdaptor::evaluateSensor() bool HybrisAdaptor::startSensor() { + // Note: This is overloaded and called by each HybrisXxxAdaptor::startSensor() if (!m_shouldBeRunning) { m_shouldBeRunning = true; sensordLogT("%s m_shouldBeRunning = %d", sensorTypeName(m_sensorType), m_shouldBeRunning); @@ -819,6 +820,7 @@ bool HybrisAdaptor::startSensor() void HybrisAdaptor::stopSensor() { + // Note: This is overloaded and called by each HybrisXxxAdaptor::stopSensor() if (m_shouldBeRunning) { m_shouldBeRunning = false; sensordLogT("%s m_shouldBeRunning = %d", sensorTypeName(m_sensorType), m_shouldBeRunning);