diff options
author | PA4WDH | 2023-05-27 11:20:22 +0200 |
---|---|---|
committer | PA4WDH | 2023-05-27 11:20:22 +0200 |
commit | b80926797863c5a36417eb44a34483bb93610b79 (patch) | |
tree | 1a5026e03db338b86671ffe8d556fb57cb3529f0 | |
parent | Use CPU Transition Latency as checkdelay when setting new scaling_max_freq (diff) | |
download | cputemp2maxfreq-b80926797863c5a36417eb44a34483bb93610b79.tar.gz cputemp2maxfreq-b80926797863c5a36417eb44a34483bb93610b79.tar.bz2 cputemp2maxfreq-b80926797863c5a36417eb44a34483bb93610b79.zip |
Add feature to use unixtime timestamps in logs and CSV
-rw-r--r-- | argparse.c | 9 | ||||
-rw-r--r-- | cputemp2maxfreq.c | 2 | ||||
-rw-r--r-- | cputemp2maxfreq.h | 1 | ||||
-rw-r--r-- | logger.c | 38 |
4 files changed, 36 insertions, 14 deletions
@@ -32,7 +32,9 @@ void printhelp() "-s <step> Step size in Khz when increasing/decreasing CPU speed\n" " Default: %ld\n" "-t <number> Temperature limit\n" - " Default: %ld\n", + " Default: %ld\n" + "-u Use unixtime timestamps in log and CSV outputs\n" + " Default timestamp format is: YYYY-MM-DD HH:MM:SS\n", config.name,config.fallback_freq,config.governor,config.temp_input,config.logger_name, config.interval,config.freq_step,config.max_temp/1000 ); @@ -59,7 +61,7 @@ void argparse(int argc, char **argv) memcpy(&userconfig,&config,sizeof(struct s_config)); // Parse options - while((opt=getopt(argc,argv,"c:C:f:g:hi:l:mp:s:t:"))!=-1) + while((opt=getopt(argc,argv,"c:C:f:g:hi:l:mp:s:t:u"))!=-1) { DEBUG1_ARGPARSE("Argument: %c Value: %s\n",opt,optarg); switch(opt) @@ -99,6 +101,9 @@ void argparse(int argc, char **argv) case 't': userconfig.max_temp=strtoll(optarg,NULL,10)*1000; break; + case 'u': + userconfig.use_unixtime=1; + break; default: printhelp(); exit(1); diff --git a/cputemp2maxfreq.c b/cputemp2maxfreq.c index 9600d13..887a406 100644 --- a/cputemp2maxfreq.c +++ b/cputemp2maxfreq.c @@ -28,6 +28,7 @@ struct s_config config={ "", // CSV logfile 0, // Don't overwrite CSV logfile NULL, // File handler for CSV file + 0, // Don't use unix timestamps in log outputs }; struct s_cpudata cpudata; @@ -62,6 +63,7 @@ int main(int argc,char **argv) config.logger("CSV Log file: %s",config.csvlog); config.logger("Overwrite CSV log: %d",config.csvoverwrite); } + config.logger("Use unix timestamps: %d",config.use_unixtime); if ((config.max_temp<VALID_TEMP_MIN) || (config.max_temp>VALID_TEMP_MAX)) { diff --git a/cputemp2maxfreq.h b/cputemp2maxfreq.h index 31f6da1..afce5ca 100644 --- a/cputemp2maxfreq.h +++ b/cputemp2maxfreq.h @@ -44,6 +44,7 @@ struct s_config { char csvlog[255]; // CSV logfile char csvoverwrite; // Overwrite CSV file if it already exists FILE *csvfile; // File handle for CSV file + char use_unixtime; // Use unixtime timestamps in logs and CSV }; #endif @@ -21,14 +21,21 @@ void logger_none(char *format,...) { } void logger_stdout(char *format,...) { va_list args; - struct timeval unixtime; - struct tm *time; + struct timeval systime; + struct tm *systime_tm; char timestring[255]; + time_t unixtime; - gettimeofday(&unixtime,NULL); - time=localtime(&unixtime.tv_sec); - strftime(timestring,255,"%F %T",time); - printf("%s: ",timestring); + if (config.use_unixtime==0) + { + gettimeofday(&systime,NULL); + systime_tm=localtime(&systime.tv_sec); + strftime(timestring,sizeof(timestring),"%F %T",systime_tm); + printf("%s: ",timestring); + } else { + unixtime=time(NULL); + printf("%ld: ",unixtime); + } va_start(args,format); vprintf(format,args); @@ -109,17 +116,24 @@ void csvlog_init() // Write a single line of CSV data void csvlog_write() { - struct timeval unixtime; - struct tm *time; + struct timeval systime; + struct tm *systime_tm; char timestring[255]; + time_t unixtime; DEBUG1_LOG("Writing data series to CSV file\n"); - gettimeofday(&unixtime,NULL); - time=localtime(&unixtime.tv_sec); - strftime(timestring,255,"%F %T",time); + if (config.use_unixtime==0) + { + gettimeofday(&systime,NULL); + systime_tm=localtime(&systime.tv_sec); + strftime(timestring,sizeof(timestring),"\"%F %T\"",systime_tm); + } else { + unixtime=time(NULL); + snprintf(timestring,sizeof(timestring),"%ld",unixtime); + } - fprintf(config.csvfile,"\"%s\",\"%ld\",\"%ld\",\"%ld\",\"%ld\",\"%ld\",\"%ld\"\n",timestring,cpudata.min_freq,cpudata.max_freq,cpudata.cur_freq,cpudata.cur_temp/1000,config.max_temp/1000,cpudata.scale_max); + fprintf(config.csvfile,"%s,\"%ld\",\"%ld\",\"%ld\",\"%ld\",\"%ld\",\"%ld\"\n",timestring,cpudata.min_freq,cpudata.max_freq,cpudata.cur_freq,cpudata.cur_temp/1000,config.max_temp/1000,cpudata.scale_max); } // Close the CSV file |