mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-06-28 05:09:40 +00:00
ErrorFix
This commit is contained in:
31
IR_Decoder.h
31
IR_Decoder.h
@ -51,6 +51,21 @@ public:
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct ErrorsStruct {
|
||||
uint8_t lowSignal;
|
||||
uint8_t highSignal;
|
||||
uint8_t other;
|
||||
|
||||
void reset() {
|
||||
lowSignal = 0;
|
||||
highSignal = 0;
|
||||
other = 0;
|
||||
}
|
||||
uint16_t all() { return lowSignal + highSignal + other; }
|
||||
|
||||
} errors;
|
||||
|
||||
public:
|
||||
class InputData : protected IR_FOX {
|
||||
friend IR_Decoder;
|
||||
protected:
|
||||
@ -62,13 +77,13 @@ public:
|
||||
uint8_t _dataRawSize = 0;
|
||||
uint16_t _crcPackVal = 0;
|
||||
uint16_t _crcCalcVal = 0;
|
||||
uint16_t _errCount = 0;
|
||||
ErrorsStruct _err;
|
||||
uint16_t _bitPeriod = 0;
|
||||
|
||||
void _set(uint8_t* ptr, uint8_t len, uint16_t crc, uint16_t err, uint16_t rTime) {
|
||||
void _set(uint8_t* ptr, uint8_t len, uint16_t crc, ErrorsStruct err, uint16_t rTime) {
|
||||
_crcCalcVal = crc;
|
||||
_dataRawSize = len;
|
||||
_errCount = err;
|
||||
_err = err;
|
||||
_bitPeriod = rTime;
|
||||
if (_data != nullptr) { delete _data; _data = nullptr; }
|
||||
_data = new uint8_t[len];
|
||||
@ -86,7 +101,10 @@ public:
|
||||
uint8_t msgInfo() { return _msgType & IR_MASK_MSG_INFO; };
|
||||
uint8_t msgType() { return (_msgType >> 5) & IR_MASK_MSG_TYPE; };
|
||||
uint8_t msgRAW() { return _msgType; };
|
||||
uint16_t errorCount() { return _errCount; };
|
||||
uint16_t errorCount() { return _err.all(); };
|
||||
uint8_t errorLowSignal() { return _err.lowSignal; };
|
||||
uint8_t errorHighSignal() { return _err.highSignal; };
|
||||
uint8_t errorOther() { return _err.other; };
|
||||
uint16_t crcIN() { return _crcPackVal; };
|
||||
uint16_t crcCALC() { return _crcCalcVal; };
|
||||
uint16_t tunerTime() { return _bitPeriod; };
|
||||
@ -174,6 +192,7 @@ public:
|
||||
|
||||
|
||||
private:
|
||||
|
||||
const uint8_t isrPin; // Пин прерывания
|
||||
|
||||
IR_Encoder* encoder; // Указатель на парный передатчик
|
||||
@ -282,10 +301,10 @@ private:
|
||||
// };
|
||||
|
||||
|
||||
#ifdef IRDEBUG
|
||||
#ifdef IRDEBUG
|
||||
inline void errPulse(uint8_t pin, uint8_t count);
|
||||
inline void infoPulse(uint8_t pin, uint8_t count);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
};
|
Reference in New Issue
Block a user