diff options
author | asanoaozora <fifitaneki@hotmail.com> | 2018-04-24 16:53:51 +0200 |
---|---|---|
committer | asanoaozora <fifitaneki@hotmail.com> | 2018-04-24 16:53:51 +0200 |
commit | b91cad74053f066a3a6289ac8a91d64ed76326c1 (patch) | |
tree | 19fdc8c2966957f9a96eb9edbba8fbec356f9d79 /sensors-service/api | |
parent | b2649d35df7501fe426218a8eca931c2a81c8ad4 (diff) | |
download | positioning-b91cad74053f066a3a6289ac8a91d64ed76326c1.tar.gz |
move fidls to dedicated folders, start implementation of enhp wamp
it makes the api management more understandable and also the Franca
generation
Diffstat (limited to 'sensors-service/api')
-rw-r--r-- | sensors-service/api/franca/Acceleration.fidl | 204 | ||||
-rw-r--r-- | sensors-service/api/franca/AccelerationConfiguration.fidl | 150 | ||||
-rw-r--r-- | sensors-service/api/franca/Gyroscope.fidl | 199 | ||||
-rw-r--r-- | sensors-service/api/franca/GyroscopeConfiguration.fidl | 151 | ||||
-rw-r--r-- | sensors-service/api/franca/MetaData.fidl | 32 | ||||
-rw-r--r-- | sensors-service/api/franca/Odometer.fidl | 141 | ||||
-rw-r--r-- | sensors-service/api/franca/ReverseGear.fidl | 135 | ||||
-rw-r--r-- | sensors-service/api/franca/SensorsServiceTypes.fidl | 94 | ||||
-rw-r--r-- | sensors-service/api/franca/VehicleSpeed.fidl | 147 | ||||
-rw-r--r-- | sensors-service/api/franca/Wheel.fidl | 272 | ||||
-rw-r--r-- | sensors-service/api/franca/WheelConfiguration.fidl | 191 |
11 files changed, 0 insertions, 1716 deletions
diff --git a/sensors-service/api/franca/Acceleration.fidl b/sensors-service/api/franca/Acceleration.fidl deleted file mode 100644 index 84130d8..0000000 --- a/sensors-service/api/franca/Acceleration.fidl +++ /dev/null @@ -1,204 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : Acceleration = This interface offers functionalities to retrieve the Acceleration of the vehicle **> -interface Acceleration { - version { - major 5 - minor 0 - } - - <** @description: - Accelerometer type - TAccelerationConfiguration::typeBits provides information about the type of the accelerometer and the interpretation of the signals. - It is a or'ed bitmask of the EAccelerationTypeBits values. - **> - enumeration EAccelerationTypeBits{ - <** @description: An acceleration measurement for the x-axis is provided. - **> - ACCELERATION_X_PROVIDED = 1 //0x00000001 - <** @description: An acceleration measurement for the y-axis is provided. - **> - ACCELERATION_Y_PROVIDED = 2 //0x00000002 - <** @description: An acceleration measurement for the z-axis is provided. - **> - ACCELERATION_Z_PROVIDED = 4 //0x00000004 - <** @description: A measurement for the temperature is provided. - **> - ACCELERATION_TEMPERATURE_PROVIDED = 8 //0x00000008 - } - - <** @description: - TAccelerationData::validityBits provides information about the currently valid signals of the acceleration data. - It is a or'ed bitmask of the EAccelerationValidityBits values. - Note: - - The general availability of the signals is provided per TAccelerationConfiguration::typeBits. - - If a signal is generally provided but temporarily not available, then the corresponding typeBit will be set but not the validityBit - **> - enumeration EAccelerationValidityBits{ - <** @description: Validity bit for field TAccelerationData::x. - **> - ACCELERATION_X_VALID = 1 //0x00000001 - <** @description: Validity bit for field TAccelerationData::y. - **> - ACCELERATION_Y_VALID = 2 //0x00000002 - <** @description: Validity bit for field TAccelerationData::z. - **> - ACCELERATION_Z_VALID = 4 //0x00000004 - <** @description: Validity bit for field TAccelerationData::temperature. - **> - ACCELERATION_TEMPERATURE_VALID = 8 //0x00000008 - <** @description: Validity bit for field TAccelerationData::measurementInterval. - **> - ACCELERATION_MEASINT_VALID = 16 //0x00000010 - } - - <** @description: - The AccelerationData delivers the sensor values of the accelerometer. - The coordinate system is the axis system of the accelerometer sensor, - i.e. the x, y, z values are raw measurements - without any conversion except probably averaging of multiple - sensor readings over the measurement interval. - - see TAccelerationConfiguration for an explanation how to convert these values to the vehicle axis system - - It is possible that not all values are populated, e.g. when only a 1-axis accelerometer is used. - You must check the valid bits before usage. - **> - struct TAccelerationData{ - <** @description: Timestamp of the acquisition of the accelerometer signal [ms]. - All sensor/GNSS timestamps must be based on the same time source. - **> - UInt64 timestamp - <** @description: The acceleration in direction of the X-axis of the accelerometer sensor [m/s^2]. - **> - Float x - <** @description: The acceleration in direction of the Y-axis of the accelerometer sensor [m/s^2]. - **> - Float y - <** @description: The acceleration in direction of the Z-axis of the accelerometer sensor [m/s^2]. - **> - Float z - <** @description: Temperature reading of the accelerometer sensor. - If available it can be used for temperature compensation. - The measurement unit is unspecified. - Degrees celsius are preferred but any value linearly dependent on the temperature is fine. - **> - Float temperature - <** @description: Measurement interval over which the accelerometer signal has been acquired. - Unit: micro-seconds [us]. - This may slightly differ from the timestamp difference, - e.g. in case of transmission jitter before timestamping. - Providing the measurement interval allows thus - - a more accurate integration of accelerometer measurements. - - correct usage of the first sample - - adding consistency checks - **> - UInt32 measurementInterval - <** @description: Bit mask indicating the validity of each corresponding value. - [bitwise or'ed EAccelerationValidityBits values]. - Must be checked before usage. - **> - UInt32 validityBits - } - - <** @description: - Initialization of the acceleration sensor service. - Must be called before using the acceleration sensor service to set up the service. - **> - method init { - out { - <** @description: initialized = Is true if initialization has been successfull **> - Boolean initialized - } - } - - <** @description: - Destroy the acceleration sensor service. - Must be called after using the acceleration sensor service to shut down the service. - **> - method destroy { - out { - <** @description: destroyed = Is true if shutdown has been successfull. **> - Boolean destroyed - } - } - - <** @description: getMetaData = get the meta information about acceleration service. - The meta data of a sensor service provides information about it's name, version, type, subtype, sampling frequency etc. - **> - method getMetaData { - out { - TSensorMetaData data - <** @description: available = Is true if meta data is available **> - Boolean available - } - } - - <** @description: getAccelerationData = get the acceleration data at a specific point in time. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - method getAccelerationData { - out { - TAccelerationData accelerationData - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - - <** @description: getAccelerationDataList = get a list of acceleration data. - may return buffered data (numElements >1) for different reasons - for (large) portions of data buffered at startup - for data buffered during regular operation e.g. for performance optimization (reduction of callback invocation frequency) - If the array contains (numElements >1), the elements will be ordered with rising timestamps - accelerationData pointer to an array of TAccelerationData with size numElements - **> - method getAccelerationDataList { - out { - TAccelerationData[] accelerationData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - - <** @description: notifyAccelerationDataChanged - The signal will be emitted when new acceleration data is available. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - broadcast notifyAccelerationDataChanged selective { - out { - TAccelerationData[] accelerationData - UInt16 numElements - } - } - - <** @description: getStatus = get the acceleration sensor status at a specific point in time. **> - method getStatus { - out { - TSensorStatus status - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - - <** @description: notifyStatusChanged - The signal will be emitted when new acceleration sensor status data is available. - **> - broadcast notifyStatusChanged selective { - out { - TSensorStatus status - } - } - -} diff --git a/sensors-service/api/franca/AccelerationConfiguration.fidl b/sensors-service/api/franca/AccelerationConfiguration.fidl deleted file mode 100644 index f658f1f..0000000 --- a/sensors-service/api/franca/AccelerationConfiguration.fidl +++ /dev/null @@ -1,150 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : AccelerationConfiguration = This interface offers functionalities to retrieve the configuration of the Acceleration interface of the vehicle **> -interface AccelerationConfiguration { - version { - major 5 - minor 0 - } - - <** @description: - TAccelerationConfiguration::validityBits provides information about the currently valid signals of the acceleration configuration data. - It is a or'ed bitmask of the EAccelerationConfigValidityBits values. - **> - enumeration EAccelerationConfigValidityBits{ - <** @description: Validity bit for field TAccelerationConfiguration::dist2RefPointX. - **> - ACCELERATION_CONFIG_DISTX_VALID = 1 //0x00000001 - <** @description: Validity bit for field TAccelerationConfiguration::dist2RefPointY. - **> - ACCELERATION_CONFIG_DISTY_VALID = 2 //0x00000002 - <** @description: Validity bit for field TAccelerationConfiguration::dist2RefPointZ. - **> - ACCELERATION_CONFIG_DISTZ_VALID = 4 //0x00000004 - <** @description: Validity bit for field TAccelerationConfiguration::angleYaw. - **> - ACCELERATION_CONFIG_ANGLEYAW_VALID = 8 //0x00000008 - <** @description: Validity bit for field TAccelerationConfiguration::anglePitch. - **> - ACCELERATION_CONFIG_ANGLEPITCH_VALID= 16 //0x00000010 - <** @description: Validity bit for field TAccelerationConfiguration::angleRoll. - **> - ACCELERATION_CONFIG_ANGLEROLL_VALID = 32 //0x00000020 - <** @description: Validity bit for field TAccelerationConfiguration::sigmaX. - **> - ACCELERATION_CONFIG_SIGMAX_VALID = 64 //0x00000040 - <** @description: Validity bit for field TAccelerationConfiguration::sigmaX. - **> - ACCELERATION_CONFIG_SIGMAY_VALID = 128 //0x00000080 - <** @description: Validity bit for field TAccelerationConfiguration::sigmaZ. - **> - ACCELERATION_CONFIG_SIGMAZ_VALID = 256 //0x00000100 - <** @description: Validity bit for field TAccelerationConfiguration::typeBits. - **> - ACCELERATION_CONFIG_TYPE_VALID = 512 //0x00000200 - } - - <** @description: - Static configuration data for the acceleration sensor service. - - BEGIN Explanation of the angleYaw, anglePitch angleRoll parameters - The orientation of the accelerometer hardware (Xa, Ya, Za) - with respect to the vehicle axis system (Xv, Yv, Zv) - can be described using the angles (angleYaw, anglePitch, angleRoll) - following the approach defined in ISO 8855:2011, section 5.2, table 1 - Apply 3 rotations on the vehicle axis system until it matches the accelerometer axis system - The rotation sequence is as follows - - first rotate by angleYaw about the Zv axis - - second rotate by anglePitch about the new (intermediate) Y axis - - third rotate by angleRoll about the new X axis - - Notes - - the angles are frequently called "Euler angles" and the rotations "Euler rotations" - - a different order of the rotations would lead to a different orientation - - as the vehicle axis system is right-handed, also the accelerometer axis system must be right-handed - - The vehicle axis system as defined in ISO 8855:2011(E). - In this system, the axes (Xv, Yv, Zv) are oriented as follows - - Xv is in the horizontal plane, pointing forwards - - Yv is in the horizontal plane, pointing to the left - - Zv is perpendicular to the horizontal plane, pointing upwards - For an illustration, see https://collab.genivi.org/wiki/display/genivi/LBSSensorServiceRequirementsBorg#LBSSensorServiceRequirementsBorg-ReferenceSystem - - When the accelerometer axes are not aligned with the vehicle axes, i.e. - if any of the angles (angleYaw, anglePitch, angleRoll) is not zero - then the raw measurement values of the accelerometer X, Y, Z axes may have to be be transformed - to the vehicle axis system by the client of this interface, depending on the type of application. - Raw measurements are provided in TAccelerationData instead of already transformed values, because - - for accelerometers with less than 3 axes, the transformation is mathematically not well-defined - - some types of calibration operations are better performed on raw data - - Implementors hint: The mathematics of this kind of transformation, - like the derivation of the rotation matrixes is described in literature on strapdown navigation - E.g. "Strapdown Inertial Navigation Technology", 2nd Edition by David Titterton and John Weston, section 3.6 - END Explanation of the angleYaw, anglePitch angleRoll parameters - **> - struct TAccelerationConfiguration{ - <** @description: Distance of acceleration sensor from vehicle reference point (x-coordinate) [m]. - **> - Float dist2RefPointX - <** @description: Distance of acceleration sensor from vehicle reference point (y-coordinate) [m]. - **> - Float dist2RefPointY - <** @description: Distance of acceleration sensor from vehicle reference point (z-coordinate) [m]. - **> - Float dist2RefPointZ - <** @description: Euler angle of first rotation, around yaw axis, to describe acceleration sensor orientation [degree]. - For details, see above. - **> - Float angleYaw - <** @description: Euler angle of second rotation, around pitch axis, to describe acceleration sensor orientation [degree]. - For details, see above. - **> - Float anglePitch - <** @description: Euler angle of third rotation, around roll axis, to describe acceleration sensor orientation [degree]. - For details, see above. - **> - Float angleRoll - <** @description: Standard error estimate of the x-acceleration [m/s^2]. - **> - Float sigmaX - <** @description: Standard error estimate of the y-acceleration [m/s^2]. - **> - Float sigmaY - <** @description: Standard error estimate of the z-acceleration [m/s^2]. - **> - Float sigmaZ - <** @description: Bit mask indicating the type of the used accelerometer. - [bitwise or'ed EAccelerationTypeBits values]. - **> - UInt32 typeBits - <** @description: Bit mask indicating the validity of each corresponding value. - [bitwise or'ed EAccelerationConfigValidityBits values]. - Must be checked before usage. - **> - UInt32 validityBits - } - - <** @description: getAccelerationConfiguration = get the static configuration information about the acceleration sensor. - **> - method getAccelerationConfiguration { - out { - TAccelerationConfiguration config - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - -} diff --git a/sensors-service/api/franca/Gyroscope.fidl b/sensors-service/api/franca/Gyroscope.fidl deleted file mode 100644 index 447ca76..0000000 --- a/sensors-service/api/franca/Gyroscope.fidl +++ /dev/null @@ -1,199 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : Gyroscope = This interface offers functionalities to retrieve the gyroscope data of the vehicle **> -interface Gyroscope { - version { - major 5 - minor 0 - } - - <** @description: - TGyroscopeData::validityBits provides information which fields in - TGyroscopeData contain valid measurement data. - It is a or'ed bitmask of the EGyroscopeValidityBits values. - Note: - - The general availability of the signals is provided per - TGyroscopeConfiguration::typeBits. - - If a signal is generally provided but temporarily not available - then the corresponding typeBit will be set but not the validityBit - **> - enumeration EGyroscopeValidityBits { - <** @description: Validity bit for field TGyroscopeData::yawRate. - **> - GYROSCOPE_YAWRATE_VALID = 1 //0x00000001 - <** @description: Validity bit for field TGyroscopeData::pitchRate. - **> - GYROSCOPE_PITCHRATE_VALID = 2 //0x00000002 - <** @description: Validity bit for field TGyroscopeData::rollRate. - **> - GYROSCOPE_ROLLRATE_VALID = 4 //0x00000004 - <** @description: Validity bit for field TGyroscopeData::temperature. - **> - GYROSCOPE_TEMPERATURE_VALID = 8 //0x00000008 - <** @description: Validity bit for field TGyroscopeData::measurementInterval. - **> - GYROSCOPE_MEASINT_VALID = 16 //0x00000010 - } - - <** @description: - The GyroscopeData delivers the sensor values of the gyroscope. - The coordinate system is the axis system of the gyroscope sensor - i.e. the yawRate pitchRate rollRate values are raw measurements - without any conversion except probably averaging of multiple - sensor readings over the measurement interval. - see TGyroscopeConfiguration for an explanation how to convert these values to the vehicle axis system - It is possible that not all values are populated e.g. when only a 1-axis gyroscope is used. - You must check the valid bits before usage. - **> - struct TGyroscopeData { - <** @description: Timestamp of the acquisition of the gyroscope signal [ms]. - All sensor/GNSS timestamps must be based on the same time source. - **> - UInt64 timestamp - <** @description: Current angular rate measurement around the z/yaw-axis of the gyroscope sensor [degree/s]. - Value range -100 / +100 degree/s. Frequency of at least 5Hz. Preferrably 50Hz. - A rotation to the left is indicated by a positive sign - _if_ gyroscope axes are aligned with vehicle axes - i.e. if all euler angles are zero in TGyroscopeConfiguration. - **> - Float yawRate - <** @description: Current angular rate measurement around the y/pitch-axis of the gyroscope sensor [degree/s]. - Value range -100 / +100 degree/s. Frequency of at least 5Hz. Preferrably 50Hz. - A rotation front down is indicated by a positive sign - _if_ gyroscope axes are aligned with vehicle axes - i.e. if all euler angles are zero in TGyroscopeConfiguration. - **> - Float pitchRate - <** @description: Current angular rate measurement around the x/roll-axis of the gyroscope sensor [degree/s]. - Value range -100 / +100 degree/s. Frequency of at least 5Hz. Preferrably 50Hz. - A rotation right down is indicated by a positive sign - _if_ gyroscope axes are aligned with vehicle axes - i.e. if all euler angles are zero in TGyroscopeConfiguration. - **> - Float rollRate - <** @description: Temperature reading of the gyroscope sensor. - If available it can be used for temperature compensation. - The measurement unit is unspecified. - Degrees celsius are preferred but any value linearly dependent on the temperature is fine. - **> - Float temperature - <** @description: Measurement interval over which the gyroscope signal has been acquired. - Unit: micro-seconds [us]. - This may slightly differ from the timestamp difference - e.g. in case of transmission jitter before timestamping. - Providing the measurement interval allows thus - - a more accurate integration of gyroscope measurements. - - correct usage of the first sample - - adding consistency checks - **> - UInt32 measurementInterval - <** @description: Bit mask indicating the validity of each corresponding value. - [bitwise or'ed EGyroscopeValidityBits values]. - Must be checked before usage. - **> - UInt32 validityBits - } - - <** @description: getGyroscopeData = get the gyroscope data at a specific point in time. - Be careful when using this method to read data often enough as gyro data are rotation rates per second. - The recommended usage for the gyroscope data is the callback interface. PC: get on notification - The get method is provided for consistency reasons of the sensor service API and might be used - for determining the rotation rate in certain situations. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - method getGyroscopeData { - out { - TGyroscopeData gyroData - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - <** @description: getGyroscopeDataList = get a list of gyroscope data. - may return buffered data (numElements >1) for different reasons - for (large) portions of data buffered at startup - for data buffered during regular operation e.g. for performance optimization (reduction of callback invocation frequency) - If the array contains (numElements >1) the elements will be ordered with rising timestamps - gyroData pointer to an array of TGyroscopeData with size numElements - **> - method getGyroscopeDataList { - out { - TGyroscopeData[] gyroData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - <** @description: notifyGyroscopeDataChanged - The signal will be emitted when new gyroscope data is available. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - broadcast notifyGyroscopeDataChanged selective { - out { - TGyroscopeData[] gyroData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - - <** @description: - Initialization of the gyroscope sensor service. - Must be called before using the gyroscope sensor service to set up the service. - **> - method init { - out { - <** @description: initialized = Is true if initialization has been successfull **> - Boolean initialized - } - } - - <** @description: - Destroy the acceleration sensor service. - Must be called after using the gyroscope sensor service to shut down the service. - **> - method destroy { - out { - <** @description: destroyed = Is true if shutdown has been successfull. **> - Boolean destroyed - } - } - - <** @description: getMetaData = get the meta information about gyroscope service. - The meta data of a sensor service provides information about it's name, version, type, subtype, sampling frequency etc. - **> - method getMetaData { - out { - TSensorMetaData data - <** @description: available = Is true if meta data is available **> - Boolean available - } - } - - <** @description: getStatus = get the gyroscope status at a specific point in time. **> - method getStatus { - out { - TSensorStatus status - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - <** @description: notifyStatusChanged - The signal will be emitted when new gyroscope sensor status data is available. - **> - broadcast notifyStatusChanged selective { - out { - TSensorStatus status - } - } - -} diff --git a/sensors-service/api/franca/GyroscopeConfiguration.fidl b/sensors-service/api/franca/GyroscopeConfiguration.fidl deleted file mode 100644 index 19a1d65..0000000 --- a/sensors-service/api/franca/GyroscopeConfiguration.fidl +++ /dev/null @@ -1,151 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : GyroscopeConfiguration = This interface offers functionalities to retrieve the configuration of the Gyroscope interface of the vehicle **> -interface GyroscopeConfiguration { - version { - major 5 - minor 0 - } - - <** @description: - TGyroscopeConfiguration::validityBits provides information about the - currently valid signals of the gyroscope configuration data. - It is a or'ed bitmask of the EGyroscopeConfigValidityBits values. - **> - enumeration EGyroscopeConfigValidityBits{ - <** @description: Validity bit for field TGyroscopeConfiguration::angleYaw. - **> - GYROSCOPE_CONFIG_ANGLEYAW_VALID = 1 //0x00000001 - <** @description: Validity bit for field TGyroscopeConfiguration::anglePitch. - **> - GYROSCOPE_CONFIG_ANGLEPITCH_VALID = 2 //0x00000002 - <** @description: Validity bit for field TGyroscopeConfiguration::angleRoll. - **> - GYROSCOPE_CONFIG_ANGLEROLL_VALID = 4 //0x00000004 - <** @description: Validity bit for field TGyroscopeConfiguration::momentOfYawInertia. - **> - GYROSCOPE_CONFIG_MOMENTYAW_VALID = 8 //0x00000008 - <** @description: Validity bit for field TGyroscopeConfiguration::sigmaGyroscope. - **> - GYROSCOPE_CONFIG_SIGMAGYROSCOPE_VALID = 16 //0x00000010 - <** @description: Validity bit for field TGyroscopeConfiguration::typeBits. - **> - GYROSCOPE_CONFIG_TYPE_VALID = 32 //0x00000020 - } - - <** @description: - Gyroscope type - TGyroscopeConfiguration::typeBits provides information about the - type of the gyroscope and the interpretation of the signals. - It is a or'ed bitmask of the EGyroscopeTypeBits values. - **> - enumeration EGyroscopeTypeBits { - <** @description: Temperature bias compensation already applied to gyroscope signals. - **> - GYROSCOPE_TEMPERATURE_COMPENSATED = 1 //0x00000001 - <** @description: A measurement for the z/yaw-axis is provided. - **> - GYROSCOPE_YAWRATE_PROVIDED = 2 //0x00000002 - <** @description: A measurement for the y/pitch-axis is provided. - **> - GYROSCOPE_PITCHRATE_PROVIDED = 4 //0x00000004 - <** @description: A measurement for the x/roll-axis is provided. - **> - GYROSCOPE_ROLLRATE_PROVIDED = 8 //0x00000008 - <** @description: A measurement for the temperature is provided. - **> - GYROSCOPE_TEMPERATURE_PROVIDED = 16 //0x00000010 - } - - <** @description: - Static configuration data for the gyroscope sensor service. - BEGIN Explanation of the angleYaw anglePitch angleRoll parameters - The orientation of the gyroscope hardware (Xg Yg Zg) - with respect to the vehicle axis system (Xv Yv Zv) - can be described using the angles (angleYaw anglePitch angleRoll) - following the approach defined in ISO 8855:2011 section 5.2 table 1 - Apply 3 rotations on the vehicle axis system until it matches the gyroscope axis system - The rotation sequence is as follows - - first rotate by angleYaw about the Zv axis - - second rotate by anglePitch about the new (intermediate) Y axis - - third rotate by angleRoll about the new X axis - Notes - - the angles are frequently called "Euler angles" and the rotations "Euler rotations" - - a different order of the rotations would lead to a different orientation - - as the vehicle axis system is right-handed also the gyroscope axis system must be right-handed - The vehicle axis system as defined in ISO 8855:2011(E). - In this system the axes (Xv Yv Zv) are oriented as follows - - Xv is in the horizontal plane pointing forwards - - Yv is in the horizontal plane pointing to the left - - Zv is perpendicular to the horizontal plane pointing upwards - For an illustration see https://collab.genivi.org/wiki/display/genivi/LBSSensorServiceRequirementsBorg#LBSSensorServiceRequirementsBorg-ReferenceSystem - When the gyroscope axes are not aligned with the vehicle axes i.e. - if any of the angles (angleYaw anglePitch angleRoll) is not zero - then the raw measurement values of the gyroscope Z Y X axes may have to be be transformed - to the vehicle axis system by the client of this interface depending on the type of application. - Raw measurements are provided in TGyroscopeData instead of already transformed values because - - for gyroscopes with less than 3 axes the transformation is mathematically not well-defined - - some types of calibration operations are better performed on raw data - Implementors hint: The mathematics of this kind of transformation - like the derivation of the rotation matrixes is described in literature on strapdown navigation - E.g. "Strapdown Inertial Navigation Technology" 2nd Edition by David Titterton and John Weston section 3.6 - END Explanation of the angleYaw anglePitch angleRoll parameters - **> - struct TGyroscopeConfiguration { - <** @description: Euler angle of first rotation around yaw axis - to describe gyroscope orientation [degree]. - For details see above. - **> - Float angleYaw - <** @description: Euler angle of second rotation around pitch axis - to describe gyroscope orientation [degree]. - For details see above. - **> - Float anglePitch - <** @description: Euler angle of third rotation around roll axis - to describe gyroscope orientation [degree]. - For details see above. - **> - Float angleRoll - <** @description: Moment of yaw inertia [kg x m^2]. - The pitch and roll inertia moments are not provided - as they are not relevant for positioning. - **> - Float momentOfYawInertia - <** @description: Standard error estimate of the gyroscope for all directions [degree/s]. - **> - Float sigmaGyroscope - <** @description: Bit mask indicating the type of the used gyroscope. - [bitwise or'ed EGyroscopeTypeBits values]. - **> - UInt32 typeBits - <** @description: Bit mask indicating the validity of each corresponding value. - [bitwise or'ed EGyroscopeConfigValidityBits values]. - Must be checked before usage. - **> - UInt32 validityBits - } - - <** @description: getGyroscopeConfiguration = get the static configuration information about the gyroscope sensor. - **> - method getGyroscopeConfiguration { - out { - TGyroscopeConfiguration config - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - -} diff --git a/sensors-service/api/franca/MetaData.fidl b/sensors-service/api/franca/MetaData.fidl deleted file mode 100644 index 9821b33..0000000 --- a/sensors-service/api/franca/MetaData.fidl +++ /dev/null @@ -1,32 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : MetaData = This interface offers functionalities to retrieve the MetaData of SensorsService **> -interface MetaData { - version { - major 5 - minor 0 - } - - <** @description: getMetaDataList = get the metadata of all available sensors. **> - method getMetaDataList { - out { - TSensorMetaData[] metadata - <** @description: numElements = number of elements in the array **> - UInt16 numElements - } - } - -} - diff --git a/sensors-service/api/franca/Odometer.fidl b/sensors-service/api/franca/Odometer.fidl deleted file mode 100644 index ed6fa90..0000000 --- a/sensors-service/api/franca/Odometer.fidl +++ /dev/null @@ -1,141 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : Odometer = This interface offers functionalities to retrieve the travelled distance of the vehicle **> -interface Odometer { - version { - major 5 - minor 0 - } - - <** @description: - TOdometerData::validityBits provides information about the currently valid signals of the odometer data. - It is a or'ed bitmask of the EOdometerValidityBits values. - **> - enumeration EOdometerValidityBits { - ODOMETER_TRAVELLEDDISTANCE_VALID = 1 //0x00000001 Validity bit for field TOdometerData::travelledDistance. - } - - <** @description: - Odometer sensor service provides the travelled distance. - **> - struct TOdometerData { - <** @description: Timestamp of the acquisition of the odometer signal [ms]. - All sensor/GNSS timestamps must be based on the same time source. **> - UInt64 timestamp - <** @description: Distance in [cm] with at least 5Hz. Implemented as a running counter - with overflow to support multiple clients and getter methods. - As the representation of this value is done using 16 Bits the value can provide - distances up 32767cm or 327.67m before overflowing. **> - UInt16 travelledDistance - <** @description: Bit mask indicating the validity of each corresponding value. - bitwise or'ed ref EOdometerValidityBits values]. - Must be checked before usage. **> - UInt32 validityBits - } - - <** @description: - Initialization of the odometer sensor service. - Must be called before using the odometer sensor service to set up the service. - **> - method init { - out { - <** @description: initialized = Is true if initialization has been successfull **> - Boolean initialized - } - } - - <** @description: - Destroy the odometer sensor service. - Must be called after using the odometer sensor service to shut down the service. - **> - method destroy { - out { - <** @description: destroyed = Is true if shutdown has been successfull. **> - Boolean destroyed - } - } - - <** @description: getMetaData = get the meta information about odometer service. - The meta data of a sensor service provides information about it's name, version, type, subtype, sampling frequency etc. - **> - method getMetaData { - out { - TSensorMetaData data - <** @description: available = Is true if meta data is available **> - Boolean available - } - } - - <** @description: getOdometerData = get the odometer data at a specific point in time. - Be careful when using this method to read data often enough to avoid missing an overflow. - With reasonable car speeds it should be enough to read the data every 3s. - The recommended usage for the odometer data is the callback interface. - The get method is provided for consistency reasons of the sensor service API and might be used - for determining the distance between a few points in time. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - method getOdometerData { - out { - TOdometerData odometerData - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - - <** @description: getOdometerDataList = get a list of odometer data. - may return buffered data (numElements >1) for different reasons - for (large) portions of data buffered at startup - for data buffered during regular operation e.g. for performance optimization (reduction of callback invocation frequency) - If the array contains (numElements >1), the elements will be ordered with rising timestamps - odometerData pointer to an array of TOdometerData with size numElements - **> - method getOdometerDataList { - out { - TOdometerData[] odometerData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - - <** @description: notifyOdometerDataChanged - The signal will be emitted when new odometer data is available. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - broadcast notifyOdometerDataChanged selective { - out { - TOdometerData[] odometerData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - - <** @description: getStatus = get the odometer sensor status at a specific point in time. **> - method getStatus { - out { - TSensorStatus status - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - <** @description: notifyStatusChanged - The signal will be emitted when new odometer sensor status data is available. - **> - broadcast notifyStatusChanged selective { - out { - TSensorStatus status - } - } - -} diff --git a/sensors-service/api/franca/ReverseGear.fidl b/sensors-service/api/franca/ReverseGear.fidl deleted file mode 100644 index 948de5a..0000000 --- a/sensors-service/api/franca/ReverseGear.fidl +++ /dev/null @@ -1,135 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : ReverseGear = This interface offers functionalities to retrieve the current status of the reverse gear of the vehicle. **> -interface ReverseGear { - version { - major 5 - minor 0 - } - - <** @description: - TReverseGearData::validityBits provides information about the currently valid signals of the reverse gear data. - It is a or'ed bitmask of the EReverseGearValidityBits values. - **> - enumeration EReverseGearValidityBits { - REVERSEGEAR_REVERSEGEAR_VALID = 1 //0x00000001 Validity bit for field TReverseGearData::isReverseGear. - } - - <** @description: - Reverse gear sensor service provides the current status of the reverse gear of the vehicle. - This information is explicitly restricted to provide only the information if the reverse gear is engaged. - The direction of movement is provided by the direction of the vehicle speed. - **> - struct TReverseGearData{ - <** @description: Timestamp of the acquisition of the reverse gear signal [ms]. - All sensor/GNSS timestamps must be based on the same time source. - **> - UInt64 timestamp - <** @description:True if the reverse gear is currently used. False otherwise. **> - Boolean isReverseGear - <** @description: Bit mask indicating the validity of each corresponding value. - [bitwise or'ed EReverseGearValidityBits values]. - Must be checked before usage. - **> - UInt32 validityBits - } - - <** @description: - Initialization of the reverse gear sensor service. - Must be called before using the reverse gear sensor service to set up the service. - **> - method init { - out { - <** @description: initialized = Is true if initialization has been successfull **> - Boolean initialized - } - } - - <** @description: - Destroy the reverse gear sensor service. - Must be called after using the reverse gear sensor service to shut down the service. - **> - method destroy { - out { - <** @description: destroyed = Is true if shutdown has been successfull. **> - Boolean destroyed - } - } - - <** @description: getMetaData = get the meta information about reverse gear service. - The meta data of a sensor service provides information about it's name, version, type, subtype, sampling frequency etc. - **> - method getMetaData { - out { - TSensorMetaData data - <** @description: available = Is true if meta data is available **> - Boolean available - } - } - - <** @description: getReverseGearData = get the reverse gear data at a specific point in time. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - method getReverseGearData { - out { - TReverseGearData reverseGearData - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - <** @description: getReverseGearDataList = get a list of reverse gear data. - may return buffered data (numElements >1) for different reasons - for (large) portions of data buffered at startup - for data buffered during regular operation e.g. for performance optimization (reduction of callback invocation frequency) - If the array contains (numElements >1), the elements will be ordered with rising timestamps - reverseGearData pointer to an array of TReverseGearData with size numElements - **> - method getReverseGearDataList { - out { - TReverseGearData[] reverseGearData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - <** @description: notifyReverseGearDataChanged - The signal will be emitted when new reverse gear data is available. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - broadcast notifyReverseGearDataChanged selective { - out { - TReverseGearData[] reverseGearData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - - <** @description: getStatus = get the reverse gear sensor status at a specific point in time. **> - method getStatus { - out { - TSensorStatus status - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - <** @description: notifyStatusChanged - The signal will be emitted when new reverse gear sensor status data is available. - **> - broadcast notifyStatusChanged selective { - out { - TSensorStatus status - } - } - -} diff --git a/sensors-service/api/franca/SensorsServiceTypes.fidl b/sensors-service/api/franca/SensorsServiceTypes.fidl deleted file mode 100644 index cf0fe47..0000000 --- a/sensors-service/api/franca/SensorsServiceTypes.fidl +++ /dev/null @@ -1,94 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -typeCollection SensorsServiceTypes { - version { - major 5 - minor 0 - } - - <** @description: - The sensor category introduces the concept that sensor information can also be derived information - computed by combining several signals. - **> - enumeration ESensorCategory { - SENSOR_CATEGORY_UNKNOWN // Unknown category. Should not be used. - SENSOR_CATEGORY_LOGICAL // A logical sensor can combine signals of several sensors. - SENSOR_CATEGORY_PHYSICAL // A physical sensor provides signals from physically available sensors. - } - - <** @description: - The sensor type identifies which physical quantity is measured. - For each sensor type there is a corresponding API header with data structures callback notifications and getter functions defined - Note that for all 3 wheel sensor types there is a combined API header. - **> - enumeration ESensorType { - SENSOR_TYPE_UNKNOWN // Unknown sensor type. Should not be used. - SENSOR_TYPE_ACCELERATION // Acceleration sensor. - SENSOR_TYPE_GYROSCOPE // Gyroscope sensor. - SENSOR_TYPE_INCLINATION // Inclination sensor. - SENSOR_TYPE_ODOMETER // Odometer sensor. - SENSOR_TYPE_REVERSE_GEAR // Reverse gear sensor. - SENSOR_TYPE_SLIP_ANGLE // Slip angle sensor. - SENSOR_TYPE_STEERING_ANGLE // Steering angle sensor. - SENSOR_TYPE_VEHICLE_SPEED // Vehicle speed sensor. - SENSOR_TYPE_VEHICLE_STATE // Vehicle state sensor. - SENSOR_TYPE_WHEELTICK // Wheel tick sensor. - SENSOR_TYPE_WHEELSPEEDANGULAR // Wheel speed angular sensor. - SENSOR_TYPE_WHEELSPEED // Wheel speed sensor. - } - - <** @description: - The software platform provides the following information about the Sensor and the related output Signals. - Sensor clients need the meta data information in order to correctly handle data provided by sensor service and - to adapt to the variation in the signal data delivery. - **> - struct TSensorMetaData { - UInt32 ^version // Version of the sensor service. - ESensorCategory category // Sensor Category (Physical/Logical). - ESensorType type // Sensor Type (Odometer Gyroscope etc.). - UInt32 cycleTime // Sensor cycle time (update interval) in ms. 0 for irregular updates - } - - <** @description: - Enumeration to describe the status of the sensor - **> - enumeration ESensorStatus { - SENSOR_STATUS_NOTAVAILABLE = 0 // Sensor is not available at all based on configuration data. - SENSOR_STATUS_INITIALIZING = 1 // Initial status when the connection to the Sensor is set up for the first time. - SENSOR_STATUS_AVAILABLE = 2 // Sensor is available and running as expected. - SENSOR_STATUS_RESTARTING = 3 // Sensor is restarted i.e. due to communication loss. - SENSOR_STATUS_FAILURE = 4 // Sensor is not operating properly. Restarting did not help. - SENSOR_STATUS_OUTOFSERVICE = 5 // Sensor is temporarily not available due to some known external condition vehicle bus or external ECU providing he signal being off. - } - - <** @description: - TSensorStatus::validityBits provides information about the currently valid signals of the TSensorStatus struct. - It is a or'ed bitmask of the ESensorStatusValidityBits values. - **> - enumeration ESensorStatusValidityBits { - SENSOR_STATUS_STATUS_VALID = 1 //0x00000001 // Validity bit for field TSensorStatus::status. - } - - <** @description: - Container for sensor status information - **> - struct TSensorStatus { - UInt64 timestamp // Timestamp of the sensor status transition [ms]. - // All sensor/GNSS timestamps must be based on the same time source. - ESensorStatus status // Status of the sensor **> - UInt32 validityBits // Bit mask indicating the validity of each corresponding value. - // [bitwise or'ed ref ESensorStatusValidityBits values]. - // Must be checked before usage. **> - } - -} diff --git a/sensors-service/api/franca/VehicleSpeed.fidl b/sensors-service/api/franca/VehicleSpeed.fidl deleted file mode 100644 index 59d4c80..0000000 --- a/sensors-service/api/franca/VehicleSpeed.fidl +++ /dev/null @@ -1,147 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : VehicleSpeed = This interface offers functionalities to retrieve current speed of the vehicle **> -interface VehicleSpeed { - version { - major 5 - minor 0 - } - - <** @description: - TVehicleSpeedData::validityBits provides information about the currently valid signals of the odometer data. - It is a or'ed bitmask of the EVehicleSpeedValidityBits values. - **> - enumeration EVehicleSpeedValidityBits { - VEHICLESPEED_VEHICLESPEED_VALID = 1 //0x00000001 Validity bit for field TVehicleSpeedData::vehicleSpeed. - VEHICLESPEED__MEASINT_VALID = 2 //0x00000002 Validity bit for field TVehicleSpeedData::measurementInterval. - } - - <** @description: - Vehicle speed sensor service provides the current speed of the vehicle. - **> - struct TVehicleSpeedData { - <** @description: Timestamp of the acquisition of the vehicle speed signal [ms]. - All sensor/GNSS timestamps must be based on the same time source. - **> - UInt64 timestamp - <** @description: Filtered vehicle speed in [m/s] with a frequency of at least 5Hz. - Direction is given by the sign of this value. - **> - Float vehicleSpeed - <** @description: Measurement interval over which the vehicle speed signal has been acquired. - Unit: micro-seconds [us]. - This may slightly differ from the timestamp difference, - e.g. in case of transmission jitter before timestamping. - Providing the measurement interval allows thus - - a more accurate integration of vehicle speed measurements. - - correct usage of the first sample - - adding consistency checks - **> - UInt32 measurementInterval - <** @description: Bit mask indicating the validity of each corresponding value. - bitwise or'ed ref EVehicleSpeedValidityBits values]. - Must be checked before usage. **> - UInt32 validityBits - } - - <** @description: - Initialization of the vehicle speed sensor service. - Must be called before using the vehicle speed sensor service to set up the service. - **> - method init { - out { - <** @description: initialized = Is true if initialization has been successfull **> - Boolean initialized - } - } - - <** @description: - Destroy the vehicle speed sensor service. - Must be called after using the vehicle speed sensor service to shut down the service. - **> - method destroy { - out { - <** @description: destroyed = Is true if shutdown has been successfull. **> - Boolean destroyed - } - } - - <** @description: getMetaData = get the meta information about vehicle speed sensor service. - The meta data of a sensor service provides information about it's name, version, type, subtype, sampling frequency etc. - **> - method getMetaData { - out { - TSensorMetaData data - <** @description: available = Is true if meta data is available **> - Boolean available - } - } - - <** @description: getVehicleSpeedData = get the vehicle speed data at a specific point in time. - **> - method getVehicleSpeedData { - out { - TVehicleSpeedData vehicleSpeedData - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - - <** @description: getVehicleSpeedDataList = get a list of vehicle speed sensor data. - may return buffered data (numElements >1) for different reasons - for (large) portions of data buffered at startup - for data buffered during regular operation e.g. for performance optimization (reduction of callback invocation frequency) - If the array contains (numElements >1), the elements will be ordered with rising timestamps - vehicleSpeedData pointer to an array of TVehicleSpeedData with size numElements - **> - method getVehicleSpeedDataList { - out { - TVehicleSpeedData[] vehicleSpeedData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - - <** @description: notifyVehicleSpeedDataChanged - The signal will be emitted when new vehicle speed sensor data is available. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - broadcast notifyVehicleSpeedDataChanged selective { - out { - TVehicleSpeedData[] vehicleSpeedData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - - <** @description: getStatus = get the vehicle speed sensor status at a specific point in time. **> - method getStatus { - out { - TSensorStatus status - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - <** @description: notifyStatusChanged - The signal will be emitted when new odometer sensor status data is available. - **> - broadcast notifyStatusChanged selective { - out { - TSensorStatus status - } - } - -} - diff --git a/sensors-service/api/franca/Wheel.fidl b/sensors-service/api/franca/Wheel.fidl deleted file mode 100644 index 846e462..0000000 --- a/sensors-service/api/franca/Wheel.fidl +++ /dev/null @@ -1,272 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : Wheel = This interface offers functionalities to retrieve the wheel rotation data of the vehicle -Wheel rotation data may be provided as wheel ticks, as wheel speed -or as angular wheel speed. -It is vehicle specific which kind of wheel rotation data is available -and for which wheels the data is provided. -The vehicle specific configuration can be queried using the -snsWheelGetConfiguration() function. -Note: The driving direction (forward/backward) shall always be coded as -sign of the wheel rotation data. -This will reduce synchronization effort with separate reverse gear info -by the client application which is in particular useful with buffered data. -How the driving direction can be derived is vehicle specific. -**> -interface Wheel { - version { - major 5 - minor 0 - } - - <** @description: - Maximum number of wheel elements per structure. - A fix value is used because a flat data structure has advantages like simple copying, indexed access. - **> - enumeration constants { - WHEEL_MAX = 8 - } - - <** @description: - Additional status information for wheel data, in particular when provided as wheel ticks. - This may help the client application to estimate the reliability of the wheel data. - TWheelData::statusBits is a or'ed bitmask of the EWheelStatusBits values. - Background information - ---------------------- - Wheel ticks are typically provided by the ABS/ESC ECU as rolling counters - on the vehicle bus. - To calculate the wheel ticks per time interval as provided by this API in the - TWheelData structure, the difference between the two _valid_ rolling - counter values at end and start of the time interval has to be calculated - (taking into account potential rollover). - If any of the rolling counter values is invalid or if there has been a reset - of the rolling counter in the time interval, then no valid difference can be - calculated. Therefore an appropriate error/exception handling has to be - implemented in the library translating the rolling counters from the vehicle bus - to the wheel ticks per time interval provided by this API. - Besides to the validity indication provided with each wheel rotation update, - the client (typically the EnhancedPositionService) using the wheel rotation API - may be interested to know whether wheel rotation information may have been lost. - In such a case it could adapt its error estimation related to - wheel ticks or even make an internal reset of its corresponding states. - The status bits in enum EWheelStatusBits are defined to provide such information. - Further Background - ------------------ - This section gives an additional overview about the possible signal path - of wheel tick data and the resulting possible exceptional situations: - There may be a gateway between the ABS/ESC ECU and the IVI system to separate - vehicle networks. This gateway may reduce the update rate of the CAN messages, - e.g. from 20ms cycle time sent by the ABS ECU to 100ms provided for the IVI system. - When the update rate is reduced, the rolling counters may have to be resampled e.g. - from 8 bit to 13 bit to avoid rollover within the update period. - The rolling counters typically start from 0 when either the ABS ECU or the gateway is - started/restarted, e.g. at an ignition cycle. - The rolling counters are often accompanied with additional status information to indicate - validity, reset conditions or to allow to detect loss of wheel tick data during transmission - on vehicle bus (such as sequence numbers). - This status information has to be evaluated to determine whether the difference calculation - between subsequent rolling counters yields a valid result or not. - The kind of status information provided alongside with the wheel ticks is very OEM specific - - sometimes even additional context information such as ignition status has to considered. - Nearly all above mentioned parameters are OEM or vehicle specific: update rate, - size of rolling counters, status indications, lifecycle of ECU, gateway, vehicle bus, ... - The status bits in enum EWheelStatusBits attempt to provide an appropriate abstraction for the - relevant vehicle specific status information. - **> - enumeration EWheelStatusBits{ - <** @description: There has been a gap in data collection, - i.e. an unknown number of wheel revolutions has been lost. - The reason for such a gap can be for example - - wheel tick data on the vehicle bus explicitly tagged as invalid - - interrupted reception of vehicle bus messages. - This flag will only be set if the detected gap may affect the application. - **> - WHEEL_STATUS_GAP = 1 //0x00000001 - <** @description: This is the first wheel data of a bus or ignition lifecycle, - i.e. the wheel tick difference calculation may be less reliable. - **> - WHEEL_STATUS_INIT = 2 //0x00000002 - } - - <** @description: - TWheelData::validityBits provides information which fields in TWheelData contain valid measurement data. - It is a or'ed bitmask of the EWheelValidityBits values. - Note: The assignment of the fields to the wheels of the vehicle is provided by the function snsWheelGetConfiguration(). - **> - enumeration EWheelValidityBits{ - <** @description: Validity bit for field TWheelData::data[0]. - **> - WHEEL0_VALID = 1 //0x00000001 - <** @description: Validity bit for field TWheelData::data[1]. - **> - WHEEL1_VALID = 2 //0x00000002 - <** @description: Validity bit for field TWheelData::data[2]. - **> - WHEEL2_VALID = 4 //0x00000004 - <** @description: Validity bit for field TWheelData::data[3]. - **> - WHEEL3_VALID = 8 //0x00000008 - <** @description: Validity bit for field TWheelData::data[4]. - **> - WHEEL4_VALID = 16 //0x00000010 - <** @description: Validity bit for field TWheelData::data[5]. - **> - WHEEL5_VALID = 32 //0x00000020 - <** @description: Validity bit for field TWheelData::data[6]. - **> - WHEEL6_VALID = 64 //0x00000040 - <** @description: Validity bit for field TWheelData::data[7]. - **> - WHEEL7_VALID = 128 //0x00000080 - <** @description: Validity bit for field TWheelData::measurementInterval. - **> - WHEEL_MEASINT_VALID = 256 //0x00000100 - } - - <** @description: - Wheel rotation data information for multiple wheels. - Container with timestamp as used by callback and get function. - Wheel rotation data is provided for up to 8 wheels. - The assignment of the fields data[0] ... data[7] - to the wheels of the vehicle, the measurement unit and additional configuration parameters - is provided as static configuration by the function snsWheelGetConfiguration(). - The index used for an individual wheel in the data[] array is the same as in the TWheelConfigurationArray. - **> - struct TWheelData{ - <** @description: Timestamp of the acquisition of this wheel tick signal [ms]. - All sensor/GNSS timestamps must be based on the same time source. - **> - UInt64 timestamp - <** @description: Wheel rotation data for the wheel identified by TWheelConfiguration::wheel[i] - in measurement unit identified by TWheelConfiguration::wheelUnit. - **> - Float[] data - <** @description: Bit mask providing additional status information. - [bitwise or'ed ref EWheelStatusBits values]. - **> - UInt32 statusBits - <** @description: Measurement interval over which the wheel data have been acquired. - Unit: micro-seconds [us]. - This may slightly differ from the timestamp difference, - e.g. in case of transmission jitter before timestamping. - Providing the measurement interval allows thus - - a more accurate integration of wheel data measurements. - - correct usage of the first sample - - adding consistency checks - **> - UInt32 measurementInterval - <** @description: Bit mask indicating the validity of each corresponding value. - [bitwise or'ed ref EWheelValidityBits values]. - Must be checked before usage. - **> - UInt32 validityBits - } - - <** @description: - Initialization of the wheel sensor service. - Must be called before using the wheel sensor service to set up the service. - return: True if initialization has been successful. - Note: In case the initialization has not been successful during system startup, a later retry may be successful. - **> - method init { - out { - <** @description: initialized = Is true if initialization has been successfull **> - Boolean initialized - } - } - - <** @description: - Destroy the wheel sensor service. - Must be called after using the wheel sensor service to shut down the service. - return: True if shutdown has been successful. - Note: In case the shutdown has not been successful, a retry does not make sense. - The return value is intended primarily for diagnostics. - **> - method destroy { - out { - <** @description: destroyed = Is true if shutdown has been successfull. **> - Boolean destroyed - } - } - - <** @description: getMetaData = get the meta information about sensor service. - The meta data of a sensor service provides information about it's name, version, type, subtype, sampling frequency etc. - **> - method getMetaData { - out { - TSensorMetaData data - <** @description: available = Is true if meta data is available **> - Boolean available - } - } - - <** @description: WheelData = get the wheel rotation data at a specific point in time. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - Note: Wheel rotation data typically changes while the vehicle is moving. - Therefore for most applications it is better to register for wheel rotation data updates. - **> - method getWheelData { - out { - TWheelData wheelData - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - <** @description: getWheelDataList = get a list of wheel rotation data. - may return buffered data (numElements >1) for different reasons - for (large) portions of data buffered at startup - for data buffered during regular operation e.g. for performance optimization (reduction of callback invocation frequency) - If the array contains (numElements >1), the elements will be ordered with rising timestamps - All wheel data belonging to the same timestamp will be provided in the same structure, - wheelData pointer to an array of TWheelData with size numElements - **> - method getWheelDataList { - out { - TWheelData[] wheelData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - <** @description: notifyWheelDataChanged - The signal will be emitted when new wheel rotation data is available. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - broadcast notifyWheelDataChanged selective { - out { - TWheelData[] wheelData - <** @description: numElements = allowed range: >=1. If numElements >1, buffered data are provided.**> - UInt16 numElements - } - } - - <** @description: getStatus = get the wheel sensor status at a specific point in time. **> - method getStatus { - out { - TSensorStatus status - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - <** @description: notifyStatusChanged - The signal will be emitted when new wheel sensor status data is available. - **> - broadcast notifyStatusChanged selective { - out { - TSensorStatus status - } - } - -} - diff --git a/sensors-service/api/franca/WheelConfiguration.fidl b/sensors-service/api/franca/WheelConfiguration.fidl deleted file mode 100644 index e2139d4..0000000 --- a/sensors-service/api/franca/WheelConfiguration.fidl +++ /dev/null @@ -1,191 +0,0 @@ -/* SPDX-License-Identifier: MPL-2.0 - Component Name: SensorsService - Compliance Level: Abstract Component - Copyright (C) 2018, BMW Car IT GmbH, Continental Automotive GmbH, Groupe PSA, XS Embedded GmbH - License: - This Source Code Form is subject to the terms of the - Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - this file, You can obtain one at http://mozilla.org/MPL/2.0/. -*/ - -package org.genivi.SensorsService - -import org.genivi.SensorsService.SensorsServiceTypes.* from "SensorsServiceTypes.fidl" - -<** @description : WheelConfiguration = This interface offers functionalities to retrieve the configuration of the Wheel sensor interface of the vehicle **> -interface WheelConfiguration { - version { - major 5 - minor 0 - } - - <** @description: - Defines the measurement unit in which the wheel rotation data is provided. - The wheel rotation direction is given by the sign of the wheel rotation value: - Positive values indicate forward driving. - Negative values indicate backward driving. - **> - enumeration EWheelUnit{ - <** @description: Wheel does not provide any data. - **> - WHEEL_UNIT_NONE = 0 - <** @description: Wheel rotation data is provided as number of wheel ticks accumulated within measurement interval. - Note 1: Therefore, if the wheel ticks on the vehicle bus are represented as rolling counters, - this is the difference between two subsequent rolling counter values - taking the vehicle specific roll-over boundary into account. - Note 2: It is safe to store integer values such as for wheel ticks - without precision loss in Float variables for values up to 2^23. - **> - WHEEL_UNIT_TICKS = 1 - <** @description: Wheel rotation data is provided as speed in [m/s]. - **> - WHEEL_UNIT_SPEED = 2 - <** @description: Wheel rotation data is provided as angular speed in [1/s] rotation per seconds. - **> - WHEEL_UNIT_ANGULAR_SPEED = 3 - } - - <** @description: - Wheel configuration status bits - **> - enumeration EWheelConfigStatusBits{ - <** @description: The wheel is driven by the powertrain. - It may thus be affected by additional wheel slip. - **> - WHEEL_CONFIG_DRIVEN = 1 //0x00000001 - <** @description: The wheel may be turned by the steering. - This is typically the case only for wheels on the front axle. - But for some vehicles also wheels on other axles are permanently or temporarily steered. - **> - WHEEL_CONFIG_STEERED = 2 //0x00000002 - <** @description: The differential lock for this wheel is activated. - **> - WHEEL_CONFIG_DIFF_LOCK = 4 //0x00000004 - } - - <** @description: - TWheelConfiguration::validityBits provides information about the currently - valid signals of the wheel configuration data. - It is a or'ed bitmask of the EWheelConfigValidityBits values. - **> - enumeration EWheelConfigValidityBits{ - <** @description: Validity bit for field TWheelConfiguration::wheelticksPerRevolution. - **> - WHEEL_CONFIG_TICKS_PER_REV_VALID = 1 //0x00000001 - <** @description: Validity bit for field TWheelConfiguration::tireRollingCircumference. - **> - WHEEL_CONFIG_TIRE_CIRC_VALID = 2 //0x00000002 - <** @description: Validity bit for field TWheelConfiguration::dist2RefPointX. - **> - WHEEL_CONFIG_DISTX_VALID = 4 //0x00000004 - <** @description: Validity bit for field TWheelConfiguration::dist2RefPointY. - **> - WHEEL_CONFIG_DISTY_VALID = 8 //0x00000008 - <** @description: Validity bit for field TWheelConfiguration::dist2RefPointZ. - **> - WHEEL_CONFIG_DISTZ_VALID = 16 //0x00000010 - <** @description: Validity bit for field TWheelConfiguration::EWheelConfigStatusBits::WHEEL_CONFIG_DRIVEN. - **> - WHEEL_CONFIG_DRIVEN_VALID = 32 //0x00000020 - <** @description: Validity bit for field TWheelConfiguration::EWheelConfigStatusBits::WHEEL_CONFIG_STEERED. - **> - WHEEL_CONFIG_STEERED_VALID = 64 //0x00000040 - <** @description: Validity bit for field TWheelConfiguration::EWheelConfigStatusBits::WHEEL_CONFIG_DIFF_LOCK. - **> - WHEEL_CONFIG_DIFF_LOCK_VALID = 128 //0x00000080 - } - - <** @description: - Configuration data for an individual wheel. - Most configuration parameters are static for a given wheel. - The status bits WHEEL_CONFIG_DRIVEN, WHEEL_CONFIG_STEERED, WHEEL_CONFIG_DIFF_LOCK - are considered as dynamic configuration data. - I.e. those status bits may change dynamically during runtime. - The vehicle axis system as defined in ISO 8855:2011(E). - In this system, the axes (Xv, Yv, Zv) are oriented as follows - - Xv is in the horizontal plane, pointing forwards - - Yv is in the horizontal plane, pointing to the left - - Zv is perpendicular to the horizontal plane, pointing upwards - For an illustration, see https://collab.genivi.org/wiki/display/genivi/LBSSensorServiceRequirementsBorg#LBSSensorServiceRequirementsBorg-ReferenceSystem - **> - struct TWheelConfiguration{ - <** @description: [Static] Measurement unit in which the wheel rotation data is provided. - WHEEL_UNIT_NONE, if no wheel rotation data is provided (and thus the rest of the structure can be ignored. - **> - EWheelUnit wheelUnit - <** @description: [Static] Identification of the axle on which the wheel is mounted - Axles are numbered consecutively from front to rear. - 0: unknown/unspecified - 1: front axle - 2: 2nd axle (rear axle on a typical 2-axle vehicle) - 3: 3rd axle - ... - **> - UInt8 axleIndex - <** @description: [Static] Identification of the location of the wheel on the axle - Wheels are numbered consecutively from left to right - 0: unknown/unspecified - 1: left-most wheel (also used when there is only one wheel per axle, e.g. for a trike) - 2: right wheel #1 (right wheel on a typical passenger car with 2 wheels per axle) - 3: right wheel #2 - ... - **> - UInt8 wheelIndex - <** @description: [Static] Number of ticks for a single revolution of one wheel. - Typically only available when wheelUnit is WHEEL_UNIT_TICKS. - **> - UInt16 wheelticksPerRevolution - <** @description: [Static] Distance travelled on the ground - per a single revolution of the wheel. Unit: [m]. - **> - Float tireRollingCircumference - <** @description: [Static] Distance of the wheel center from - the vehicle reference point (x-coordinate) [m]. - **> - Float dist2RefPointX - <** @description: [Static] Distance of the wheel center from - the vehicle reference point (y-coordinate) [m]. - **> - Float dist2RefPointY - <** @description: [Static] Distance of the wheel center from - the vehicle reference point (z-coordinate) [m]. - **> - Float dist2RefPointZ - <** @description: Bit mask providing additional status information. - [bitwise or'ed ref EWheelConfigStatusBits values]. - **> - UInt32 statusBits - <** @description: Bit mask indicating the validity of each corresponding value. - [bitwise or'ed ref EWheelConfigValidityBits values]. - Must be checked before usage. - Note: wheelUnit, axleIndex and wheelIndex must always be valid. - Therefore no dedicated validityBits are required. - **> - UInt32 validityBits - } - - <** @description: - Set of configuration data for all wheels of the vehicle. - The index of configuration data for an individual wheel in the array is fixed during the runtime of the system. - Unused fields, i.e. those for which wheelUnit is WHEEL_UNIT_NONE will be at the tail of the array. - **> - array TWheelConfigurationArray of TWheelConfiguration - - <** @description: getWheelConfiguration = get the static configuration information about the wheel sensors. - Note: as some parts of the wheel configuration may change during runtime it is recommended to register for configuration updates. - **> - method getWheelConfiguration { - out { - TWheelConfigurationArray config - <** @description: available = Is true if data can be provided and false otherwise, e.g. missing initialization **> - Boolean available - } - } - <** @description: notifyWheelConfigurationChanged - The signal will be emitted when an updated wheel configuration is available. - All valid flags are updated. The data is only guaranteed to be updated when the valid flags are true. - **> - broadcast notifyWheelConfigurationChanged selective { - } - -} |