summaryrefslogtreecommitdiff
path: root/sensors-service/api
diff options
context:
space:
mode:
authorasanoaozora <fifitaneki@hotmail.com>2018-04-24 16:53:51 +0200
committerasanoaozora <fifitaneki@hotmail.com>2018-04-24 16:53:51 +0200
commitb91cad74053f066a3a6289ac8a91d64ed76326c1 (patch)
tree19fdc8c2966957f9a96eb9edbba8fbec356f9d79 /sensors-service/api
parentb2649d35df7501fe426218a8eca931c2a81c8ad4 (diff)
downloadpositioning-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.fidl204
-rw-r--r--sensors-service/api/franca/AccelerationConfiguration.fidl150
-rw-r--r--sensors-service/api/franca/Gyroscope.fidl199
-rw-r--r--sensors-service/api/franca/GyroscopeConfiguration.fidl151
-rw-r--r--sensors-service/api/franca/MetaData.fidl32
-rw-r--r--sensors-service/api/franca/Odometer.fidl141
-rw-r--r--sensors-service/api/franca/ReverseGear.fidl135
-rw-r--r--sensors-service/api/franca/SensorsServiceTypes.fidl94
-rw-r--r--sensors-service/api/franca/VehicleSpeed.fidl147
-rw-r--r--sensors-service/api/franca/Wheel.fidl272
-rw-r--r--sensors-service/api/franca/WheelConfiguration.fidl191
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 {
- }
-
-}