Skip to content

Commit

Permalink
Support to add unsigned long long and long long as fields
Browse files Browse the repository at this point in the history
To be able to send large integers such as nanosecond timestamps for
syslog and Chronograf logging from esp32.

Currently casting to a smaller data type results in truncation, double
will not have the i suffix and casting to string (+"i") before calling
addField gets wrapped in quotation marks so database treats it as
string.

Fixes tobiasschuerg#164
  • Loading branch information
drageryd committed Oct 27, 2021
1 parent f32a22c commit 2f1eb67
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/Point.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,18 @@ void Point::addTag(String name, String value) {
_tags += escapeKey(value);
}

void Point::addField(String name, long long value) {
char buff[50];
snprintf(buff, 50, "%lld", value);
putField(name, String(buff)+"i");
}

void Point::addField(String name, unsigned long long value) {
char buff[50];
snprintf(buff, 50, "%llu", value);
putField(name, String(buff)+"i");
}

void Point::addField(String name, const char *value) {
putField(name, "\"" + escapeValue(value) + "\"");
}
Expand Down
2 changes: 2 additions & 0 deletions src/Point.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ friend class InfluxDBClient;
void addField(String name, unsigned long value) { putField(name, String(value)+"i"); }
void addField(String name, bool value) { putField(name, bool2string(value)); }
void addField(String name, String value) { addField(name, value.c_str()); }
void addField(String name, long long value);
void addField(String name, unsigned long long value);
void addField(String name, const char *value);
// Set timestamp to `now()` and store it in specified precision, nanoseconds by default. Date and time must be already set. See `configTime` in the device API
void setTime(WritePrecision writePrecision = WritePrecision::NS);
Expand Down

0 comments on commit 2f1eb67

Please sign in to comment.