rk3399_arm_lvds/small_lcd/app_spi_lcd/filetools.h

76 lines
1.7 KiB
C
Raw Permalink Normal View History

2024-03-05 03:46:18 +00:00
#pragma once
#include <vector>
#include <fstream>
#include <time.h>
#include <sstream>
#include <chrono>
class FileTools
{
private:
std::string mPath;
public:
FileTools(std::string path){
mPath = path;
}
void createLog(std::string log)
{
time_t now = time(0);
tm *ltm = localtime(&now);
char loc_date[30];
sprintf(loc_date, "%d%02d%02d %d:%d:%d", 1900 + ltm->tm_year, 1 + ltm->tm_mon, ltm->tm_mday,ltm->tm_hour, ltm->tm_min, ltm->tm_sec);
std::ofstream ofs(mPath);
ofs << loc_date << ": " << log << std::endl;
ofs.close();
}
void appendLog(std::string log, bool printTime = true)
{
std::ofstream ofs(mPath, std::ios::app);
if(printTime){
time_t now = time(0);
tm *ltm = localtime(&now);
char loc_date[30];
sprintf(loc_date, "%d%02d%02d %d:%d:%d", 1900 + ltm->tm_year, 1 + ltm->tm_mon, ltm->tm_mday,ltm->tm_hour, ltm->tm_min, ltm->tm_sec);
ofs << loc_date << ": " << log << std::endl;
}else{
ofs << " " << log << std::endl;
}
ofs.close();
}
};
class StopWatch
{
public:
StopWatch() {
_start = std::chrono::steady_clock::now();
}
void reset() {
_start = std::chrono::steady_clock::now();
}
double elapsed_s() {
return std::chrono::duration<double>(std::chrono::steady_clock::now() - _start).count();
}
double elapsed_ms() {
return std::chrono::duration<double, std::milli>(std::chrono::steady_clock::now() - _start).count();
}
double elapsed_us() {
return std::chrono::duration<double, std::micro>(std::chrono::steady_clock::now() - _start).count();
}
double elapsed_ns() {
return std::chrono::duration<double, std::nano>(std::chrono::steady_clock::now() - _start).count();
}
private:
std::chrono::steady_clock::time_point _start;
};