#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(); }