MCPcopy Create free account
hub / github.com/UtilitechAS/amsreader-firmware / setHourImport

Method setHourImport

lib/AmsDataStorage/src/AmsDataStorage.cpp:316–348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

314}
315
316void AmsDataStorage::setHourImport(uint8_t hour, uint32_t val) {
317 if(hour < 0 || hour > 24) return;
318
319 uint8_t accuracy = day.accuracy;
320 uint32_t update = val / pow(10, accuracy);
321 while(update > UINT16_MAX) {
322 accuracy++;
323 update = val / pow(10, accuracy);
324 }
325
326 if(accuracy != day.accuracy) {
327 setDayAccuracy(accuracy);
328 }
329
330 day.hImport[hour] = update;
331
332 uint32_t max = 0;
333 for(uint8_t i = 0; i < 24; i++) {
334 if(day.hImport[i] > max)
335 max = day.hImport[i];
336 if(day.hExport[i] > max)
337 max = day.hExport[i];
338 }
339
340 while(max < UINT16_MAX/10 && accuracy > 0) {
341 accuracy--;
342 max = max*10;
343 }
344
345 if(accuracy != day.accuracy) {
346 setDayAccuracy(accuracy);
347 }
348}
349
350uint32_t AmsDataStorage::getHourImport(uint8_t hour) {
351 if(hour < 0 || hour > 24) return 0;

Callers 1

modifyDayPlotMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected