Files
smartweatherstation_v2.0/src/log.cpp
2025-07-08 08:54:35 +08:00

61 lines
2.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "log.h"
/*
w+以纯文本方式读写而wb+是以二进制方式进行读写。
mode说明
w 打开只写文件若文件存在则文件长度清为0即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
wb 只写方式打开或新建一个二进制文件,只允许写数据。
wb+ 读写方式打开或建立一个二进制文件,允许读和写。
r 打开只读文件,该文件必须存在,否则报错。
r+ 打开可读写的文件,该文件必须存在,否则报错。
rb+ 读写方式打开一个二进制文件,只允许读写数据。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
*/
void write_log(String path,unsigned char level,String write_data)
{
#ifdef ceshi
Serial.println(write_data);
#endif
if(level > 10) {
//保存本地和同时上传云端小于10只保存本地
}
unsigned long uptime = millis();
unsigned long seconds = uptime / 1000;
unsigned long minutes = seconds / 60;
unsigned long hours = minutes / 60;
unsigned long days = hours / 24;
unsigned long years = days / 365;
seconds %= 60;
minutes %= 60;
hours %= 24;
days %= 365;
String timeString = String(years) + "-" + String(days) + "-" + String(hours) + ":" + String(minutes) + ":" + String(seconds);
write_data = timeString + ":" + write_data;
File file;
file = SD_MMC.open(path,"ab+");
file.println(write_data);
file.flush();
file.close();
}