removed lambda function
This commit is contained in:
parent
ec788d6a30
commit
925c434e61
@ -12,7 +12,7 @@ public:
|
||||
void loop();
|
||||
bool write(float energy);
|
||||
|
||||
struct Data {
|
||||
struct pvData {
|
||||
uint8_t tm_year;
|
||||
uint8_t tm_mon;
|
||||
uint8_t tm_mday;
|
||||
@ -22,6 +22,8 @@ public:
|
||||
|
||||
private:
|
||||
void onDatabase(AsyncWebServerRequest* request);
|
||||
static size_t readchunk(uint8_t* buffer, size_t maxLen, size_t index);
|
||||
static size_t readchunk1(uint8_t* buffer, size_t maxLen, size_t index);
|
||||
|
||||
AsyncWebServer* _server;
|
||||
};
|
||||
|
||||
@ -48,7 +48,7 @@ bool WebApiDatabaseClass::write(float energy)
|
||||
return (false);
|
||||
// MessageOutput.println("Energy difference > 0");
|
||||
|
||||
struct Data d;
|
||||
struct pvData d;
|
||||
d.tm_hour = old_hour;
|
||||
old_hour = timeinfo.tm_hour;
|
||||
d.tm_year = timeinfo.tm_year - 100; // year counting from 2000
|
||||
@ -70,27 +70,22 @@ bool WebApiDatabaseClass::write(float energy)
|
||||
MessageOutput.println("Failed to append to database.");
|
||||
return (false);
|
||||
}
|
||||
f.write((const uint8_t*)&d, sizeof(Data));
|
||||
f.write((const uint8_t*)&d, sizeof(pvData));
|
||||
f.close();
|
||||
// MessageOutput.println("Write data point.");
|
||||
return (true);
|
||||
}
|
||||
|
||||
void WebApiDatabaseClass::onDatabase(AsyncWebServerRequest* request)
|
||||
// read chunk from database
|
||||
size_t WebApiDatabaseClass::readchunk(uint8_t* buffer, size_t maxLen, size_t index)
|
||||
{
|
||||
if (!WebApi.checkCredentialsReadonly(request)) {
|
||||
return;
|
||||
}
|
||||
|
||||
AsyncWebServerResponse* response = request->beginChunkedResponse("application/json",
|
||||
[](uint8_t* buffer, size_t maxLen, size_t index) -> size_t {
|
||||
static bool first = true;
|
||||
static bool last = false;
|
||||
static File f;
|
||||
uint8_t* pr = buffer;
|
||||
uint8_t* pre = pr + maxLen - 30;
|
||||
uint8_t* pre = pr + maxLen - 50;
|
||||
size_t r;
|
||||
struct Data d;
|
||||
struct pvData d;
|
||||
|
||||
if (first) {
|
||||
f = LittleFS.open(DATABASE_FILENAME, "r", false);
|
||||
@ -100,7 +95,7 @@ void WebApiDatabaseClass::onDatabase(AsyncWebServerRequest* request)
|
||||
*pr++ = '[';
|
||||
}
|
||||
while (true) {
|
||||
r = f.read((uint8_t*)&d, sizeof(Data)); // read from database
|
||||
r = f.read((uint8_t*)&d, sizeof(pvData)); // read from database
|
||||
if (r <= 0) {
|
||||
if (last) {
|
||||
f.close();
|
||||
@ -125,8 +120,23 @@ void WebApiDatabaseClass::onDatabase(AsyncWebServerRequest* request)
|
||||
if (pr >= pre)
|
||||
return (pr - buffer); // buffer full, return number of chars
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
size_t WebApiDatabaseClass::readchunk1(uint8_t* buffer, size_t maxLen, size_t index)
|
||||
{
|
||||
size_t x = readchunk(buffer, maxLen, index);
|
||||
MessageOutput.println("----------");
|
||||
MessageOutput.println(maxLen);
|
||||
MessageOutput.println(x);
|
||||
return(x);
|
||||
}
|
||||
|
||||
void WebApiDatabaseClass::onDatabase(AsyncWebServerRequest* request)
|
||||
{
|
||||
if (!WebApi.checkCredentialsReadonly(request)) {
|
||||
return;
|
||||
}
|
||||
AsyncWebServerResponse* response = request->beginChunkedResponse("application/json", readchunk);
|
||||
request->send(response);
|
||||
}
|
||||
|
||||
|
||||
@ -1,12 +1,10 @@
|
||||
<template>
|
||||
<div class="card" :class="{}">
|
||||
<div v-if="dataBase.valid_data">
|
||||
<div class="card-header">
|
||||
{{ $t('chart.LastDay') }}
|
||||
</div>
|
||||
<GoogleChart />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
|
||||
@ -1,13 +1,9 @@
|
||||
<template>
|
||||
<div class="card" :class="{}">
|
||||
<div v-if="dataBase.valid_data">
|
||||
<div class="card-header">
|
||||
</div>
|
||||
<div>
|
||||
<GoogleChart />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<BarChart v-bind:dataBase="dataBase" dataLoading="dataLoading" />
|
||||
<BarChart v-bind:dataBase="dataBase" />
|
||||
<CalendarChart v-bind:dataBase="dataBase" />
|
||||
|
||||
<div class="tab-content" id="v-pills-tabContent" :class="{
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user