![]() |
Fledge
An open source edge computing platform for industrial users
|
An asset reading represented as a class. More...
#include <reading.h>
Public Types | |
enum | dateTimeFormat { FMT_DEFAULT, FMT_STANDARD, FMT_ISO8601, FMT_ISO8601MS } |
typedef enum Reading::dateTimeFormat | readingTimeFormat |
Public Member Functions | |
Reading (const std::string &asset, Datapoint *value) | |
Reading (const std::string &asset, std::vector< Datapoint *> values) | |
Reading (const std::string &asset, std::vector< Datapoint *> values, const std::string &ts) | |
Reading (const std::string &asset, const std::string &datapoints) | |
Reading (const Reading &orig) | |
Reading copy constructor. | |
~Reading () | |
Destructor for Reading class. | |
void | addDatapoint (Datapoint *value) |
Add another data point to an asset reading. | |
Datapoint * | removeDatapoint (const std::string &name) |
Remove a datapoint from the reading. More... | |
Datapoint * | getDatapoint (const std::string &name) const |
Return a specific data point by name. More... | |
std::string | toJSON (bool minimal=false) const |
Return the asset reading as a JSON structure encoded in a C++ string. | |
std::string | getDatapointsJSON () const |
Return the asset reading as a JSON structure encoded in a C++ string. | |
const std::string & | getAssetName () const |
void | setAssetName (std::string assetName) |
unsigned int | getDatapointCount () |
void | removeAllDatapoints () |
Remove all data points for Reading class. | |
const std::vector< Datapoint * > | getReadingData () const |
std::vector< Datapoint * > & | getReadingData () |
bool | hasId () const |
unsigned long | getId () const |
unsigned long | getTimestamp () const |
unsigned long | getUserTimestamp () const |
void | setId (unsigned long id) |
void | setTimestamp (unsigned long ts) |
void | setTimestamp (struct timeval tm) |
void | setTimestamp (const std::string ×tamp) |
void | getTimestamp (struct timeval *tm) |
void | setUserTimestamp (unsigned long uTs) |
void | setUserTimestamp (struct timeval tm) |
void | setUserTimestamp (const std::string ×tamp) |
void | getUserTimestamp (struct timeval *tm) |
void | getFormattedDateTimeStr (const time_t *tv_sec, char *date_time, readingTimeFormat dateFormat) const |
Convert time since epoch to a formatted m_timestamp DataTime in UTC and use a cache to speed it up. More... | |
const std::string | getAssetDateTime (readingTimeFormat datetimeFmt=FMT_DEFAULT, bool addMs=true) const |
Return a formatted m_timestamp DataTime in UTC. More... | |
const std::string | getAssetDateUserTime (readingTimeFormat datetimeFmt=FMT_DEFAULT, bool addMs=true) const |
Return a formatted m_userTimestamp DataTime in UTC. More... | |
std::string | substitute (const std::string &str) |
Substitute values from this reading into the string. More... | |
Protected Member Functions | |
Reading & | operator= (Reading const &) |
void | stringToTimestamp (const std::string ×tamp, struct timeval *ts) |
Convert a string timestamp, with milliseconds to a struct timeval. More... | |
const std::string | escape (const std::string &str) const |
Escape quotes etc to allow the string to be a property value within a JSON document. More... | |
std::vector< Datapoint * > * | JSONtoDatapoints (const rapidjson::Value &json) |
Convert a JSON Value object to a set of data points. More... | |
Protected Attributes | |
unsigned long | m_id |
bool | m_has_id |
std::string | m_asset |
struct timeval | m_timestamp |
struct timeval | m_userTimestamp |
std::vector< Datapoint * > | m_values |
Static Protected Attributes | |
static std::vector< std::string > | m_dateTypes |
An asset reading represented as a class.
Each asset reading may have multiple datapoints to represent the multiple values that maybe held within a complex asset.
NB The timestamp data held for both the system timestamp and the user timestamp are always held internally as UTC times
|
protected |
Escape quotes etc to allow the string to be a property value within a JSON document.
str | The string to escape |
const string Reading::getAssetDateTime | ( | readingTimeFormat | dateFormat = FMT_DEFAULT , |
bool | addMS = true |
||
) | const |
Return a formatted m_timestamp DataTime in UTC.
dateFormat | Format: FMT_DEFAULT or FMT_STANDARD |
const string Reading::getAssetDateUserTime | ( | readingTimeFormat | dateFormat = FMT_DEFAULT , |
bool | addMS = true |
||
) | const |
Return a formatted m_userTimestamp DataTime in UTC.
dateFormat | Format: FMT_DEFAULT or FMT_STANDARD |
Datapoint * Reading::getDatapoint | ( | const std::string & | name | ) | const |
Return a specific data point by name.
name | The name of the datapoint to return |
void Reading::getFormattedDateTimeStr | ( | const time_t * | tv_sec, |
char * | date_time, | ||
readingTimeFormat | dateFormat | ||
) | const |
Convert time since epoch to a formatted m_timestamp DataTime in UTC and use a cache to speed it up.
tv_sec | Seconds since epoch |
date_time | Buffer in which to return the formatted timestamp |
dateFormat | Format: FMT_DEFAULT or FMT_STANDARD |
Build date_time with format YYYY-MM-DD HH24:MM:SS.MS+00:00 this is same as Python3: datetime.datetime.now(tz=datetime.timezone.utc)
|
protected |
Convert a JSON Value object to a set of data points.
json | The json object to convert |
Datapoint * Reading::removeDatapoint | ( | const std::string & | name | ) |
Remove a datapoint from the reading.
name | Name of the datapoitn to remove |
|
protected |
Convert a string timestamp, with milliseconds to a struct timeval.
Timezone handling The timezone in the string is extracted to get UTC values. Times within a reading are always stored as UTC
timestamp | String timestamp |
ts | Struct timeval to populate |
string Reading::substitute | ( | const std::string & | str | ) |
Substitute values from this reading into the string.
Macros are of the form $datapointname$, $ASSET$ or $datapointname|default$
str | The string to substitute into |
|
staticprotected |