Line data Source code
1 : /* 2 : This program is free software: you can redistribute it and/or modify 3 : it under the terms of the GNU General Public License as published by 4 : the Free Software Foundation, either version 3 of the License, or 5 : (at your option) any later version. 6 : 7 : This program is distributed in the hope that it will be useful, 8 : but WITHOUT ANY WARRANTY; without even the implied warranty of 9 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 : GNU General Public License for more details. 11 : 12 : You should have received a copy of the GNU General Public License 13 : along with this program. If not, see <http://www.gnu.org/licenses/>. 14 : */ 15 : 16 : #include "AP_RPM_config.h" 17 : 18 : #if AP_RPM_HARMONICNOTCH_ENABLED 19 : 20 : #include "RPM_HarmonicNotch.h" 21 : 22 : #include <AP_HAL/AP_HAL.h> 23 : #include <AP_InertialSensor/AP_InertialSensor.h> 24 : 25 0 : void AP_RPM_HarmonicNotch::update(void) 26 : { 27 0 : const AP_InertialSensor& ins = AP::ins(); 28 0 : for (const auto ¬ch : ins.harmonic_notches) { 29 0 : if (notch.params.enabled() && 30 0 : notch.params.tracking_mode() != HarmonicNotchDynamicMode::Fixed) { 31 0 : state.rate_rpm = notch.calculated_notch_freq_hz[0] * 60; 32 0 : state.rate_rpm *= ap_rpm._params[state.instance].scaling; 33 0 : state.signal_quality = 0.5f; 34 0 : state.last_reading_ms = AP_HAL::millis(); 35 : } 36 : } 37 0 : } 38 : 39 : #endif // AP_RPM_HARMONICNOTCH_ENABLED