ekf2: add command line option to manually select instance

This commit is contained in:
Daniel Agar
2021-06-07 08:47:17 -04:00
parent 66dbc1e25f
commit 2ccd86102b
3 changed files with 96 additions and 23 deletions
+9
View File
@@ -73,17 +73,23 @@ public:
void PrintStatus();
void RequestInstance(uint8_t instance) { _request_instance.store(instance); }
private:
static constexpr uint8_t INVALID_INSTANCE{UINT8_MAX};
static constexpr uint64_t FILTER_UPDATE_PERIOD{10_ms};
void Run() override;
void PrintInstanceChange(const uint8_t old_instance, uint8_t new_instance);
void PublishEstimatorSelectorStatus();
void PublishVehicleAttitude();
void PublishVehicleLocalPosition();
void PublishVehicleGlobalPosition();
void PublishVehicleOdometry();
void PublishWindEstimate();
bool SelectInstance(uint8_t instance);
// Update the error scores for all available instances
@@ -126,6 +132,8 @@ private:
bool filter_fault{false};
bool timeout{false};
uint8_t healthy_count{0};
const uint8_t instance;
};
@@ -168,6 +176,7 @@ private:
uint8_t _available_instances{0};
uint8_t _selected_instance{INVALID_INSTANCE};
px4::atomic<uint8_t> _request_instance{INVALID_INSTANCE};
uint32_t _instance_changed_count{0};
hrt_abstime _last_instance_change{0};