Added CSV logging

This commit is contained in:
Ziver Koc 2014-07-31 09:53:04 +02:00
parent 319f6023e9
commit d9fac2807a
25 changed files with 200 additions and 144 deletions

View file

@ -0,0 +1,108 @@
package com.ericsson.uecontrol.gui.util;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.preference.PreferenceManager;
import android.telephony.TelephonyManager;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
/**
* Created by ezivkoc on 2014-07-30.
*/
public class CSVWriter {
public static final String[] HEADINGS = new String[]{
"Timestamp", "Behaviour", "RX Throughput(b/s)", "TX Throughput(b/s)", "RAT"
};
public static final String DELIMITER = ",";
protected static final SimpleDateFormat fileDateFormater = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
protected static final SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
private File file;
private NetworkInfo netInfo;
private WifiInfo wifiInfo;
private TelephonyManager telMan;
public CSVWriter(Context context){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
file = new File(
prefs.getString("logging_path", "/sdcard/uecontrol/"),
"log_"+fileDateFormater.format(System.currentTimeMillis())+".log");
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
netInfo = cm.getActiveNetworkInfo();
WifiManager wm = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiInfo = wm.getConnectionInfo();
telMan = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
// Write Headings
StringBuilder line = new StringBuilder();
for(String header : HEADINGS){
line.append(header).append(DELIMITER);
}
file.delete();
file.getParentFile().mkdirs();
writeLine(line.toString());
}
public void write(String behaviour){
StringBuilder line = new StringBuilder();
line.append(getTime()).append(DELIMITER);
line.append(behaviour).append(DELIMITER);
line.append(DELIMITER);
line.append(DELIMITER);
line.append(getRat()).append(DELIMITER);
writeLine(line.toString());
}
public void write(String behaviour, double down, double up){
StringBuilder line = new StringBuilder();
line.append(getTime()).append(DELIMITER);
line.append(behaviour).append(DELIMITER);
line.append(down).append(DELIMITER);
line.append(up).append(DELIMITER);
line.append(getRat()).append(DELIMITER);
writeLine(line.toString());
}
protected void writeLine(String line){
try{
PrintWriter out = new PrintWriter(new FileOutputStream(file, true));
out.println(line);
out.close();
} catch(IOException e){
e.printStackTrace();
}
}
protected String getRat(){
if(netInfo.getType() == ConnectivityManager.TYPE_MOBILE){
switch(telMan.getNetworkType()){
case TelephonyManager.NETWORK_TYPE_GPRS: return "GPRS";
case TelephonyManager.NETWORK_TYPE_EDGE: return "EDGE";
case TelephonyManager.NETWORK_TYPE_UMTS: return "UMTS";
case TelephonyManager.NETWORK_TYPE_HSPA: return "HSPA";
case TelephonyManager.NETWORK_TYPE_LTE: return "LTE";
}
}
return netInfo.getTypeName();
}
protected String getTime(){
return dateFormater.format(System.currentTimeMillis());
}
}