Thomas Watson
d86bab9c58
AP_Compass: optimize DroneCAN subscription process
...
* remove unnecessary nullptr check, these are always called from an
initialized AP_DroneCAN so if it's nullptr something has gone
horrifically wrong
* pass in driver index instead of repeatedly calling function to get it
* simplify error handling; knowing exactly which allocation failed is not
super helpful and one failing likely means subsequent ones will too,
as it can only fail due to being out of memory
2024-11-18 10:30:29 +11:00
Dr.-Ing. Amilcar do Carmo Lucas
6a59d3adae
AP_Compass: Also mark Z axis as calibrations, just like the XY
2024-11-05 09:25:59 +09:00
Peter Barker
a29dca996e
AP_Compass: re-order initialiser lines so -Werror=reorder will work
2024-09-24 22:50:28 +10:00
Peter Barker
3e1ad5dab6
AP_Compass: use memcmp to check whoami result code from HMC5843 device
...
Co-authored-by: muramura <ma2maru@gmail.com>
2024-09-24 11:52:47 +10:00
muramura
0020cf5fe8
AP_Compass: Add existing devices
2024-09-22 10:11:50 +10:00
cuav-chen2
89a4571c58
AP_Compass: Add in BMM350 Driver
2024-09-21 10:08:36 +10:00
Peter Barker
42b8ee78cf
AP_Compass: remove use of AP_AHRS from most headers
...
don't need to know the details, just that it is a class
2024-09-03 10:35:54 +10:00
Peter Barker
60c2e4278c
AP_Compass: avoid use of MAV_RESULT if mavlink bindings not used
2024-08-14 19:40:31 +10:00
Peter Barker
27a7a21805
AP_Compass: correct compilation when logging disabled
2024-08-12 18:28:07 +10:00
Peter Barker
fa4e90a3bb
AP_Compass: use GCS_SEND_TEXT rather than gcs().send_text
...
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Andrew Tridgell
991ea6326d
AP_Compass: cleanup warnings in printf calls
2024-07-11 09:34:29 +10:00
Peter Barker
4231275f50
AP_Compass: remove default clause from set_status switch
...
forces someone to consider what they need to do for any new state
2024-07-10 18:18:31 +10:00
Peter Barker
afd8d8255f
AP_Compass: use switch statement in failed() method
2024-07-10 18:18:31 +10:00
Willian Galvani
64e859ecc5
AP_Compass: warn user if fix_radius() is skipped
2024-07-09 10:13:34 +10:00
Willian Galvani
325d6f6c94
AP_Compass: use ahrs for location instead of GPS directly for calibration
2024-07-09 10:13:34 +10:00
Simon Hancock
43c604f1db
AP_Compass: Fix fewer multipliers than params on MAGH log message
2024-06-19 09:38:59 +10:00
Andrew Tridgell
0f08b47322
AP_Compass: use NEW_NOTHROW for new(std::nothrow)
2024-06-04 09:20:21 +10:00
Andrew Tridgell
5fd4e23fa9
AP_Compass: removed IST8310 overrun message
...
this is not useful and just causes concern to users. Any small bus
delay can trigger this. We have health monitoring at a higher level
2024-05-22 14:51:15 +10:00
Andrew Tridgell
68b58d5435
AP_Compass: workaround hardware bug in IST8310 whoami
...
the WAI (whoami) register is writeable. Not only is it writeable, but
the written value is persistent across a power cycle. You have to
remove power for about 30s for it to finally go back to the right
default value of 0x10
this makes using WAI as a test for finding a IST8310 problematic. The
best we can do is send a soft reset which will reset it to default for
us to then check
2024-05-01 09:24:54 +10:00
Andrew Tridgell
76343f5e6f
AP_Compass: log Hires magnetic field on DroneCAN
2024-03-16 20:10:35 +11:00
Patrick José Pereira
84a5a52351
AP_Compass: Use new default for reboot
...
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2024-03-12 21:13:41 +11:00
Peter Barker
093deed610
AP_Compass: add and use AP_CUSTOMROTATIONS_ENABLED
...
also add to build_options.py
2024-03-03 08:22:46 +11:00
Peter Barker
c36b57acba
AP_Compass: exclude cpp files if not AP_COMPASS_ENABLED
2024-02-27 11:02:48 +11:00
Peter Barker
dc74f97739
AP_Compass: move logger object up to AP_Vehicle
2024-02-13 10:54:29 +11:00
Peter Barker
0e67209790
AP_Compass: fixed-yaw requires the AP_AHRS library to exist
2024-02-10 11:47:10 +11:00
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
Peter Barker
cad4bd41e9
AP_Compass: make AHRS attitude member variables private
2024-01-14 12:47:47 +11:00
Peter Barker
eec43c204f
AP_Compass: cope with AP_INERTIAL_SENSOR being 0
2024-01-03 17:35:54 +11:00
Andrew Tridgell
80730d6c02
AP_Compass: use tesla conversion from AP_Math/definitions.h
2023-12-17 09:47:30 +11:00
Thomas Watson
b8d50b112a
AP_Compass: fix C++ One Definition Rule violations
...
Two structs with the same name must have exactly the same definition, no
matter where they occur in the program, otherwise the program is undefined.
Move each sample register struct definition into the associated class
definition so they are in a different namespace and no longer
identically named, thus fixing this issue.
2023-11-21 13:21:03 +11:00
Jonathan Loong
0db1719c8f
AP_Compass: Add in QMC5883P Driver
2023-11-15 10:53:38 +11:00
Andrew Tridgell
598e2b0762
AP_Compass: remove more exposed params for periph
...
these parameters are not useful on peripherals which use raw mag field
2023-11-08 18:34:41 +11:00
Andrew Tridgell
422d7cec6e
AP_Compass: probe DroneCAN compasses before I2C
...
it is highly likely that a user with a DroneCAN compass will want it
to be earlier in the dev list than i2c or spi compasses
2023-10-31 10:14:42 +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
Andrew Tridgell
aaeee2e7dc
AP_Compass: implement SIM_MAG_SAVE_IDS
2023-10-31 10:14:42 +11:00
Iampete1
83a31ac371
AP_Compass: add big comment explaining calculate_heading maths, add consts and use wrap_PI helper
2023-10-25 15:57:16 +01:00
Hayden
b237fd9fa4
AP_Compass: fix AK09916 hangup issue
2023-10-20 07:56:56 +11:00
Mykhailo Kuznietsov
633bb159bf
AP_Compass: Fix some typos
...
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
Peter Barker
9a054876ff
AP_Compass: use AP_GPS_ENABLED to exclude more code when GPS not compiled in
2023-09-27 16:38:15 +10:00
Peter Barker
eb05093f34
AP_Compass: compass calibration requires DCM
2023-09-27 08:00:54 +10:00
Peter Barker
acf437b258
AP_Compass: correct compilation with COMPASS_CAL_ENABLED off
2023-09-19 16:54:59 +10:00
Peter Barker
275a667d41
AP_Compass: allow more libraries to compile with no HAL_GCS_ENABLED
2023-09-05 22:23:51 +10:00
Andrew Tridgell
e6d43811ad
AP_Compass: fixes for macos CAN SITL build
2023-08-29 15:09:48 +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
Andrew Tridgell
e1fad5ee38
AP_Compass: allow override of IST8310 orientation
...
this allows for vendor GPS modules and internal compass which use a
different orientation
2023-08-06 09:23:45 +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
Peter Barker
3f4995068c
AP_Compass: add and use AP_COMPASS_ENABLED
2023-06-21 22:28:48 +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