mirror of https://github.com/ArduPilot/ardupilot
AP_RPM: enable AP_RPM to set ESC Telemetry
This commit is contained in:
parent
ee07d6bec8
commit
aefc2a8492
|
@ -23,6 +23,7 @@
|
||||||
#include "RPM_Generator.h"
|
#include "RPM_Generator.h"
|
||||||
#include "RPM_HarmonicNotch.h"
|
#include "RPM_HarmonicNotch.h"
|
||||||
#include "RPM_ESC_Telem.h"
|
#include "RPM_ESC_Telem.h"
|
||||||
|
#include "AP_ESC_Telem/AP_ESC_Telem.h"
|
||||||
|
|
||||||
#include <AP_Logger/AP_Logger.h>
|
#include <AP_Logger/AP_Logger.h>
|
||||||
|
|
||||||
|
@ -199,6 +200,19 @@ void AP_RPM::update(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
drivers[i]->update();
|
drivers[i]->update();
|
||||||
|
|
||||||
|
#if HAL_WITH_ESC_TELEM
|
||||||
|
// Check if we need to write to esc_telem(). Note:
|
||||||
|
// RPM_TYPE_ESC_TELEM = read ESC_TELEM and store it in AP_RPM
|
||||||
|
// RPM_TYPE_EverythingElse = write to ESC_TELEM with data generated from AP_RPM
|
||||||
|
if (_params[i].type != RPM_TYPE_ESC_TELEM && _params[i].esc_mask > 0 && healthy(i)) {
|
||||||
|
for (uint32_t esc=0; esc<ESC_TELEM_MAX_ESCS; esc++) {
|
||||||
|
if (_params[i].esc_mask & (1U<<esc)) {
|
||||||
|
AP::esc_telem().update_rpm(esc, state[i].rate_rpm, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,8 +62,8 @@ const AP_Param::GroupInfo AP_RPM_Params::var_info[] = {
|
||||||
AP_GROUPINFO("PIN", 6, AP_RPM_Params, pin, -1),
|
AP_GROUPINFO("PIN", 6, AP_RPM_Params, pin, -1),
|
||||||
|
|
||||||
// @Param: ESC_MASK
|
// @Param: ESC_MASK
|
||||||
// @DisplayName: Bitmask of ESC telemetry channels to average
|
// @DisplayName: Bitmask of ESC telemetry channels
|
||||||
// @Description: Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged
|
// @Description: Mask of channels to use with ESC rpm telemetry. When TYPE = 5, this will fetch and average the RPM telemetry from all the selected ESC telemetry channels. For all other TYPE values, the ESC telemetry will set the RPM on the selected channel(s).
|
||||||
// @Bitmask: 0:Channel1,1:Channel2,2:Channel3,3:Channel4,4:Channel5,5:Channel6,6:Channel7,7:Channel8,8:Channel9,9:Channel10,10:Channel11,11:Channel12,12:Channel13,13:Channel14,14:Channel15,15:Channel16
|
// @Bitmask: 0:Channel1,1:Channel2,2:Channel3,3:Channel4,4:Channel5,5:Channel6,6:Channel7,7:Channel8,8:Channel9,9:Channel10,10:Channel11,11:Channel12,12:Channel13,13:Channel14,14:Channel15,15:Channel16
|
||||||
// @User: Advanced
|
// @User: Advanced
|
||||||
AP_GROUPINFO("ESC_MASK", 7, AP_RPM_Params, esc_mask, 0),
|
AP_GROUPINFO("ESC_MASK", 7, AP_RPM_Params, esc_mask, 0),
|
||||||
|
|
Loading…
Reference in New Issue