Skip to content

Commit 2f1eb67

Browse files
committed
Support to add unsigned long long and long long as fields
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 #164
1 parent f32a22c commit 2f1eb67

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/Point.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ void Point::addTag(String name, String value) {
4646
_tags += escapeKey(value);
4747
}
4848

49+
void Point::addField(String name, long long value) {
50+
char buff[50];
51+
snprintf(buff, 50, "%lld", value);
52+
putField(name, String(buff)+"i");
53+
}
54+
55+
void Point::addField(String name, unsigned long long value) {
56+
char buff[50];
57+
snprintf(buff, 50, "%llu", value);
58+
putField(name, String(buff)+"i");
59+
}
60+
4961
void Point::addField(String name, const char *value) {
5062
putField(name, "\"" + escapeValue(value) + "\"");
5163
}

src/Point.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ friend class InfluxDBClient;
5252
void addField(String name, unsigned long value) { putField(name, String(value)+"i"); }
5353
void addField(String name, bool value) { putField(name, bool2string(value)); }
5454
void addField(String name, String value) { addField(name, value.c_str()); }
55+
void addField(String name, long long value);
56+
void addField(String name, unsigned long long value);
5557
void addField(String name, const char *value);
5658
// 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
5759
void setTime(WritePrecision writePrecision = WritePrecision::NS);

0 commit comments

Comments
 (0)