This commit is contained in:
2024-02-13 15:18:45 +03:00
parent 1ee3386c31
commit d065c7a037
3 changed files with 139 additions and 111 deletions

View File

@ -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
};