27#include <Preferences.h>
29#include <TimeStamp.hpp>
81 Serial.println(
"[DEBUG] initializing new SDLogger");
93 Serial.printf(
"[DEBUG] retrieved cached timestamp -> \'%s\'\n", ts.c_str());
106 Serial.printf(
"[DEBUG] using absolute timestamp -> \'%s\'\n",
tsp->get_timestamp().c_str());
117 Serial.printf(
"[DEBUG] using default timestamp -> \'%s\'\n",
tsp->get_timestamp().c_str());
135 if(
tsp == NULL)
return "";
137 std::string filename =
"/log_" + std::to_string(
tsp->get_month()) +
138 "-" + std::to_string(
tsp->get_day()) +
139 "-" + std::to_string(
tsp->get_year());
152 gator_prefs.putString(
"timestamp", timestamp.c_str());
177 Serial.println(
"[WARNING] key \'timestamp\' doesn't exist");
178 gator_prefs.putString(
"timestamp",
"00-00-00T00:00:00+0");
182 return gator_prefs.getString(
"timestamp",
"").c_str();
192 Serial.println(
"[WARNING] key \'log_offset\' doesn't exist");
209void log_to_sd_file(std::string filename, std::string time, std::string topic, std::string message){
210 std::string log_fn = filename;
212 Serial.printf(
"[SDLogger] logging to \'%s\n\'", log_fn);
220 std::vector<std::string> header_fields;
221 header_fields.push_back(
"TIME");
222 header_fields.push_back(
"MQTT TOPIC");
223 header_fields.push_back(
"MQTT MESSAGE");
230 std::string ts =
tsb->get_date_time();
261 std::vector<std::string> header_fields;
262 header_fields.push_back(
"TIME");
263 header_fields.push_back(
"MQTT TOPIC");
264 header_fields.push_back(
"MQTT MESSAGE");
Implements an interface for using SPI, SDLogger, for reading and writing to files on an SD card.
Defines the utility class SDReader which is used to read from SD card files.
Creates an interface for writing data to a log file on an SD card.
Definition SDLogger.hpp:30
bool initialize_sd_card()
Call before using SD card interface. Initializes connection to SD card.
Definition SDLogger.cpp:37
void log_absolute_mqtt(std::string time, std::string mqtt_topic, std::string mqtt_message)
Append a line to the target csv file containing an absolute time stamp, mqtt topic,...
Definition SDLogger.cpp:161
bool exists(std::string fn)
File with name fn exists in SD card's filesystem.
Definition SDLogger.hpp:116
void set_filename(std::string)
Set the filename to write to the easiest way possible.
Definition SDLogger.cpp:59
void write_header(std::vector< std::string > fields)
Writes a header line to a file using append to prevent overwriting valuable data.
Definition SDLogger.cpp:197
Definition TimeStamp.hpp:91
Definition TimeStamp.hpp:117
#define DEBUG
Definition config.hpp:17
TimeStampParser * tsp
parses timestamp strings
Definition logging_util.cpp:53
bool logged_relative_data
relatively accurate timestamp used, last exact timestamp + # of minutes/resets elapsed
Definition logging_util.cpp:39
std::string cache_retrieve_timestamp()
Definition logging_util.cpp:173
std::string time_stamp_to_cache
the formatted timestamp to write to non-volatile memory for next reset
Definition logging_util.cpp:42
SDLogger * logger
reads and writes to files
Definition logging_util.cpp:50
std::string get_log_filename(TimeStampParser *)
Definition logging_util.cpp:134
bool logging_available
is some logging interface available?
Definition logging_util.cpp:35
void cache_timestamp(std::string timestamp)
Definition logging_util.cpp:150
TimeStampBuilder * tsb
builds timestamp strings
Definition logging_util.cpp:52
void log_to_sd_file(std::string filename, std::string time, std::string topic, std::string message)
Definition logging_util.cpp:209
void cache_log_offset(int log_offset)
Definition logging_util.cpp:160
int cache_retrieve_log_offset(void)
Definition logging_util.cpp:190
bool absolute_timestamp_available
is an exact/accurate timestamp available?
Definition logging_util.cpp:37
Preferences gator_prefs
Reference to non-volatile-storage on ESP32.
Definition main.cpp:67
bool init_data_logger()
Initialize logging interfaces.
Definition logging_util.cpp:80