some more MI specific things

- might decode data and enqueue correct next command
- small fixes wrt. to serial readibility
This commit is contained in:
rejoe2 2023-10-18 18:56:59 +02:00 committed by GitHub
parent 0e7874935d
commit 5b3d0593fe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 124 additions and 3 deletions

View file

@ -22,6 +22,10 @@ class CommQueue {
void add(Inverter<> *iv, uint8_t cmd, bool delOnPop = true) {
mQueue[mWrPtr] = queue_s(iv, cmd, delOnPop, false);
/*mQueue[mRdPtr].firstTry = false;
if((IV_HM == mQueue[mRdPtr].iv->ivGen) || (IV_MI == mQueue[mRdPtr].iv->ivGen)) {
mQueue[mRdPtr].firstTry = ((mQueue[mRdPtr].iv->isAvailable()) || (millis() < 120000));
}*/
inc(&mWrPtr);
}
@ -32,6 +36,7 @@ class CommQueue {
uint8_t attempts;
bool delOnPop;
bool isDevControl;
bool firstTry;
uint32_t ts;
queue_s() {}
queue_s(Inverter<> *i, uint8_t c, bool d, bool dev) :
@ -41,6 +46,10 @@ class CommQueue {
protected:
void add(queue_s q) {
mQueue[mWrPtr] = q;
/*mQueue[mRdPtr].firstTry = false;
if((IV_HM == mQueue[mRdPtr].iv->ivGen) || (IV_MI == mQueue[mRdPtr].iv->ivGen)) {
mQueue[mRdPtr].firstTry = ((mQueue[mRdPtr].iv->isAvailable()) || (millis() < 120000));
}*/
inc(&mWrPtr);
}
@ -60,6 +69,13 @@ class CommQueue {
inc(&mRdPtr);
}
bool isFirstTry(void) {
if(!mQueue[mRdPtr].firstTry)
return false;
mQueue[mRdPtr].firstTry = false;
return true;
}
void setTs(uint32_t *ts) {
mQueue[mRdPtr].ts = *ts;
}