Peter Barker
084b0aea24
AP_Compass: make compass.mag_cal_fixed_yaw return boolean
...
this method could be used from a transmitter without GCS enabled, for example
2024-02-06 11:11:27 +11:00
Peter Barker
ecc7188d97
AP_Compass: rename COMPASS_TYPEMASK to COMPASS_DISBLMSK
...
this is a very confusingly named parameter. I've seen several instances of people treating this as an enable mask rather than a disable mask
2024-01-23 11:54:49 +11:00
Jonathan Loong
0db1719c8f
AP_Compass: Add in QMC5883P Driver
2023-11-15 10:53:38 +11:00
Andrew Tridgell
36de6613fb
AP_Compass: split out probing code into i2c+spi and DroneCAN
...
this is a NFC to make the PR clearer
2023-10-31 10:14:42 +11:00
Andrew Tridgell
9fc9238c53
AP_Compass: prevent saving of device IDs when not calibrated
...
this fixes an issue with the following sequence:
- new board (or board with FORMAT_VERSION reset) starts up with only internal compasses
- internal compasses are detected and devids saved
- an external compass is added and the board is rebooted
- the external compass will not be the first compass
- user then calibrates and flies, but has internal as primary
this can lead to a very bad experience for new users. At least one
vehicle has crashed due to this sequence.
The fix is to not save device IDs during the Compass::init() if we
have never been calibrated. This means that when an external compass
is added it will come up as the first compass.
This also removes the saving of the extra device ID. It was never
intended that these be saved (there is a comment to that effect in the
code), but actually they were saved.
2023-10-31 10:14:42 +11:00
Peter Barker
acf437b258
AP_Compass: correct compilation with COMPASS_CAL_ENABLED off
2023-09-19 16:54:59 +10:00
Peter Barker
d50c429355
AP_Compass: handle mag cal as both COMMAND_LONG and COMMAND_INT
2023-08-08 10:06:13 +10:00
Iampete1
262b11f0c1
AP_Compass: stop auto replacing missing CAN by default, add option to re-enable
2023-06-27 09:24:41 +10:00
Hayden
fa800e23e2
AP_Compass: Move health to cpp and add range check
...
Moved the health check to the cpp file and added checking of max instances
2023-05-24 12:39:47 +10:00
Andrew Tridgell
dc40e1e7c3
AP_Compass: change UAVCAN_ENABLED to DRONECAN_ENABLED
2023-04-11 10:31:31 +10:00
bugobliterator
7112d156ed
AP_Compass: replace libuavcan with libcanard based driver
2023-03-29 17:16:39 +11:00
Peter Barker
4755f76126
AP_Compass: specify compass feature enables for periph in chibios_hwdef.py
2023-03-12 09:35:35 +11:00
Peter Barker
1889d3dea5
AP_Compass: add and use AP_COMPASS_MMC5XX3_ENABLED
2023-02-22 19:40:13 +11:00
Peter Barker
69bc24bc16
AP_Compass: add and use AP_COMPASS_RM3100_ENABLED
2023-02-22 19:40:13 +11:00
Peter Barker
2c93b7809c
AP_Compass: use AP_COMPASS_EXTERNALAHRS_ENABLED more
...
Also rename driver name from serial to externalahrs for consistency
2023-02-22 19:40:13 +11:00
Peter Barker
aac6228f58
AP_Compass: add and use AP_COMPASS_MAG3110_ENABLED
2023-02-22 19:40:13 +11:00
Peter Barker
89a9636c46
AP_Compass: add and use AP_COMPASS_QMC5883L_ENABLED
2023-02-22 19:40:13 +11:00
Peter Barker
b6e2586f50
AP_Compass: add and use AP_COMPASS_MMC3416
2023-02-22 19:40:13 +11:00
Peter Barker
ee6b44113d
AP_Compass: add and use AP_COMPASS_ICM20948_ENABLED
2023-02-22 19:40:13 +11:00
Peter Barker
ad9521c1c4
AP_Compass: add and use AP_COMPASS_AK09916_ENABLED
2023-02-22 19:40:13 +11:00
Peter Barker
430f19222a
AP_Compass: don't define driver backend type if it is not compiled in
...
Catches places where code isn't disabled properly
2023-02-22 19:40:13 +11:00
Peter Barker
7d244e3451
AP_Compass: add and use AP_COMPASS_LIS3MDL_ENABLED
2023-02-17 23:05:48 +11:00
Peter Barker
fe9461242e
AP_Compass: add and use AP_COMPASS_LSM9DS1_ENABLED
2023-02-15 20:03:55 +11:00
Peter Barker
b26d771c9f
AP_Compass: add and use AP_COMPASS_IST8310_ENABLED
2023-02-14 12:23:55 +11:00
Peter Barker
feb809fbb7
AP_Compass: add and use AP_COMPASS_BMM150_ENABLED
2023-02-09 17:52:52 +11:00
Peter Barker
22feb3c08a
AP_Compass: add and use AP_COMPASS_AK8963_ENABLED
2023-02-07 10:21:06 +11:00
Peter Barker
ff99ff34c7
AP_Compass: add and use AP_COMPASS_HMC5843_ENABLED
2023-02-01 18:47:37 +11:00
Peter Barker
669ce03de3
AP_Compass: make DRIVER_IST8308 an invalid symbol if not compiled in
2023-01-31 11:08:28 +11:00
Peter Barker
cbd1264f90
AP_Compass: add and use AP_COMPASS_LSM303D_ENABLED
2023-01-31 11:08:28 +11:00
Peter Barker
3adbaddab0
AP_Compass: regularise compass defines
...
start to make compass backends look like backends from our other libraries
2022-11-15 16:44:38 +11:00
Peter Barker
aef745c693
AP_Compass: fix compilation when removing diagonals state
2022-11-09 21:14:04 +11:00
Peter Barker
d6c5a0ab2b
AP_Compass: correct compilation when COMPASS_MAX_INSTANCE>1 and no diagonals
2022-10-06 08:21:03 +11:00
jackhong12
4a4f361a17
all: use CLASS_NO_COPY() macro
2022-10-04 11:23:04 +11:00
Andrew Tridgell
0b9769e658
AP_Compass: removed diagonals and offdiagonals on AP_Periph
2022-09-30 21:25:36 +10:00
Peter Barker
57f8b7c2a8
AP_Compass: split AP_HAL_SITL and AP_SIM_ENABLED
2022-03-17 14:39:55 +11:00
Iampete1
209ad965be
AP_Compass: remove custom rotations
2022-03-02 18:16:42 +11:00
Peter Barker
ed608d37f6
AP_Compass: add and use AP_SIM_COMPASS_ENABLED
2022-01-17 15:24:02 +11:00
Andrew Tridgell
8eb40bafc5
AP_Compass: revert compass parameter changes
2021-12-04 16:51:53 +11:00
Iampete1
6ba87dfe9a
AP_Compass: add param conversion
2021-11-30 08:14:43 +09:00
Iampete1
071ff39ff8
AP_Compass: move instance params to shared table
2021-11-30 08:14:43 +09:00
Andrew Tridgell
2b19b8a988
AP_Compass: switched to GSF based compass learning
...
this makes inflight compass learning faster, more accurate and much
simpler
2021-11-01 09:00:27 +11:00
Peter Barker
62f6a5b033
AP_Compass: fail calibration unless at least 1 compass to cal
2021-08-24 10:18:38 +10:00
Peter Barker
944b82a7be
AP_Compass: make is_calibrating const
2021-07-30 17:37:08 +10:00
Peter Barker
c351150a46
AP_Compass: use AP::compass().available in place of enabled()
2021-07-30 12:19:42 +10:00
Peter Barker
658c978c9d
AP_Compass: add and use compass.available()
...
Covers both being enabled and initialised
2021-07-30 12:19:42 +10:00
Peter Barker
8bbed968de
AP_Compass: remove unused variable
2021-07-30 12:19:42 +10:00
Siddharth Purohit
7cbb3d8a3f
AP_Compass: allow compass cal option for AP_Periph if defined
2021-07-02 08:50:16 +10:00
Peter Barker
9791fdeb11
AP_Compass: remove unused setup_earth_field
2021-06-15 09:47:31 +10:00
Peter Barker
a9621ed802
AP_Compass: remove HIL support
2021-06-15 09:47:31 +10:00
Siddharth Purohit
8590bfea63
AP_Compass: use first available compass in priority list
2021-06-02 17:10:19 +10:00