mirror of
https://github.com/lumapu/ahoy.git
synced 2025-06-25 05:46:59 +02:00
speed up set power limit
This commit is contained in:
parent
0ae56efb2f
commit
6be2b0979f
3 changed files with 15 additions and 1 deletions
|
@ -89,6 +89,7 @@ void app::loop(void) {
|
||||||
if(0 != len) {
|
if(0 != len) {
|
||||||
Inverter<> *iv = mSys->findInverter(&p->packet[1]);
|
Inverter<> *iv = mSys->findInverter(&p->packet[1]);
|
||||||
if(NULL != iv && p->packet[0] == (TX_REQ_INFO + 0x80)) { // response from get information command
|
if(NULL != iv && p->packet[0] == (TX_REQ_INFO + 0x80)) { // response from get information command
|
||||||
|
mPayload[iv->id].txId = p->packet[0];
|
||||||
DPRINTLN(DBG_DEBUG, F("Response from info request received"));
|
DPRINTLN(DBG_DEBUG, F("Response from info request received"));
|
||||||
uint8_t *pid = &p->packet[9];
|
uint8_t *pid = &p->packet[9];
|
||||||
if (*pid == 0x00)
|
if (*pid == 0x00)
|
||||||
|
@ -115,6 +116,7 @@ void app::loop(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(NULL != iv && p->packet[0] == (TX_REQ_DEVCONTROL + 0x80)) { // response from dev control command
|
if(NULL != iv && p->packet[0] == (TX_REQ_DEVCONTROL + 0x80)) { // response from dev control command
|
||||||
|
mPayload[iv->id].txId = p->packet[0];
|
||||||
DPRINTLN(DBG_DEBUG, F("Response from devcontrol request received"));
|
DPRINTLN(DBG_DEBUG, F("Response from devcontrol request received"));
|
||||||
iv->devControlRequest = false;
|
iv->devControlRequest = false;
|
||||||
switch (p->packet[12]) {
|
switch (p->packet[12]) {
|
||||||
|
@ -248,6 +250,7 @@ void app::loop(void) {
|
||||||
if(mConfig.serialDebug)
|
if(mConfig.serialDebug)
|
||||||
DPRINTLN(DBG_INFO, F("Devcontrol request ") + String(iv->devControlCmd) + F(" power limit ") + String(iv->powerLimit[0]));
|
DPRINTLN(DBG_INFO, F("Devcontrol request ") + String(iv->devControlCmd) + F(" power limit ") + String(iv->powerLimit[0]));
|
||||||
mSys->Radio.sendControlPacket(iv->radioId.u64, iv->devControlCmd ,iv->powerLimit);
|
mSys->Radio.sendControlPacket(iv->radioId.u64, iv->devControlCmd ,iv->powerLimit);
|
||||||
|
iv->clearCmdQueue();
|
||||||
iv->enqueCommand<InfoCommand>(SystemConfigPara);
|
iv->enqueCommand<InfoCommand>(SystemConfigPara);
|
||||||
} else {
|
} else {
|
||||||
mSys->Radio.sendTimePacket(iv->radioId.u64,iv->getQueuedCmd(), mPayload[iv->id].ts,iv->alarmMesIndex);
|
mSys->Radio.sendTimePacket(iv->radioId.u64,iv->getQueuedCmd(), mPayload[iv->id].ts,iv->alarmMesIndex);
|
||||||
|
@ -306,7 +309,11 @@ void app::processPayload(bool retransmit) {
|
||||||
for(uint8_t id = 0; id < mSys->getNumInverters(); id++) {
|
for(uint8_t id = 0; id < mSys->getNumInverters(); id++) {
|
||||||
Inverter<> *iv = mSys->getInverterByPos(id);
|
Inverter<> *iv = mSys->getInverterByPos(id);
|
||||||
if(NULL != iv) {
|
if(NULL != iv) {
|
||||||
if(!mPayload[iv->id].complete) {
|
if(mPayload[iv->id].txId != (TX_REQ_INFO + 0x80)) {
|
||||||
|
// no processing needed if txId is not 0x95
|
||||||
|
mPayload[iv->id].complete = true;
|
||||||
|
}
|
||||||
|
if(!mPayload[iv->id].complete ) {
|
||||||
if(!buildPayload(iv->id)) {
|
if(!buildPayload(iv->id)) {
|
||||||
if(mPayload[iv->id].requested) {
|
if(mPayload[iv->id].requested) {
|
||||||
if(retransmit) {
|
if(retransmit) {
|
||||||
|
|
|
@ -45,6 +45,7 @@ const char* const pinArgNames[] = {"pinCs", "pinCe", "pinIrq"};
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
uint8_t txId;
|
||||||
uint8_t invId;
|
uint8_t invId;
|
||||||
uint32_t ts;
|
uint32_t ts;
|
||||||
uint8_t data[MAX_PAYLOAD_ENTRIES][MAX_RF_PAYLOAD_SIZE];
|
uint8_t data[MAX_PAYLOAD_ENTRIES][MAX_RF_PAYLOAD_SIZE];
|
||||||
|
|
|
@ -149,6 +149,12 @@ class Inverter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clearCmdQueue(){
|
||||||
|
while (!_commandQueue.empty()){
|
||||||
|
// Will destroy CommandAbstract Class Object (?)
|
||||||
|
_commandQueue.pop();
|
||||||
|
}
|
||||||
|
}
|
||||||
uint8_t getQueuedCmd()
|
uint8_t getQueuedCmd()
|
||||||
{
|
{
|
||||||
if (_commandQueue.empty()){
|
if (_commandQueue.empty()){
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue