Fixed scale tare
This commit is contained in:
@@ -23,7 +23,7 @@ public:
|
||||
Serial.println("Starting session rotate");
|
||||
rotate();
|
||||
const bool secondInsertSuccess = currentChunk->addPoint(measurement);
|
||||
assert(secondInsertSuccess, "Session: insertion after rotation failed");
|
||||
assert_msg(secondInsertSuccess, "Session: insertion after rotation failed");
|
||||
// TODO check that there is place for file - remove old files
|
||||
}
|
||||
return true;
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
encoder.template sendArrayHeader<Measurement_T>(lastIdx - startIdx);
|
||||
while(startIdx < lastIdx)
|
||||
startIdx = serializeChunk(encoder, startIdx);
|
||||
assert(startIdx == lastIdx, "Not all data was sent");
|
||||
assert_msg(startIdx == lastIdx, "Not all data was sent");
|
||||
}
|
||||
|
||||
uint32_t getStartTime() const {
|
||||
@@ -88,18 +88,18 @@ private:
|
||||
|
||||
template< typename Encoder_T>
|
||||
uint32_t serializeChunk(Encoder_T & encoder, uint32_t startIdx) const {
|
||||
assert( startIdx < currentChunk->getStartIndex() + currentChunk->numMeasurements(),
|
||||
"serializeChunk: invalid startIdx" );
|
||||
assert_msg( startIdx < currentChunk->getStartIndex() + currentChunk->numMeasurements(),
|
||||
"serializeChunk: invalid startIdx" );
|
||||
|
||||
if( startIdx >= currentChunk->getStartIndex() ) {
|
||||
const auto localStartIdx = startIdx - currentChunk->getStartIndex();
|
||||
const auto numElements = currentChunk->numMeasurements() - localStartIdx;
|
||||
assert(numElements <= currentChunk->numMeasurements(), "Internal problem in serializeChunk");
|
||||
assert_msg(numElements <= currentChunk->numMeasurements(), "Internal problem in serializeChunk");
|
||||
encoder.sendArrayPartialContents( currentChunk->getDataPointer() + localStartIdx, numElements );
|
||||
return currentChunk->getStartIndex() + currentChunk->numMeasurements();
|
||||
} else if( startIdx >= otherChunk->getStartIndex() && otherChunkFilled() ) {
|
||||
encoder.sendArrayPartialContents( otherChunk->getDataPointer(), otherChunk->numMeasurements() );
|
||||
assert( otherChunk->numMeasurements(), CHUNK_SIZE );
|
||||
assert_msg( otherChunk->numMeasurements(), CHUNK_SIZE );
|
||||
return otherChunk->getStartIndex() + otherChunk->numMeasurements();
|
||||
} else {
|
||||
if( encoder.getSizeCountMode() ) {
|
||||
|
||||
@@ -1,7 +1,43 @@
|
||||
#pragma once
|
||||
#include "StreamingMsgPackEncoder.h"
|
||||
#include <FS.h>
|
||||
#include "FilesystemAbstraction.h"
|
||||
|
||||
#ifdef USE_ESP32
|
||||
|
||||
struct WriterAdaptor
|
||||
{
|
||||
File * f;
|
||||
void write(const char * ptr, size_t size) {
|
||||
f->write(reinterpret_cast<const uint8_t *>(ptr), size);
|
||||
}
|
||||
};
|
||||
|
||||
class SpiffsStorageWriter {
|
||||
public:
|
||||
SpiffsStorageWriter(const String &fileName) :
|
||||
f_(SPIFFS.open(fileName, "w")),
|
||||
adaptor_{&f_},
|
||||
encoder_(&adaptor_),
|
||||
fileName_(fileName)
|
||||
{
|
||||
bool success = f_;
|
||||
Serial.println(success);
|
||||
}
|
||||
~SpiffsStorageWriter() {
|
||||
f_.close();
|
||||
Serial.println(fileName_);
|
||||
Serial.println(SPIFFS.exists(fileName_));
|
||||
}
|
||||
StreamingMsgPackEncoder<WriterAdaptor> &encoder() { return encoder_; }
|
||||
|
||||
private:
|
||||
File f_;
|
||||
WriterAdaptor adaptor_;
|
||||
StreamingMsgPackEncoder<WriterAdaptor> encoder_;
|
||||
String fileName_;
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
class SpiffsStorageWriter {
|
||||
public:
|
||||
@@ -26,6 +62,11 @@ private:
|
||||
String fileName_;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class SpiffsStorageReader
|
||||
{
|
||||
|
||||
@@ -19,6 +19,7 @@ struct DummyWriter {
|
||||
void write(const void*, uint32_t) {}
|
||||
};
|
||||
|
||||
|
||||
class CopyWriter {
|
||||
public:
|
||||
CopyWriter(uint8_t * bufferToWrite)
|
||||
@@ -193,8 +194,8 @@ public:
|
||||
uint32_t elementsToSkip = 0;
|
||||
if( sentBytes_ < offsetToStart_ ) {
|
||||
elementsToSkip = (offsetToStart_ - sentBytes_) / sizeof(T);
|
||||
assert((offsetToStart_ - sentBytes_) % sizeof(T) == 0,
|
||||
"Looks like previous sent operation send fraction of an element.");
|
||||
assert_msg((offsetToStart_ - sentBytes_) % sizeof(T) == 0,
|
||||
"Looks like previous sent operation send fraction of an element.");
|
||||
}
|
||||
if( elementsToSkip >= length) {
|
||||
sentBytes_ += sizeof(T) * length;
|
||||
@@ -241,7 +242,7 @@ private:
|
||||
if( sentBytes_ < offsetToStart_ ) {
|
||||
// already sent
|
||||
sentBytes_ += sizeRequired;
|
||||
assert( sentBytes_ <= offsetToStart_, "Partial sending not supported by this function" );
|
||||
assert_msg( sentBytes_ <= offsetToStart_, "Partial sending not supported by this function" );
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user