Bugfix in firmware partial sending
This commit is contained in:
@@ -52,6 +52,9 @@ public:
|
||||
assert(startIdx == lastIdx, "Not all data was sent");
|
||||
}
|
||||
|
||||
uint32_t getStartTime() const {
|
||||
return currentChunk->getStartTime();
|
||||
}
|
||||
private:
|
||||
void rotate() {
|
||||
if( otherChunkFilled() )
|
||||
|
||||
@@ -200,12 +200,19 @@ public:
|
||||
sentBytes_ += sizeof(T) * length;
|
||||
return;
|
||||
} else {
|
||||
const uint32_t elementsToSend = length - elementsToSkip;
|
||||
sentBytes_ += sizeof(T) * elementsToSkip;
|
||||
const uint32_t elementsRemaining = length - elementsToSkip;
|
||||
const uint32_t maxElementsToSend = (maxBytes_ - sentBytes_) / sizeof(T);
|
||||
const uint32_t elementsToSend = min(elementsRemaining, maxElementsToSend);
|
||||
if( elementsToSend == 0 ) {
|
||||
sendingFinished_ = true;
|
||||
return;
|
||||
} else {
|
||||
encoder_.sendArrayPartialContents(data + elementsToSkip, elementsToSend);
|
||||
sentBytes_ += sizeof(T) * elementsToSend;
|
||||
if( elementsRemaining > elementsToSend ) {
|
||||
sendingFinished_ = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user