add DataBack and refactor out classes

This commit is contained in:
2024-02-21 17:07:36 +03:00
parent f007e2cf6e
commit 37f49e0d82
2 changed files with 117 additions and 83 deletions

View File

@ -2,12 +2,6 @@
#include "IR_Encoder.h"
#define checkAddr(h, l) (\
((uint16_t)((dataBuffer[h] << 8) | dataBuffer[l]) == id) || \
((uint16_t)((dataBuffer[h] << 8) | dataBuffer[l]) >= IR_Broadcast)\
)
IR_Decoder::IR_Decoder(const uint8_t isrPin, uint16_t addr, IR_Encoder* encPair = nullptr) : isrPin(isrPin), id(addr), encoder(encPair) {
dataBuffer = new uint8_t[dataByteSizeMax] { 0 };
prevRise = prevFall = prevPrevFall = prevPrevRise = 0;
@ -52,7 +46,7 @@ void IR_Decoder::isr() {
////////////////////////////////////////////////////////////////////////////////////
void IR_Decoder::start_RX() {
void IR_Decoder::firstRX() {
#ifdef IRDEBUG_INFO
Serial.print("\n>");
@ -78,7 +72,7 @@ void IR_Decoder::start_RX() {
void IR_Decoder::listen() {
if (isRecive && ((micros() - prevRise) > IR_timeout * 2)) {
isRecive = false;
start_RX();
firstRX();
}
}
@ -331,9 +325,6 @@ void IR_Decoder::writeToBuffer(bool bit) {
}
////////////////////// Проверка наличия битов синхранизации //////////////////////
if (isWrongPack = (err_syncBit >= syncBits)) {
// start_RX();
// firstUnHandledFront = firstUnHandledFront->next;
// firstUnHandledFront = nullptr;
#ifdef IRDEBUG_INFO
Serial.print("****************");
#endif
@ -370,7 +361,7 @@ void IR_Decoder::writeToBuffer(bool bit) {
if ((dataBuffer[0] & 0b00010000)) { // С адресацией
packToOutClass(
packSize, // packSize
gotData, // obj
gotBackData, // obj
PackOffsets {
0, // msgOffset
1, // addrFromOffset
@ -383,7 +374,7 @@ void IR_Decoder::writeToBuffer(bool bit) {
} else { // Без адресации
packToOutClass(
packSize, // packSize
gotData, // obj
gotBackData, // obj
PackOffsets {
0, // msgOffset
1, // addrFromOffset
@ -438,7 +429,7 @@ void IR_Decoder::writeToBuffer(bool bit) {
packToOutClass(
packSize, // packSize
gotData, // obj
gotData, // obj
PackOffsets {
0, // msgOffset
1, // addrFromOffset