test_sdk/hw/ADCCluster/rrdstack.cpp

41 lines
859 B
C++
Raw Normal View History

#include "rrdstack.h"
RRDStack::RRDStack(QObject *parent)
: QObject{parent}
{
for (int __i=0; __i<STACK_SIZE; __i++) {
_stacks[__i] = nullptr;
}
_stackPointer = 0;
}
clusterStack *RRDStack::getStackByPacketNumber(uint32_t packetNumber)
{
clusterStack * __stack = nullptr;
for (int __i = 0; __i < STACK_SIZE; __i++) {
if (_stacks[__i] != nullptr) {
if (packetNumber - _stacks[__i]->getFirstPacketIndex() < 45) {
__stack = _stacks[__i];
}
}
}
return __stack;
}
clusterStack *RRDStack::pushStack(clusterStack *newClusterStack)
{
clusterStack * __pushingStack = _stacks[_stackPointer];
_stacks[_stackPointer] = newClusterStack;
_stackPointer++;
if (_stackPointer == STACK_SIZE) {
_stackPointer = 0;
}
return __pushingStack;
}