You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
938 B
26 lines
938 B
#pragma once |
|
|
|
#include "Config.h" |
|
|
|
class F4Light::_parser { // universal parser interface |
|
public: |
|
_parser() {}; |
|
virtual ~_parser() {}; |
|
|
|
virtual void init(uint8_t ch) = 0; |
|
virtual void late_init(uint8_t b) {} |
|
|
|
virtual uint64_t get_last_signal() const { noInterrupts(); uint64_t t= _last_signal; interrupts(); return t; } |
|
virtual uint64_t get_last_change() const { noInterrupts(); uint64_t t= _last_change; interrupts(); return t; } |
|
virtual uint8_t get_valid_channels() const { noInterrupts(); uint8_t t= _channels; interrupts(); return t; } |
|
virtual uint16_t get_val(uint8_t ch) const { noInterrupts(); uint16_t t= _val[ch]; interrupts(); return t; } |
|
|
|
virtual bool bind(int dsmMode) const { return true; } |
|
|
|
protected: |
|
volatile uint64_t _last_signal; |
|
volatile uint16_t _val[F4Light_RC_INPUT_NUM_CHANNELS]; |
|
uint64_t _last_change; |
|
volatile uint8_t _channels; |
|
|
|
};
|
|
|