mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-12 00:02:53 +00:00
* 15min prices WIP * WIP more changes for 15min prices * More work on 15min pricing * Fixed some errors * Some changes after testing * Graphical changes for 15min pricing * Adjustments on MQTT handlers after switching to 15min prices * Reverted some MQTT changes * Adapted HA integration for 15min pricing * Adapted JSON payload for 15min * Adjustments during testing * Set default price interval * Fixed refresh of price graph when data changes * Bugfixes * Fixed some issues with raw payload * Adjustments for meter timestamp from Kamstrup * Updated readme * Added detailed breakdown of payloads coming from Norwegian meters * Minor changes relating to price * Fixed byte alignment on price config * Changes to support RC upgraders
47 lines
1.0 KiB
C++
47 lines
1.0 KiB
C++
/**
|
|
* @copyright Utilitech AS 2023
|
|
* License: Fair Source
|
|
*
|
|
*/
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifndef _PRICESCONTAINER_H
|
|
#define _PRICESCONTAINER_H
|
|
|
|
#define PRICE_NO_VALUE -127
|
|
#define PRICE_DIRECTION_IMPORT 0x01
|
|
#define PRICE_DIRECTION_EXPORT 0x02
|
|
#define PRICE_DIRECTION_BOTH 0x03
|
|
|
|
class PricesContainer {
|
|
public:
|
|
PricesContainer(char* source);
|
|
|
|
void setup(uint8_t resolutionInMinutes, uint8_t numberOfPoints, bool differentExportPrices);
|
|
|
|
char* getSource();
|
|
void setCurrency(char* currency);
|
|
char* getCurrency();
|
|
|
|
bool isExportPricesDifferentFromImport() {
|
|
return differentExportPrices;
|
|
}
|
|
|
|
uint8_t getResolutionInMinutes();
|
|
uint8_t getNumberOfPoints();
|
|
|
|
void setPrice(uint8_t point, float value, uint8_t direction);
|
|
bool hasPrice(uint8_t point, uint8_t direction);
|
|
float getPrice(uint8_t point, uint8_t direction); // int32_t / 10_000
|
|
|
|
private:
|
|
char source[4];
|
|
char currency[4];
|
|
uint8_t resolutionInMinutes;
|
|
bool differentExportPrices;
|
|
uint8_t numberOfPoints;
|
|
int32_t *points;
|
|
};
|
|
#endif
|