Line data Source code
1 : /* 2 : * This file is free software: you can redistribute it and/or modify it 3 : * under the terms of the GNU General Public License as published by the 4 : * Free Software Foundation, either version 3 of the License, or 5 : * (at your option) any later version. 6 : * 7 : * This file is distributed in the hope that it will be useful, but 8 : * WITHOUT ANY WARRANTY; without even the implied warranty of 9 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10 : * See the GNU General Public License for more details. 11 : * 12 : * You should have received a copy of the GNU General Public License along 13 : * with this program. If not, see <http://www.gnu.org/licenses/>. 14 : * 15 : * Code by Andrew Tridgell and Siddharth Bharat Purohit 16 : */ 17 : #pragma once 18 : 19 : #include "AP_RCProtocol_config.h" 20 : 21 : #if AP_RCPROTOCOL_PPMSUM_ENABLED 22 : 23 : #include "AP_RCProtocol_Backend.h" 24 : 25 : class AP_RCProtocol_PPMSum : public AP_RCProtocol_Backend { 26 : public: 27 2094 : AP_RCProtocol_PPMSum(AP_RCProtocol &_frontend) : AP_RCProtocol_Backend(_frontend) {} 28 : void process_pulse(uint32_t width_s0, uint32_t width_s1) override; 29 : private: 30 : // state of ppm decoder 31 : struct { 32 : int8_t _channel_counter; 33 : uint16_t _pulse_capt[MAX_RCIN_CHANNELS]; 34 : } ppm_state; 35 : }; 36 : 37 : #endif // AP_RCPROTOCOL_PPMSUM_ENABLED