diff options
author | asanoaozora <fifitaneki@hotmail.com> | 2017-11-17 11:24:27 +0100 |
---|---|---|
committer | asanoaozora <fifitaneki@hotmail.com> | 2017-11-17 11:24:27 +0100 |
commit | d4c46f13019aefb11aebd0fc1210a29a46f0b521 (patch) | |
tree | 616b2fdac52ae431d62af6d83f844469b3cd187e | |
parent | 9725fe1f553197042d6445997690d452a73490c0 (diff) | |
download | positioning-d4c46f13019aefb11aebd0fc1210a29a46f0b521.tar.gz |
Fix a bug in dbus-c++ to allow build with gcc 7.2.0
I added this:
thanks to Orcan Ogetbil <oget.fedora@gm...>
6 files changed, 62 insertions, 2 deletions
diff --git a/enhanced-position-service/dbus/src/configuration.h b/enhanced-position-service/dbus/src/configuration.h index 35e6c6b..e9f23f8 100644 --- a/enhanced-position-service/dbus/src/configuration.h +++ b/enhanced-position-service/dbus/src/configuration.h @@ -18,6 +18,9 @@ #ifndef ___CONFIGURATION_H #define ___CONFIGURATION_H +#ifndef DBUS_HAS_RECURSIVE_MUTEX +#define DBUS_HAS_RECURSIVE_MUTEX +#endif #include <dbus-c++/dbus.h> #include "configuration-adaptor.h" diff --git a/enhanced-position-service/dbus/src/enhanced-position.cpp b/enhanced-position-service/dbus/src/enhanced-position.cpp index 9642485..62167c1 100644 --- a/enhanced-position-service/dbus/src/enhanced-position.cpp +++ b/enhanced-position-service/dbus/src/enhanced-position.cpp @@ -408,13 +408,52 @@ void EnhancedPosition::cbSatelliteDetail(const TGNSSSatelliteDetail satelliteDet //mpSelf->SatelliteInfoUpdate(changedValues); } +void EnhancedPosition::cbAcceleration(const TAccelerationData accelerationData[], uint16_t numElements) +{ + LOG_INFO_MSG(gCtx,"Acceleration..."); + for (int i = 0; i<numElements; i++) + { + LOG_INFO(gCtx,"Acceleration Update[%d/%d]: x=%d y=%d z=%d temperature=%d measurementInterval=%d validityBits=%d", + i+1, + numElements, + accelerationData[i].x, + accelerationData[i].y, + accelerationData[i].z, + accelerationData[i].temperature, + accelerationData[i].measurementInterval, + accelerationData[i].validityBits); + } +} + +void EnhancedPosition::cbGyroscope(const TGyroscopeData gyroData[], uint16_t numElements) +{ + LOG_INFO_MSG(gCtx,"Gyroscope..."); + for (int i = 0; i<numElements; i++) + { + LOG_INFO(gCtx,"Gyroscope Update[%d/%d]: yawRate=%d pitchRate=%d rollRate=%d temperature=%d measurementInterval=%d validityBits=%d", + i+1, + numElements, + gyroData[i].yawRate, + gyroData[i].pitchRate, + gyroData[i].rollRate, + gyroData[i].temperature, + gyroData[i].measurementInterval, + gyroData[i].validityBits); + } +} void EnhancedPosition::run() { LOG_INFO_MSG(gCtx,"Starting EnhancedPosition dispatcher..."); - gnssRegisterPositionCallback(&cbPosition); - gnssRegisterSatelliteDetailCallback(&cbSatelliteDetail); + if (!gnssRegisterPositionCallback(&cbPosition)) + LOG_ERROR_MSG(gCtx,"Position Callback not registered"); + if (!gnssRegisterSatelliteDetailCallback(&cbSatelliteDetail)) + LOG_ERROR_MSG(gCtx,"SatelliteDetail Callback not registered"); + if (!snsGyroscopeRegisterCallback(&cbGyroscope)) + LOG_ERROR_MSG(gCtx,"Gyroscope Callback not registered"); + if (!snsAccelerationRegisterCallback(&cbAcceleration)) + LOG_ERROR_MSG(gCtx,"Acceleration Callback not registered"); } void EnhancedPosition::shutdown() @@ -423,6 +462,8 @@ void EnhancedPosition::shutdown() gnssDeregisterPositionCallback(&cbPosition); gnssDeregisterSatelliteDetailCallback(&cbSatelliteDetail); + snsGyroscopeDeregisterCallback(&cbGyroscope); + snsAccelerationDeregisterCallback(&cbAcceleration); } diff --git a/enhanced-position-service/dbus/src/enhanced-position.h b/enhanced-position-service/dbus/src/enhanced-position.h index dd03bc1..8dabe7e 100644 --- a/enhanced-position-service/dbus/src/enhanced-position.h +++ b/enhanced-position-service/dbus/src/enhanced-position.h @@ -18,11 +18,16 @@ #ifndef ___ENHANCED_POSITION_H #define ___ENHANCED_POSITION_H +#ifndef DBUS_HAS_RECURSIVE_MUTEX +#define DBUS_HAS_RECURSIVE_MUTEX +#endif #include <dbus-c++/dbus.h> #include "enhanced-position-adaptor.h" #include "gnss-init.h" #include "gnss.h" +#include "acceleration.h" +#include "gyroscope.h" class EnhancedPosition : public org::genivi::positioning::EnhancedPosition_adaptor @@ -49,6 +54,8 @@ private: static void cbSatelliteDetail(const TGNSSSatelliteDetail satelliteDetail[], uint16_t numElements); static void cbPosition(const TGNSSPosition position[], uint16_t numElements); + static void cbAcceleration(const TAccelerationData accelerationData[], uint16_t numElements); + static void cbGyroscope(const TGyroscopeData gyroData[], uint16_t numElements); static void sigPositionUpdate(const TGNSSPosition position[], uint16_t numElements); diff --git a/enhanced-position-service/dbus/src/main.cpp b/enhanced-position-service/dbus/src/main.cpp index 232d5a0..173f299 100644 --- a/enhanced-position-service/dbus/src/main.cpp +++ b/enhanced-position-service/dbus/src/main.cpp @@ -17,6 +17,9 @@ **************************************************************************/ #include <signal.h> +#ifndef DBUS_HAS_RECURSIVE_MUTEX +#define DBUS_HAS_RECURSIVE_MUTEX +#endif #include <dbus-c++/dbus.h> #include "enhanced-position.h" diff --git a/enhanced-position-service/dbus/src/position-feedback.h b/enhanced-position-service/dbus/src/position-feedback.h index 59c0490..5b089a8 100644 --- a/enhanced-position-service/dbus/src/position-feedback.h +++ b/enhanced-position-service/dbus/src/position-feedback.h @@ -19,6 +19,9 @@ #ifndef ___POSITION_FEEDBACK_H #define ___POSITION_FEEDBACK_H +#ifndef DBUS_HAS_RECURSIVE_MUTEX +#define DBUS_HAS_RECURSIVE_MUTEX +#endif #include <dbus-c++/dbus.h> #include "position-feedback-adaptor.h" diff --git a/enhanced-position-service/dbus/test/enhanced-position-client.h b/enhanced-position-service/dbus/test/enhanced-position-client.h index 5bbe0f1..0738005 100644 --- a/enhanced-position-service/dbus/test/enhanced-position-client.h +++ b/enhanced-position-service/dbus/test/enhanced-position-client.h @@ -18,6 +18,9 @@ #ifndef __ENHANCED_POSITION_CLIENT_H #define __ENHANCED_POSITION_CLIENT_H +#ifndef DBUS_HAS_RECURSIVE_MUTEX +#define DBUS_HAS_RECURSIVE_MUTEX +#endif #include <dbus-c++/dbus.h> #include "enhanced-position-proxy.h" |