From a267861c201eeb2dc0dfe78b05e0f8ac70d32f15 Mon Sep 17 00:00:00 2001 From: joey van der bie Date: Sat, 7 Jun 2014 11:35:01 +0200 Subject: [PATCH 01/16] Improved looks of the app --- .classpath | 4 +- AndroidManifest.xml | 2 +- libs/GraphView-3.1.1.jar | Bin 48874 -> 0 bytes libs/graphview-3.1.jar | Bin 0 -> 27381 bytes res/layout/main.xml | 73 ++++++++---------- .../heart_rate_monitor/HeartRateMonitor.java | 70 +++++++++-------- 6 files changed, 72 insertions(+), 77 deletions(-) delete mode 100644 libs/GraphView-3.1.1.jar create mode 100644 libs/graphview-3.1.jar diff --git a/.classpath b/.classpath index 7bc01d9..5176974 100644 --- a/.classpath +++ b/.classpath @@ -1,9 +1,9 @@ - - + + diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 0313e2c..7cbcbe4 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,7 +16,7 @@ android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> + android:screenOrientation="portrait"> diff --git a/libs/GraphView-3.1.1.jar b/libs/GraphView-3.1.1.jar deleted file mode 100644 index 94333ec263bfddeaab4a276646d773e4701c7c5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48874 zcmb4qbCBfCwrx+_wr$(fcK5Wq+O|Dy+cu_c+qP|M+BV*N=e)QF@y>nsR#g5`Q4#g4 zow?Rtd#}utmj(ev1%iZx1VWSv76$sK7b*}akgTY(Af2R~7=x^!oTQkjk}|!l*yk7! z(4FkWxQsL%{Vbd`9re`2biE?u0?W?f-XSoMyfg%4oe%IO&Yz#c`ZMJJ>j7{uApi0J z@;~1i+FCPMSlAk~voe@E=-ZjOm>at?2sxWu8426kn3$W=8(Qf*ItE2|%Jnm%22ERk z5*DzcqO%Wx!U6~ffDO!E)QK^DVXfpW6vb_{3MJj>$w|TSeM5vegZ-iopR*lfs=KDE zpAdkCSDbCK z|C1TD(09>SiDE+VXG8^m`V6-<@f~bIgg|10AIl5a&*!zcnMF2Z8+zUzoXxm$P>;qz>3yQPgFL z^-d0k&#^}1QMhEW4v5t%VFM&B-K^Ems+OWrpy3eLQ0;KW3gKpo4yR`H!HewurkpVG z^@7E9e(w3H>A3m&{o3VeuRB*b2m~(2x_HXD+n(~_d3$^EdBFGee(!-u>8YxyjZMv9 zX%L1$c2m;M)Lv>F53}zq$%_t7{Mz!}6`G@=aHG{| zjiT}j(JBXGJ*xqwV?*(U7{~$1#;0jy(it-q%0D!ESd0!>zi&WN%3sHt+EL5^`Jsb( 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�f)n6A(Q5Xdr?`uC+m*xBjn!Sy^Nz06 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�P&iwHB)lg&Uv@WuxNWR?h`~Eemy)=5 z)qXOR;OTut>58r9)nKM~;Wa{6bVEXUYr->vDpM!=QVe0vIbgJZG`$Mn!P>cwsFAx- z0UdFy$ofPp!=pOEH9@e&Xc{M|;zeSd$!L)n6Qcjmtv=MXgjWs(Uef)D=x?a1`lo9( z*X3phW22Sx;Y}^Q$}54;$F?nsqj*7xtJyu%Z`&)N^Nx>IQB@OczYSryPPy^Ax43sT zZ06UEY*P__?R*_OXu@Q9V}fjN)rmh#x_$eCRgksPf0Y+s{DkjYX}fJOF6XhCU(Kde zIleGQ$ts{@!8@vO9ZHU=a)LlxI;ucfe8v+%%8_T7uqtsj$|XnIJ*tY$=lo3<&GjH# zKT9#x)C5TwFu_RYE}W?SmbcGUtOrUai0xETGOsctdYk*0c-Si02*58=<1DlOiZLP3 zJ35OTOFo$DyE}eGa!!$C`gWCSEEY{W)%eQ3h)n0&P|c@M=W<9%opJkE;>!{~F1mI2 zP2m$93gh6Ej~rEZ)JnJ|jDVjJxlt^9`2_vodZ<{?oLD(^1N-d6r!zHL{TCOIb*`g* z7P45vV(7tm@3>_8&6>)7(RPexVPG02(In_ww_St@*luVt2EgS9<#ggfe3iB<1wczw_jKx~OzFsRv#YJ4n5)AzO#HJclhfh&1NCf&rw zmT`q|D-R2Uns1)G)GEpJO6*0}Iui5FjtUEI{irM%+69r&R22zEz+j*1qFj2&|J~iEx(T-DffNHdq`l za#9Vqhg)76dJPuyJnnq4U7TM;!<($^ZjYazPtgnc3!!;>#zXSo2sIwirCDE+?*P6X z(~f9ofQ&%)!2yncVvfEx`{p!ROUn81@&V+jqwY1^NjbUXBgB4O_ydrG- zXoas~_vBtbEs#tWPuaU6_o3r_1y<-kv-*6UZ1#?PGdVorjpB(Ab?FWMI2I*X#22$a zY$vSyOTd7@pN&NiBwTw#Crcw6Q+g#+LmOpdLmN|Z)3;8}jt~42CsSjmH;(^84^*iP zJOK4Dc;f?VC1uedDiv@gEP_guv7{kGU;Yy53)cjZY1+?o=`1qQAkQO zPzaCZ&kGL1yV>LhV}ZQphiM*LH+;8uJ=1T%?AC*PF*ds z;r!%@o6jiKhdr#qKMbWLiGcBS1Cp$YP!}vR#TaUAH{$_!=gO92JFE9Ec*|A^`E2?a z(3)WZQo@Jd^v>9WWe%olGw-i6RD)*qvGF$tOXGHw#)nEI^~LrOkM<~0UCRq_wGl!2 zj-tqjpJda7)N-=nAkp1(9lAx3O@o|tmBU}}hHv{XRm18zqL~6~Fm~-u1is((CWmq{ znP}kQO`PxwUo%bKCo$1ZY8yA0SDjd)F(%>Y)^NxP$Rm=e~9ukPPRvRXK_#8 z98A2d=HL1*GQpwaZ!==fe{wJ+ zyYNX)(Jpn7w8RdiuT5_6fy}en*NjxnzXXwDM$)ZIy>evT8d;?-#u;44EkRGoif8#= z8WXOHI*(;&`j-D6eb7S55P9n;Ko+gMOfErWDeqF zHgD!kIvO1Qy1eWS;pP_<$l0zueKg;cL0?m|ADsmo1tUc;UxXN-7@Sf0Bky>w{6N&WBmE&^|8e??0c?2G$VwEfYWe+_!DLcQ#v$gnpw74P26Z_h za5U)g#I)Y1A2+Uk)}=>D3Nea)z+s-iq1l%XyEl-R{) z2|)qSp)RND%}m2r(AIYx{xuofnsp*rQw)bTw2X4d)vkT28p>!_h%U)PE9BhGP+(ka z;QXyoZWB&G-U%MoA?nh->m}_1sZAcEw8lp>fGX-QQAyJK^4=4RlkYy}IEkA>Klw|K z?^pfNG34w|@V;!>hxR~7XZoSB*@MheNjb0_Of5889Q5; zBkj>jM|`$#aR3XmN3YSS=})Hq5vh}*|55SFD&6b23jP>hd;7>OUz zDp$h=z$yCTaz=NkCGQyWR56ZsLL($lc@UBLXejlE#|o|5~fC4`Xqz{$fSKJ0@y_%`~;TI3%#2U zTYddXf7!QRIXgsuHz_5_1uZtD@jH7JxFWF?<-r}e<9xhk==ZpU7zr5T%??P?HbaNV z3grUMy%#}ifa&Dq&%(40!;Q~Que|>U^2#oP=ELyA1@rt%R0G%l@sj?(8(2+O8C@Ol z9vRLip{nqSKZ-P-9{|4Vh@94taX&v5$zmR)Hwn_aaCKXcn83-C zGoRc2fPJTE`>~=y$R~hH&LcLB_o#<+#C>VIvBCTPV($oSc%2*C8A6!T`gL8s)h>2$ zoVzwnNfF+SSX_7Z79bp&7c^uEeV4E2*k8?;&;4$=%m!M}cT3e)R~n0j`D2=%PM+>c zZLxKr6&ytD`QdRw>lo{zW?3S^mUGWg%4p-tWtf4sJ{JK#+ zN|y6hpb9n48m8uwRH#V?o8%y75`(VslsXgbZnP0IE+-1{&8tqyJpKURjG{6%+MNlr zJZ9U3+H$*3H(OACIa6^2Vqmh=$eEf%sC%gh#3Z8!q>{anXy4ROa-fUhqu^O=(HXTy zrN}XR>~#b*tM?@jq3sL8w=}u(ejxs}w{VA$ZQfhT`-Vr;& zzM9h{gFDF$qZ5I~-97CmwJ(OxXz(~b|3+s|3ME&lfC`@_E>KKcah|R?2J~XQp$;!5 zk^^t1DcA0x8epWIxac1Q$21JUAcKnfhU#B5ElxeW+9(k6$#G0cr>rS~8i1C3JyJ#L z-c+!Lu5${cER8cxYVvR(zI?BuMwZuJ>t_hv$dUdN=JORsBk+ZcmvNlf(4eBOxvS02 z@_cg>h2#+{=7k09YLI|5YhEA&MNC-F`q=ee4RbswRq;BlESr2>03=dZpg7vAmGC{P z-aSvm=~hyXzMo4E&KTk&Rc+tYS&64<50Gp^O|OfL4;vK^?Nkq3t&Sw#FgI3_q3gSy zM-7`Yn z9Ss`tZ8)XOVzYI$9pFI@neYCu(K%pF+N5r=9w5+&># zE!We#%B!fe#6>)m9&v!T)vv|IOn-p|<1t0&zH5vIs8G3jJ>^(3fJDKsFq^iCT?i&5s*cZTiRl; zCGdVRpS1Ocw!X2L71_3Sdh7DedTL;HmdG5zS3-Y^^#X;>?W}EIh@m;u#3hT*(YHDJ zE7ZEJAQvQp@B7^xW1q``uMQWSDa^5Zv19CjkAw@I*!<|qsN_WzEl>^vcauuj%Oje8 zJ0n@3#Q0htaKu$=?mK)PqgzuOqQE1@2to!w9J7d8M4k>?6Yw9FSo)66*DS&Aj$;w8 zn%f~b8~oYs4;`bC4qZ@wSbDVfP8AmfYb!NsFVUKLZ;KVP#bY8woK7rwM>SjsN-%-;LTr0N+EH=J1 z0Q6Y0o$9&l;}8-h{Xm)RvVha81-tgW@d?4@IPl#hy=fD7>K4Y>9BqJ9bU?pEz*blh zT?s@e@Q-nUNXd3inbL-0^;ceK4qmW>2)gB2+*$B^-@LjLkkE4!f_}iSviT zINuafI2(DHf_vPRwITw|UtD63ZP6tClb6Z<<1LS4mPnIx4b*6dm92ds9hQRM=PxFb zOCZWaB=@j496>m}VQce2-QNEg#+R!$t@Iye#WRG*nGqZU1MKOXjpqksJf5@hpY~^` zZai0cJWS&`!5jD=5{7>^IsC!V8o#SPhc-Xbzn=`|A+q_y13UhmMEP45`0vi113Vu& z&`)Lw|KBWD+-@X z<)O>}w{D)wp?}wZUd#Acbo*oiw12Drze;d_SASmm@t>`SeCYXq)A~QCj{IH!c?y^8 zsp$`|nArYK|Bvte=ZTod)bEq^EB%S$|4sz|-puEbwZN0&!z;Ci;N}l6!^4OFZARyJ zZ_lHu$7ub@<~0BB-v0P|yG~0CRr<24-gb`0jrIlO%`v literal 0 HcmV?d00001 diff --git a/res/layout/main.xml b/res/layout/main.xml index 985fc99..01f311b 100644 --- a/res/layout/main.xml +++ b/res/layout/main.xml @@ -1,46 +1,37 @@ - - - - - - - - - + android:id="@+id/layout" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:orientation="vertical" + android:background="@android:color/white" > + + + + - - + android:layout_height="wrap_content" > - - + + + + + \ No newline at end of file diff --git a/src/com/jwetherell/heart_rate_monitor/HeartRateMonitor.java b/src/com/jwetherell/heart_rate_monitor/HeartRateMonitor.java index cd48c36..3efd954 100644 --- a/src/com/jwetherell/heart_rate_monitor/HeartRateMonitor.java +++ b/src/com/jwetherell/heart_rate_monitor/HeartRateMonitor.java @@ -1,32 +1,30 @@ package com.jwetherell.heart_rate_monitor; import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; import java.util.concurrent.atomic.AtomicBoolean; +import org.apache.commons.collections4.queue.CircularFifoQueue; +import org.apache.commons.lang3.ArrayUtils; + import android.app.Activity; import android.content.Context; -import android.content.ContextWrapper; import android.content.res.Configuration; +import android.graphics.Color; import android.hardware.Camera; import android.hardware.Camera.PreviewCallback; import android.os.Bundle; -import android.os.Environment; import android.os.PowerManager; import android.os.PowerManager.WakeLock; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; -import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; + import com.jjoe64.graphview.GraphView; import com.jjoe64.graphview.GraphViewSeries; +import com.jjoe64.graphview.GraphViewSeries.GraphViewSeriesStyle; import com.jjoe64.graphview.LineGraphView; -import org.apache.commons.collections4.queue.CircularFifoQueue; -import org.apache.commons.lang3.ArrayUtils; /** @@ -43,7 +41,7 @@ public class HeartRateMonitor extends Activity { private static SurfaceView preview = null; private static SurfaceHolder previewHolder = null; private static Camera camera = null; - private static View image = null; +// private static View image = null; private static TextView text = null; private static WakeLock wakeLock = null; @@ -100,7 +98,7 @@ public void onCreate(Bundle savedInstanceState) { previewHolder.addCallback(surfaceCallback); previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); - image = findViewById(R.id.image); +// image = findViewById(R.id.image); text = (TextView) findViewById(R.id.text); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); @@ -109,11 +107,11 @@ public void onCreate(Bundle savedInstanceState) { this.graphView = new LineGraphView( this // context - , "GraphViewDemo" // heading + , "Heart rate" // heading ); graphView.setScrollable(true); - this.exampleSeries = new GraphViewSeries(new GraphView.GraphViewData[] {}); + this.exampleSeries = new GraphViewSeries("Heart rate", new GraphViewSeriesStyle(Color.RED, 8), new GraphView.GraphViewData[] {}); this.graphView.addSeries(this.exampleSeries); // this.graphView.addSeries(new GraphViewSeries(new GraphView.GraphViewData[] { // new GraphView.GraphViewData(1, 2.0d) @@ -121,11 +119,17 @@ public void onCreate(Bundle savedInstanceState) { // , new GraphView.GraphViewData(3, 2.5d) // , new GraphView.GraphViewData(4, 1.0d) // })); // data - graphView.setViewPort(0,20); + graphView.setViewPort(0,60); + graphView.setVerticalLabels(new String[]{""}); + graphView.setHorizontalLabels(new String[]{""}); + graphView.getGraphViewStyle().setVerticalLabelsWidth(1); + graphView.setBackgroundColor(Color.WHITE); + LinearLayout layout = (LinearLayout) findViewById(R.id.graph1); layout.addView(graphView); } + /** * {@inheritDoc} @@ -145,16 +149,15 @@ public void onResume() { wakeLock.acquire(); camera = Camera.open(); - startTime = System.currentTimeMillis(); - File file = new File(this.getFilesDir(), "data.txt"); - try { - out = new BufferedWriter(new FileWriter(file)); - } catch (IOException e) { - Log.e(TAG,"unexpected Error", e); - e.printStackTrace(); - } +// File file = new File(this.getFilesDir(), "data.txt"); +// try { +// out = new BufferedWriter(new FileWriter(file)); +// } catch (IOException e) { +// Log.e(TAG,"unexpected Error", e); +// e.printStackTrace(); +// } metronome = new Metronome(this); metronome.start(); @@ -174,11 +177,11 @@ public void onPause() { camera.stopPreview(); camera.release(); camera = null; - try { - out.close(); - } catch (IOException e) { - e.printStackTrace(); - } +// try { +// out.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } bpm = -1; } @@ -202,11 +205,11 @@ public void onPreviewFrame(byte[] data, Camera cam) { int imgAvg = ImageProcessing.decodeYUV420SPtoRedAvg(data.clone(), height, width); - try { - out.write(imgAvg + ","); - } catch (IOException e) { - e.printStackTrace(); - } +// try { +// out.write(imgAvg + ","); +// } catch (IOException e) { +// e.printStackTrace(); +// } sampleQueue.add((double)imgAvg); timeQueue.add(System.currentTimeMillis()); @@ -245,7 +248,7 @@ public void onPreviewFrame(byte[] data, Camera cam) { bpm = Math.round((float)(bestI * Fs * 60 / sampleSize)); bpmQueue.add(bpm); - text.setText(String.valueOf(bpm) + "," + String.valueOf(Math.round((float) Fs))); + text.setText(String.valueOf(bpm));// + "," + String.valueOf(Math.round((float) Fs))); counter++; exampleSeries.appendData(new GraphView.GraphViewData(counter, imgAvg), true, 1000); @@ -353,7 +356,7 @@ public void surfaceCreated(SurfaceHolder holder) { @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { Camera.Parameters parameters = camera.getParameters(); - parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); + parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); Camera.Size size = getSmallestPreviewSize(width, height, parameters); if (size != null) { parameters.setPreviewSize(size.width, size.height); @@ -390,4 +393,5 @@ private static Camera.Size getSmallestPreviewSize(int width, int height, Camera. return result; } + } From 3f1eb36b32a74b245a61ff419508bfcdf1aadddc Mon Sep 17 00:00:00 2001 From: joey van der bie Date: Sat, 7 Jun 2014 12:43:41 +0200 Subject: [PATCH 02/16] Udp streaming --- AndroidManifest.xml | 39 +- res/layout/main.xml | 80 +- res/values/dimens.xml | 7 + res/values/strings.xml | 14 +- .../heart_rate_monitor/HeartRateMonitor.java | 852 ++++++++++-------- .../heart_rate_monitor/UDPThread.java | 40 + 6 files changed, 640 insertions(+), 392 deletions(-) create mode 100644 res/values/dimens.xml create mode 100755 src/com/jwetherell/heart_rate_monitor/UDPThread.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 7cbcbe4..9f9051d 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,27 +1,36 @@ + package="com.jwetherell.heart_rate_monitor" + android:versionCode="1" + android:versionName="1.0" > - + - - - - + + - - + + + + + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/res/layout/main.xml b/res/layout/main.xml index 01f311b..8d99e9d 100644 --- a/res/layout/main.xml +++ b/res/layout/main.xml @@ -3,35 +3,87 @@ android:id="@+id/layout" android:layout_width="fill_parent" android:layout_height="fill_parent" - android:orientation="vertical" - android:background="@android:color/white" > + android:background="@android:color/white" + android:orientation="vertical" > +