mirror of
https://github.com/ArduPilot/ardupilot.git
synced 2026-10-06 19:00:27 +08:00
AP_Compass: initialise compass IDs saved in SITL
this ensures we don't get uncalibrates compasses in SITL
This commit is contained in:
@@ -132,6 +132,14 @@ void AP_Compass_Backend::set_dev_id(uint8_t instance, uint32_t dev_id)
|
||||
_compass._state[instance].dev_id.set_and_notify(dev_id);
|
||||
}
|
||||
|
||||
/*
|
||||
save dev_id, used by SITL
|
||||
*/
|
||||
void AP_Compass_Backend::save_dev_id(uint8_t instance)
|
||||
{
|
||||
_compass._state[instance].dev_id.save();
|
||||
}
|
||||
|
||||
/*
|
||||
set external for an instance
|
||||
*/
|
||||
|
||||
@@ -94,6 +94,9 @@ protected:
|
||||
// set dev_id for an instance
|
||||
void set_dev_id(uint8_t instance, uint32_t dev_id);
|
||||
|
||||
// save dev_id, used by SITL
|
||||
void save_dev_id(uint8_t instance);
|
||||
|
||||
// set external state for an instance
|
||||
void set_external(uint8_t instance, bool external);
|
||||
|
||||
|
||||
@@ -15,6 +15,9 @@ AP_Compass_SITL::AP_Compass_SITL(Compass &compass):
|
||||
for (uint8_t i=0; i<SITL_NUM_COMPASSES; i++) {
|
||||
_compass_instance[i] = register_compass();
|
||||
set_dev_id(_compass_instance[i], AP_HAL::Device::make_bus_id(AP_HAL::Device::BUS_TYPE_SITL, i, 0, DEVTYPE_SITL));
|
||||
|
||||
// save so the compass always comes up configured in SITL
|
||||
save_dev_id(_compass_instance[i]);
|
||||
}
|
||||
hal.scheduler->register_timer_process(FUNCTOR_BIND(this, &AP_Compass_SITL::_timer, void));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user