uavcan escs: Modified esc_status reporting to have _rotor_count published.

Signed-off-by: Claudio Micheli <claudio@auterion.com>
This commit is contained in:
Claudio Micheli
2019-08-09 09:41:17 +02:00
committed by Beat Küng
parent 187a025dfe
commit 1e04d718f6
7 changed files with 44 additions and 5 deletions
+6
View File
@@ -254,6 +254,8 @@ public:
*/
virtual void set_airmode(Airmode airmode) {};
virtual unsigned get_multirotor_count() {return 0;}
protected:
/** client-supplied callback used when fetching control values */
ControlCallback _control_cb;
@@ -450,6 +452,8 @@ public:
void set_airmode(Airmode airmode) override;
unsigned get_multirotor_count() override;
private:
Mixer *_first; /**< linked list of mixers */
@@ -715,6 +719,8 @@ public:
void set_airmode(Airmode airmode) override;
unsigned get_multirotor_count() override {return _rotor_count;}
union saturation_status {
struct {
uint16_t valid : 1; // 0 - true when the saturation status is used
+19
View File
@@ -198,6 +198,25 @@ MixerGroup::set_airmode(Airmode airmode)
}
}
unsigned
MixerGroup::get_multirotor_count()
{
Mixer *mixer = _first;
unsigned rotor_count = 0;
while (mixer != nullptr) {
rotor_count = mixer->get_multirotor_count();
if (rotor_count > 0) {
break;
} else { mixer = mixer -> _next;}
}
return rotor_count;
}
uint16_t
MixerGroup::get_saturation_status()
{