package lu.fisch.canze.classes; import android.content.res.Resources; import android.os.Environment; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale; import lu.fisch.canze.R; import lu.fisch.canze.activities.MainActivity; import static lu.fisch.canze.activities.MainActivity.debug; /** * Created by Chris Mattheis on 03/11/15. * don't use yet - still work in progress */ public class FieldLogger { /* **************************** * Singleton stuff * ****************************/ private static FieldLogger instance = new FieldLogger(); private FieldLogger() {} public static FieldLogger getInstance() { return instance; } /* **************************** * Datalogger stuff * ****************************/ private File logFile = null; private SimpleDateFormat sdf = new SimpleDateFormat(MainActivity.getStringSingle(R.string.format_YMDHMS), Locale.getDefault()); private boolean isCreated() { return (logFile!=null); } private boolean createNewLog() { boolean result = false; //debug(this.getClass().getSimpleName()+": create new field logfile"); // ensure that there is a CanZE Folder in SDcard String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/CanZE/"; //debug(this.getClass().getSimpleName()+": file_path:" + file_path); File dir = new File(file_path); if (!dir.exists()) { dir.mkdirs(); //debug(this.getClass().getSimpleName()+": SDcard dir CanZE created"); } String exportdataFileName = file_path + "field-" + sdf.format(Calendar.getInstance().getTime()) + ".log"; logFile = new File(exportdataFileName); if (!logFile.exists()) { try { logFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { //BufferedWriter for performance, true to set append to file flag BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(logFile, true)); // set global static BufferedWriter dataexportStream later //if (true) { // bufferedWriter.append("this is just a test if stream is writeable"); // bufferedWriter.newLine(); // bufferedWriter.close(); //} bufferedWriter.close(); result = true; log("time,SID,value"); } catch (IOException e) { e.printStackTrace(); } return result; } /** * Appends a line of text to the log file * @param text the text line. A CR will be added automatically */ public void log(String text) { if(logFile==null) createNewLog(); try { BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(logFile, true)); bufferedWriter.append(sdf.format(Calendar.getInstance().getTime())+","+text+"\n"); bufferedWriter.close(); } catch (IOException e) { e.printStackTrace(); } } }