@@ -13,29 +13,35 @@ namespace Drv {
1313// Component construction and destruction
1414// ----------------------------------------------------------------------
1515
16- Lsm6dsoManager ::Lsm6dsoManager (const char * const compName) : Lsm6dsoManagerComponentBase(compName) {
17- dev = DEVICE_DT_GET_ONE (st_lsm6dso);
16+ Lsm6dsoManager ::Lsm6dsoManager (const char * const compName) : Lsm6dsoManagerComponentBase(compName) {}
17+
18+ Lsm6dsoManager ::~Lsm6dsoManager () {}
19+
20+ // ----------------------------------------------------------------------
21+ // Helper methods
22+ // ----------------------------------------------------------------------
23+
24+ void Lsm6dsoManager ::configure (const struct device * dev) {
25+ this ->m_dev = dev;
1826
1927 // Configure the sensor
2028 struct sensor_value odr = {.val1 = 12 , .val2 = 500000 }; // 12.5 Hz
2129
22- if (sensor_attr_set (dev , SENSOR_CHAN_ACCEL_XYZ, SENSOR_ATTR_SAMPLING_FREQUENCY, &odr) != 0 ) {
30+ if (sensor_attr_set (this -> m_dev , SENSOR_CHAN_ACCEL_XYZ, SENSOR_ATTR_SAMPLING_FREQUENCY, &odr) != 0 ) {
2331 this ->log_WARNING_HI_AccelerometerSamplingFrequencyNotConfigured ();
2432 }
2533
26- if (sensor_attr_set (dev , SENSOR_CHAN_GYRO_XYZ, SENSOR_ATTR_SAMPLING_FREQUENCY, &odr) != 0 ) {
34+ if (sensor_attr_set (this -> m_dev , SENSOR_CHAN_GYRO_XYZ, SENSOR_ATTR_SAMPLING_FREQUENCY, &odr) != 0 ) {
2735 this ->log_WARNING_HI_GyroscopeSamplingFrequencyNotConfigured ();
2836 }
2937}
3038
31- Lsm6dsoManager ::~Lsm6dsoManager () {}
32-
3339// ----------------------------------------------------------------------
3440// Handler implementations for typed input ports
3541// ----------------------------------------------------------------------
3642
3743Drv::Acceleration Lsm6dsoManager ::accelerationGet_handler (FwIndexType portNum) {
38- if (!device_is_ready (dev )) {
44+ if (!device_is_ready (this -> m_dev )) {
3945 this ->log_WARNING_HI_DeviceNotReady ();
4046 return Drv::Acceleration (0.0 , 0.0 , 0.0 );
4147 }
@@ -45,21 +51,21 @@ Drv::Acceleration Lsm6dsoManager ::accelerationGet_handler(FwIndexType portNum)
4551 struct sensor_value y;
4652 struct sensor_value z;
4753
48- sensor_sample_fetch_chan (dev , SENSOR_CHAN_ACCEL_XYZ);
54+ sensor_sample_fetch_chan (this -> m_dev , SENSOR_CHAN_ACCEL_XYZ);
4955
50- sensor_channel_get (dev , SENSOR_CHAN_ACCEL_X, &x);
51- sensor_channel_get (dev , SENSOR_CHAN_ACCEL_Y, &y);
52- sensor_channel_get (dev , SENSOR_CHAN_ACCEL_Z, &z);
56+ sensor_channel_get (this -> m_dev , SENSOR_CHAN_ACCEL_X, &x);
57+ sensor_channel_get (this -> m_dev , SENSOR_CHAN_ACCEL_Y, &y);
58+ sensor_channel_get (this -> m_dev , SENSOR_CHAN_ACCEL_Z, &z);
5359
5460 Drv::Acceleration acceleration =
55- Drv::Acceleration (Drv::sensor_value_to_f64 ( x), Drv::sensor_value_to_f64 ( y), Drv::sensor_value_to_f64 ( z));
61+ Drv::Acceleration (sensor_value_to_double (& x), sensor_value_to_double (& y), sensor_value_to_double (& z));
5662
5763 this ->tlmWrite_Acceleration (acceleration);
5864 return acceleration;
5965}
6066
6167Drv::AngularVelocity Lsm6dsoManager ::angularVelocityGet_handler (FwIndexType portNum) {
62- if (!device_is_ready (dev )) {
68+ if (!device_is_ready (this -> m_dev )) {
6369 this ->log_WARNING_HI_DeviceNotReady ();
6470 return Drv::AngularVelocity (0.0 , 0.0 , 0.0 );
6571 }
@@ -69,35 +75,35 @@ Drv::AngularVelocity Lsm6dsoManager ::angularVelocityGet_handler(FwIndexType por
6975 struct sensor_value y;
7076 struct sensor_value z;
7177
72- sensor_sample_fetch_chan (dev , SENSOR_CHAN_GYRO_XYZ);
78+ sensor_sample_fetch_chan (this -> m_dev , SENSOR_CHAN_GYRO_XYZ);
7379
74- sensor_channel_get (dev , SENSOR_CHAN_GYRO_X, &x);
75- sensor_channel_get (dev , SENSOR_CHAN_GYRO_Y, &y);
76- sensor_channel_get (dev , SENSOR_CHAN_GYRO_Z, &z);
80+ sensor_channel_get (this -> m_dev , SENSOR_CHAN_GYRO_X, &x);
81+ sensor_channel_get (this -> m_dev , SENSOR_CHAN_GYRO_Y, &y);
82+ sensor_channel_get (this -> m_dev , SENSOR_CHAN_GYRO_Z, &z);
7783
7884 Drv::AngularVelocity angular_velocity =
79- Drv::AngularVelocity (Drv::sensor_value_to_f64 ( x), Drv::sensor_value_to_f64 ( y), Drv::sensor_value_to_f64 ( z));
85+ Drv::AngularVelocity (sensor_value_to_double (& x), sensor_value_to_double (& y), sensor_value_to_double (& z));
8086
8187 this ->tlmWrite_AngularVelocity (angular_velocity);
8288 return angular_velocity;
8389}
8490
8591F64 Lsm6dsoManager ::temperatureGet_handler (FwIndexType portNum) {
86- if (!device_is_ready (dev )) {
92+ if (!device_is_ready (this -> m_dev )) {
8793 this ->log_WARNING_HI_DeviceNotReady ();
8894 return 0 ;
8995 }
9096 this ->log_WARNING_HI_DeviceNotReady_ThrottleClear ();
9197
9298 struct sensor_value temp;
9399
94- sensor_sample_fetch_chan (dev , SENSOR_CHAN_DIE_TEMP);
100+ sensor_sample_fetch_chan (this -> m_dev , SENSOR_CHAN_DIE_TEMP);
95101
96- sensor_channel_get (dev , SENSOR_CHAN_DIE_TEMP, &temp);
102+ sensor_channel_get (this -> m_dev , SENSOR_CHAN_DIE_TEMP, &temp);
97103
98- this ->tlmWrite_Temperature (Drv::sensor_value_to_f64 ( temp));
104+ this ->tlmWrite_Temperature (sensor_value_to_double (& temp));
99105
100- return Drv::sensor_value_to_f64 ( temp);
106+ return sensor_value_to_double (& temp);
101107}
102108
103109} // namespace Drv
0 commit comments