Skip to content

Commit

Permalink
0.8.147
Browse files Browse the repository at this point in the history
code cleanup
  • Loading branch information
lumapu committed Sep 29, 2024
1 parent 08bc773 commit b7e0566
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 68 deletions.
125 changes: 61 additions & 64 deletions src/hm/CommQueue.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,63 +60,6 @@ class CommQueue {
return N;
}

protected:
struct QueueElement {
Inverter<> *iv;
uint8_t cmd;
uint8_t attempts;
uint8_t attemptsMax;
uint32_t ts;
bool isDevControl;

QueueElement()
: iv {nullptr}
, cmd {0}
, attempts {0}
, attemptsMax {0}
, ts {0}
, isDevControl {false}
{}

QueueElement(Inverter<> *iv, uint8_t cmd, bool devCtrl)
: iv {iv}
, cmd {cmd}
, attempts {DefaultAttempts}
, attemptsMax {DefaultAttempts}
, ts {0}
, isDevControl {devCtrl}
{}

QueueElement(const QueueElement &other) // copy constructor
: iv {other.iv}
, cmd {other.cmd}
, attempts {other.attempts}
, attemptsMax {other.attemptsMax}
, ts {other.ts}
, isDevControl {other.isDevControl}
{}

void changeCmd(uint8_t cmd) {
this->cmd = cmd;
this->isDevControl = false;
}

void setTs(const uint32_t ts) {
this->ts = ts;
}

void setAttempt() {
if(this->attempts)
this->attempts--;
}

void incrAttempt(uint8_t attempts = 1) {
this->attempts += attempts;
if (this->attempts > this->attemptsMax)
this->attemptsMax = this->attempts;
}
};

protected:
void add(QueueElement q) {
xSemaphoreTake(this->mutex, portMAX_DELAY);
Expand Down Expand Up @@ -148,13 +91,10 @@ class CommQueue {
}
}

void cmdDone(QueueElement *q, bool keep = false) {
if(keep) {
q->attempts = DefaultAttempts;
q->attemptsMax = DefaultAttempts;
add(q); // add to the end again
}
//inc(&this->rdPtr);
void cmdReset(QueueElement *q) {
q->attempts = DefaultAttempts;
q->attemptsMax = DefaultAttempts;
add(q); // add to the end again
}

private:
Expand Down Expand Up @@ -183,6 +123,63 @@ class CommQueue {
return false;
}

protected:
struct QueueElement {
Inverter<> *iv;
uint8_t cmd;
uint8_t attempts;
uint8_t attemptsMax;
uint32_t ts;
bool isDevControl;

QueueElement()
: iv {nullptr}
, cmd {0}
, attempts {0}
, attemptsMax {0}
, ts {0}
, isDevControl {false}
{}

QueueElement(Inverter<> *iv, uint8_t cmd, bool devCtrl)
: iv {iv}
, cmd {cmd}
, attempts {DefaultAttempts}
, attemptsMax {DefaultAttempts}
, ts {0}
, isDevControl {devCtrl}
{}

QueueElement(const QueueElement &other) // copy constructor
: iv {other.iv}
, cmd {other.cmd}
, attempts {other.attempts}
, attemptsMax {other.attemptsMax}
, ts {other.ts}
, isDevControl {other.isDevControl}
{}

void changeCmd(uint8_t cmd) {
this->cmd = cmd;
this->isDevControl = false;
}

void setTs(const uint32_t ts) {
this->ts = ts;
}

void setAttempt() {
if(this->attempts)
this->attempts--;
}

void incrAttempt(uint8_t attempts = 1) {
this->attempts += attempts;
if (this->attempts > this->attemptsMax)
this->attemptsMax = this->attempts;
}
};

protected:
std::array<QueueElement, N> mQueue;

Expand Down
8 changes: 4 additions & 4 deletions src/hm/Communication.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,6 @@ class Communication : public CommQueue<> {
q->iv->curFrmCnt = 0;
q->iv->radioStatistics.txCnt++;
mIsRetransmit = false;
if(NULL == q->iv->radio)
cmdDone(q, false); // can't communicate while radio is not defined!
mFirstTry = (INV_RADIO_TYPE_NRF == q->iv->ivRadioType) && (q->iv->isAvailable());
q->iv->mCmd = q->cmd;
q->iv->mIsSingleframeReq = false;
Expand All @@ -112,7 +110,7 @@ class Communication : public CommQueue<> {
if((q->iv->ivGen == IV_MI) && ((q->cmd == MI_REQ_CH1) || (q->cmd == MI_REQ_4CH)))
q->incrAttempt(q->iv->channels); // 2 more attempts for 2ch, 4 more for 4ch

mState = States::START;
mState = (NULL == q->iv->radio) ? States::RESET : States::START;
break;

case States::START:
Expand Down Expand Up @@ -644,7 +642,9 @@ class Communication : public CommQueue<> {
if(q->isDevControl)
keep = !crcPass;

cmdDone(q, keep);
if(keep)
cmdReset(q);

q->iv->mGotFragment = false;
q->iv->mGotLastMsg = false;
q->iv->miMultiParts = 0;
Expand Down

0 comments on commit b7e0566

Please sign in to comment.