diff options
| author | Nikolaus Gotsche <n@softwarefools.com> | 2015-12-15 02:51:48 +0100 |
|---|---|---|
| committer | Nikolaus Gotsche <n@softwarefools.com> | 2015-12-15 02:51:48 +0100 |
| commit | 6414c77eb952d1c20bdd177199b5685a775b1680 (patch) | |
| tree | c2f35ceca9a6548c88ce53f56c253947ca674032 /app/src/main | |
| parent | 4c0b1a84b7cf04a0506491112d4edb17f9721351 (diff) | |
SaveTask (still UC)
DataAnalyse( UC)
(Menu Still on first Create in Systemlanguage)
Diffstat (limited to 'app/src/main')
4 files changed, 152 insertions, 33 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 25ba337..7fcabb9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,11 +2,12 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.softwarefools.spiritlevel" android:versionCode="2" - android:versionName="1.0.2" > + android:versionName="1.0.2.1" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="23" /> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true" diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/AnalyseData.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/AnalyseData.java new file mode 100644 index 0000000..506da8f --- /dev/null +++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/AnalyseData.java @@ -0,0 +1,80 @@ +package com.softwarefools.nik.spiritlevel; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.util.DisplayMetrics; + +import java.util.Vector; + +/** + * Created by nick on 14.12.15. + */ +public class AnalyseData { + private Vector<nikVector> magnetData; + private Vector<nikVector> accelData; + private Vector<nikVector> graviData; + + private Canvas analcanvas; + private boolean allset; + + private Paint paintMagVector; + private Paint paintAccVector; + private Paint paintGravVector; + + private Paint paintAxisLines; + private Paint paintAxisHelpLines; + + private Paint paintTexts; + + private Context myContext; + private static int displaywidth; + private static int displayheight; + + private float vectWidth =14; + private float textSize=40; + private float textDist=5; + private float margin=100; + private float margin2=20; + private float axisHeight=10; + + public void AnalyseData(Context cont){ + this.allset=false; + analcanvas = new Canvas(); + this.myContext=cont; + DisplayMetrics metrics = myContext.getResources().getDisplayMetrics(); + displaywidth = metrics.widthPixels; + displayheight = metrics.heightPixels; + + paintAccVector= new Paint(); + paintGravVector= new Paint(); + paintMagVector= new Paint(); + paintAxisLines= new Paint(); + paintAxisHelpLines= new Paint(); + paintTexts= new Paint(); + + margin=displayheight/10; + margin2=margin/10; + textSize=displayheight/27; + textDist=textSize/8; + vectWidth=displayheight/72; + axisHeight=(displayheight-margin*4-margin2*6)/9; + + } + public void setMagnetData(Vector somevect){ + this.magnetData = somevect; + } + public void setAccelData(Vector somevect){ + this.accelData= somevect; + } + public void setGraviData(Vector somevect){ + this.graviData = somevect; + } + + public Canvas getFilledCanvas(){ + + + + return this.analcanvas; + } +} diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java index 14746d4..a0ba62b 100644 --- a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java +++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java @@ -1,6 +1,8 @@ package com.softwarefools.nik.spiritlevel; +import java.io.File; import java.io.FileOutputStream; +import java.io.FileWriter; import java.sql.Array; import java.text.DecimalFormat; import java.text.SimpleDateFormat; @@ -22,12 +24,14 @@ import java.util.Set; import java.util.TimeZone; import java.util.Vector; +import android.graphics.Canvas; import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; +import android.os.Environment; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; import android.provider.Settings; @@ -76,6 +80,8 @@ public class LevelActivity extends Activity implements MySensorListener{ private LevelView levelView; private AppPreferences myprefs; + //private ArrayList<nikVector> accelvector; + private Vector<nikVector> accelvector; private Vector<nikVector> gravvector; private Vector<nikVector> magvector; @@ -307,13 +313,10 @@ public class LevelActivity extends Activity implements MySensorListener{ Log.d(TAG,"AccelerationVect Size:"+accelvector.size()); Log.d(TAG,"GravityVect Size:"+gravvector.size()); Log.d(TAG,"MagneticVect Size:"+magvector.size()); - //new ProcessData().execute(gravvector,accelvector,magvector); - new ProcessData().execute(accelvector); + new ProcessData().execute(gravvector,accelvector,magvector); + //new ProcessData().execute(accelvector); + - //dump the vectors - accelvector.clear(); - gravvector.clear(); - magvector.clear(); return true; case R.id.action_exit: @@ -627,7 +630,7 @@ private void restartTTS(){ long offset = rightNow.get(Calendar.ZONE_OFFSET) + rightNow.get(Calendar.DST_OFFSET); - return rightNow.getTimeInMillis()+offset; + return rightNow.getTimeInMillis();//+offset; } public void exitAll(){ @@ -661,46 +664,50 @@ private void restartTTS(){ } private class ProcessData extends AsyncTask<Vector<nikVector>, Float, Integer> { - + private String filename="newfile"; @Override protected Integer doInBackground(Vector<nikVector>... vects) { String printout=""; - String filename="newfile"; - FileOutputStream outputStream; + + //FileOutputStream outputStream; + //ArrayList<nikVector> currentAL=new ArrayList<nikVector>(); int count = vects.length; int totalSize = 0; Log.i(TAG,"LevelActivity.AsyncTask.ProcessData() for "+count+"Vectors"); filename=getDateCurrentTimeZone(getTime())+".csv"; + + File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), filename); + + //FileOutputStream outputStream = new FileOutputStream(file); + //printout=makeReadable(gravvector); + //totalSize += gravvector.size(); /* for (int i = 0; i < count; i++) { - totalSize += vects[i].size(); + + //currentAL=vects[i]; + totalSize +=vects[i].size(); publishProgress((float) ((i / (float) count))); // 0.2 // Escape early if cancel() is called if (isCancelled()) break; - String timeline=""; - String xline=""; - String yline=""; - String zline=""; - - for(int j=0;j<vects[i].size();j++){ - timeline+=vects[i].get(j).getT()+","; - xline+=vects[i].get(j).getX()+","; - yline+=vects[i].get(j).getY()+","; - zline+=vects[i].get(j).getZ()+","; - } - printout+=timeline+"\n"+xline+"\n"+yline+"\n"+zline+"\n\n"; + printout+=makeReadable(vects[i]); + + //FileOutputStream stream = new FileOutputStream(file); try { - outputStream = openFileOutput(filename, getApplicationContext().MODE_WORLD_WRITEABLE); - outputStream.write(printout.getBytes()); - outputStream.close(); - } catch (Exception e) { - e.printStackTrace(); + FileWriter fwr = new FileWriter(file); + fwr.write(printout); + fwr.close(); + } catch (Exception e) { + Log.e(TAG, "Failed to Write to File:"+filename,e); } } Log.i(TAG,"LevelActivity.AsyncTask.ProcessData() of "+totalSize+"Totalsize"); + + + + return totalSize; @@ -714,7 +721,13 @@ private void restartTTS(){ // might want to change "executed" for the returned string passed // into onPostExecute() but that is upto you //beLoud(getBaseContext().getString(R.string.action_savedata)); - Toast.makeText(getBaseContext(), getBaseContext().getString(R.string.action_savedata), Toast.LENGTH_LONG).show(); + /*for (int i = 0; i < vects.length; i++) { + vects[i].clear(); + }*/ + accelvector.clear(); + magvector.clear(); + gravvector.clear(); + Toast.makeText(getBaseContext(),result+"Sets of"+ getBaseContext().getString(R.string.action_savedata), Toast.LENGTH_LONG).show(); } @@ -724,5 +737,27 @@ private void restartTTS(){ @Override protected void onProgressUpdate(Float... values) {} } + public Canvas getDataDrawn(Vector<nikVector> v){ + Canvas mycan=new Canvas(); + + return mycan; + } + public String makeReadable(Vector<nikVector> v){ + String timeline=""; + String xline=""; + String yline=""; + String zline=""; + String printout=""; + + for(int j=0;j<v.size();j++){ + timeline+=v.get(j).getT()+","; + xline+=v.get(j).getX()+","; + yline+=v.get(j).getY()+","; + zline+=v.get(j).getZ()+","; + } + printout+=timeline+"\n"+xline+"\n"+yline+"\n"+zline+"\n\n"; + + return printout; + } } diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/nikVector.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/nikVector.java index a95e7f9..afd6411 100644 --- a/app/src/main/java/com/softwarefools/nik/spiritlevel/nikVector.java +++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/nikVector.java @@ -9,6 +9,7 @@ public class nikVector { private double x; private double y; private double z; + private static String name; public void nikVector(){ //get current timestamp @@ -25,6 +26,9 @@ public class nikVector { this.z=c; } + public void setName(String in){ + this.name=in; + } public void setVector(long ts,double a, double b , double c){ this.t=ts; this.x=a; @@ -32,9 +36,8 @@ public class nikVector { this.z=c; } - public long getT(){ - return this.t; - } + public String getName() { return this.name; } + public long getT() { return this.t; } public double getX(){ return this.x; } |
