Skip to content

Commit 584309c

Browse files
antrikshsrivastavaAntriksh Srivastava
andauthored
Add support for murata scha634 to imu aux message (#1286)
* Add support for murata scha634 to imu aux message * Change Murata IMU type from 2 to 4 --------- Co-authored-by: Antriksh Srivastava <antriksh.srivastava@swift-nav.com>
1 parent fbfb79d commit 584309c

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

c/include/libsbp/imu_macros.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676

7777
#define SBP_IMU_AUX_IMU_TYPE_BOSCH_BMI160 (0)
7878
#define SBP_IMU_AUX_IMU_TYPE_ST_MICROELECTRONICS_ASM330LLH (1)
79+
#define SBP_IMU_AUX_IMU_TYPE_MURATA_SCHA634_D03 (4)
7980
#define SBP_IMU_AUX_GYROSCOPE_RANGE_MASK (0xfu)
8081
#define SBP_IMU_AUX_GYROSCOPE_RANGE_SHIFT (4u)
8182
#define SBP_IMU_AUX_GYROSCOPE_RANGE_GET(flags) \
@@ -99,6 +100,8 @@
99100
#define SBP_IMU_AUX_GYROSCOPE_RANGE_250_DEG_S (3)
100101
#define SBP_IMU_AUX_GYROSCOPE_RANGE__125_DEG__S (4)
101102
#define SBP_IMU_AUX_GYROSCOPE_RANGE_125_DEG_S (4)
103+
#define SBP_IMU_AUX_GYROSCOPE_RANGE__300_DEG__S (5)
104+
#define SBP_IMU_AUX_GYROSCOPE_RANGE_300_DEG_S (5)
102105
#define SBP_IMU_AUX_ACCELEROMETER_RANGE_MASK (0xfu)
103106
#define SBP_IMU_AUX_ACCELEROMETER_RANGE_SHIFT (0u)
104107
#define SBP_IMU_AUX_ACCELEROMETER_RANGE_GET(flags) \
@@ -120,6 +123,8 @@
120123
#define SBP_IMU_AUX_ACCELEROMETER_RANGE_8G (2)
121124
#define SBP_IMU_AUX_ACCELEROMETER_RANGE__16G (3)
122125
#define SBP_IMU_AUX_ACCELEROMETER_RANGE_16G (3)
126+
#define SBP_IMU_AUX_ACCELEROMETER_RANGE__6G (4)
127+
#define SBP_IMU_AUX_ACCELEROMETER_RANGE_6G (4)
123128
/**
124129
* Encoded length of sbp_msg_imu_aux_t (V4 API) and
125130
* msg_imu_aux_t (legacy API)

rust/sbp/src/messages/imu.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,9 @@ pub mod msg_imu_aux {
161161

162162
/// ST Microelectronics ASM330LLH
163163
StMicroelectronicsAsm330Llh = 1,
164+
165+
/// Murata SCHA634-D03
166+
MurataScha634D03 = 4,
164167
}
165168

166169
impl std::fmt::Display for ImuType {
@@ -170,6 +173,7 @@ pub mod msg_imu_aux {
170173
ImuType::StMicroelectronicsAsm330Llh => {
171174
f.write_str("ST Microelectronics ASM330LLH")
172175
}
176+
ImuType::MurataScha634D03 => f.write_str("Murata SCHA634-D03"),
173177
}
174178
}
175179
}
@@ -180,6 +184,7 @@ pub mod msg_imu_aux {
180184
match i {
181185
0 => Ok(ImuType::BoschBmi160),
182186
1 => Ok(ImuType::StMicroelectronicsAsm330Llh),
187+
4 => Ok(ImuType::MurataScha634D03),
183188
i => Err(i),
184189
}
185190
}
@@ -202,6 +207,9 @@ pub mod msg_imu_aux {
202207

203208
/// +/- 125 deg / s
204209
_125DegS = 4,
210+
211+
/// +/- 300 deg / s
212+
_300DegS = 5,
205213
}
206214

207215
impl std::fmt::Display for GyroscopeRange {
@@ -212,6 +220,7 @@ pub mod msg_imu_aux {
212220
GyroscopeRange::_500DegS => f.write_str("+/- 500 deg / s"),
213221
GyroscopeRange::_250DegS => f.write_str("+/- 250 deg / s"),
214222
GyroscopeRange::_125DegS => f.write_str("+/- 125 deg / s"),
223+
GyroscopeRange::_300DegS => f.write_str("+/- 300 deg / s"),
215224
}
216225
}
217226
}
@@ -225,6 +234,7 @@ pub mod msg_imu_aux {
225234
2 => Ok(GyroscopeRange::_500DegS),
226235
3 => Ok(GyroscopeRange::_250DegS),
227236
4 => Ok(GyroscopeRange::_125DegS),
237+
5 => Ok(GyroscopeRange::_300DegS),
228238
i => Err(i),
229239
}
230240
}
@@ -244,6 +254,9 @@ pub mod msg_imu_aux {
244254

245255
/// +/- 16g
246256
_16G = 3,
257+
258+
/// +/- 6g
259+
_6G = 4,
247260
}
248261

249262
impl std::fmt::Display for AccelerometerRange {
@@ -253,6 +266,7 @@ pub mod msg_imu_aux {
253266
AccelerometerRange::_4G => f.write_str("+/- 4g"),
254267
AccelerometerRange::_8G => f.write_str("+/- 8g"),
255268
AccelerometerRange::_16G => f.write_str("+/- 16g"),
269+
AccelerometerRange::_6G => f.write_str("+/- 6g"),
256270
}
257271
}
258272
}
@@ -265,6 +279,7 @@ pub mod msg_imu_aux {
265279
1 => Ok(AccelerometerRange::_4G),
266280
2 => Ok(AccelerometerRange::_8G),
267281
3 => Ok(AccelerometerRange::_16G),
282+
4 => Ok(AccelerometerRange::_6G),
268283
i => Err(i),
269284
}
270285
}

spec/yaml/swiftnav/sbp/imu.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ definitions:
8686
values:
8787
- 0: Bosch BMI160
8888
- 1: ST Microelectronics ASM330LLH
89+
- 4: Murata SCHA634-D03
8990
- temp:
9091
type: s16
9192
desc: Raw IMU temperature
@@ -101,10 +102,12 @@ definitions:
101102
- 2: +/- 500 deg / s
102103
- 3: +/- 250 deg / s
103104
- 4: +/- 125 deg / s
105+
- 5: +/- 300 deg / s
104106
- 0-3:
105107
desc: Accelerometer Range
106108
values:
107109
- 0: +/- 2g
108110
- 1: +/- 4g
109111
- 2: +/- 8g
110112
- 3: +/- 16g
113+
- 4: +/- 6g

0 commit comments

Comments
 (0)