66import android .os .Bundle ;
77import android .os .Handler ;
88import android .os .Message ;
9- import android .text .InputType ;
109import android .util .Log ;
1110import android .view .View ;
12- import android .widget .TextView ;
1311import android .widget .Toast ;
1412
1513import com .shimmerresearch .android .Shimmer ;
1917import com .shimmerresearch .driver .Configuration ;
2018import com .shimmerresearch .driver .FormatCluster ;
2119import com .shimmerresearch .driver .ObjectCluster ;
22- import com .shimmerresearch .driver .ShimmerDevice ;
2320
24- import java .io .BufferedWriter ;
25- import java .io .File ;
26- import java .io .FileWriter ;
27- import java .io .IOException ;
2821import java .util .Collection ;
22+ import java .util .HashMap ;
2923import java .util .Timer ;
3024import java .util .TimerTask ;
3125
@@ -53,19 +47,19 @@ public class MainActivity extends Activity {
5347 private int interval = 0 ;
5448 private int successCount = 0 ;
5549 private int failureCount = 0 ;
56- private int totalIteration = 0 ;
50+ private int totalIterationLimit = 10 ;
5751 private int currentIteration = 0 ;
5852 private int retryCount = 0 ;
5953 private int retryCountLimit = 5 ;
54+ private int durationBetweenTest = 1 ;
6055 private int totalRetries = 0 ;
61- private boolean wasConnecting = false ;
62-
6356
6457 private Shimmer shimmer ;
6558 private String macAdd ;
6659 private boolean isCurrentIterationSuccess ;
6760 private boolean isTestStarted = false ;
6861 private Timer timer ;
62+ HashMap <Integer ,Integer > ResultMap = new HashMap <>(); //-1,0,1 , unknown, fail, pass
6963
7064 @ Override
7165 protected void onCreate (Bundle savedInstanceState ) {
@@ -86,8 +80,8 @@ protected void onCreate(Bundle savedInstanceState) {
8680
8781 editTextAndroidDeviceModel .setText (Build .MANUFACTURER + " " + Build .PRODUCT );
8882 editTextRetryCountLimit .setText (Integer .toString (retryCountLimit ));
89- editTextTotalIteration .setText ("5" );
90- editTextInterval .setText ("1" );
83+ editTextTotalIteration .setText (Integer . toString ( totalIterationLimit ) );
84+ editTextInterval .setText (Integer . toString ( durationBetweenTest ) );
9185 }
9286
9387 public void startTest (View v ){
@@ -127,6 +121,7 @@ public void handleMessage(Message msg) {
127121
128122 editTextFirmware .setText (shimmer .getFirmwareVersionParsed ());
129123 successCount += 1 ;
124+ ResultMap .put (currentIteration ,1 );
130125 runOnUiThread (new Runnable () {
131126 public void run () {
132127 editTextSuccessCount .setText (String .valueOf (successCount ));
@@ -178,15 +173,13 @@ public void run() {
178173
179174 switch (state ) {
180175 case CONNECTED :
181- wasConnecting = false ;
182176 editTextShimmerStatus .setText ("CONNECTED" );
183177 editTextFirmware .setText (shimmer .getFirmwareVersionParsed ());
184178
185179 editTextShimmerDeviceName .setText (((ObjectCluster ) msg .obj ).getShimmerName ());
186-
180+ ResultMap . put ( currentIteration , 1 );
187181 break ;
188182 case CONNECTING :
189- wasConnecting = true ;
190183 editTextShimmerStatus .setText ("CONNECTING" );
191184 break ;
192185 case STREAMING :
@@ -200,13 +193,13 @@ public void run() {
200193 break ;
201194 case DISCONNECTED :
202195 editTextShimmerStatus .setText ("DISCONNECTED" );
203- if (wasConnecting ){
196+ if (ResultMap .get (currentIteration )==-1 ){
197+ Log .i (LOG_TAG , "Disconnected State " + "Retry Count: " + Integer .toString (retryCount ) + "; Total number of retries:" + totalRetries );
204198 if (retryCount <retryCountLimit ) {
205199 retryCount ++;
206200 totalRetries ++;
207201 editTextRetryCount .setText (Integer .toString (retryCount ));
208202 editTextTotalRetries .setText (Integer .toString (totalRetries ));
209- Log .i (LOG_TAG , "Retry Count: " + Integer .toString (retryCount ) + "; Total number of retries:" + totalRetries );
210203 //Toast.makeText(getApplicationContext(), "Retry Count " + Integer.toString(retryCount), Toast.LENGTH_SHORT).show();
211204 try {
212205 Thread .sleep (500 );
@@ -215,18 +208,25 @@ public void run() {
215208 }
216209 shimmer = null ;
217210 shimmer = new Shimmer (mHandler );
211+ Log .i (LOG_TAG , "Connect Called, retry count: " + Integer .toString (retryCount ) + "; Total number of retries:" + totalRetries );
218212 shimmer .connect (macAdd , "default" );
219213 } else {
220- retryCount = 0 ;
221- failureCount += 1 ;
222- Log .i (LOG_TAG , "Failure Count: " + failureCount );
223- runOnUiThread (new Runnable () {
224- public void run () {
225- editTextFailureCount .setText (String .valueOf (failureCount ));
226- }
227- });
228- timer .cancel ();
229- if (isTestStarted ) {
214+
215+ if (ResultMap .get (currentIteration )==-1 ) {
216+ ResultMap .put (currentIteration , 0 );
217+
218+ timer .cancel ();
219+ failureCount += 1 ;
220+ runOnUiThread (new Runnable () {
221+ public void run () {
222+ editTextFailureCount .setText (String .valueOf (failureCount ));
223+ }
224+ });
225+ }
226+ if (isTestStarted && currentIteration < totalIterationLimit ) {
227+
228+ Log .i (LOG_TAG , "Failure Count: " + failureCount );
229+
230230 timer = new Timer ();
231231 timer .schedule (new ConnectTask (), Integer .parseInt (editTextInterval .getText ().toString ()) * 1000 );
232232 }
@@ -254,15 +254,15 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
254254 macAdd = data .getStringExtra (EXTRA_DEVICE_ADDRESS );
255255 shimmer = new Shimmer (mHandler );
256256
257- totalIteration = Integer .parseInt (editTextTotalIteration .getText ().toString ());
257+ totalIterationLimit = Integer .parseInt (editTextTotalIteration .getText ().toString ());
258258 retryCountLimit = Integer .parseInt (editTextRetryCountLimit .getText ().toString ());
259259 currentIteration = 0 ;
260260 successCount = 0 ;
261261 failureCount = 0 ;
262262 editTextFailureCount .setText (String .valueOf (failureCount ));
263263 editTextSuccessCount .setText (String .valueOf (successCount ));
264264 editTextTotalRetries .setText (String .valueOf (totalRetries ));
265- editTextTestProgress .setText ("0 of" + String .valueOf (totalIteration ));
265+ editTextTestProgress .setText ("0 of" + String .valueOf (totalIterationLimit ));
266266 editTextInterval .setEnabled (false );
267267 editTextTotalIteration .setEnabled (false );
268268 editTextRetryCountLimit .setEnabled (false );
@@ -282,11 +282,8 @@ public void run() {
282282 Log .i (LOG_TAG , "Current Iteration: " + currentIteration );
283283 retryCount = 0 ;
284284 editTextRetryCount .setText (Integer .toString (retryCount ));
285- if (shimmer != null ) {
286- shimmer .disconnect ();
287- }
288285
289- if (currentIteration == totalIteration ) {
286+ if (currentIteration >= totalIterationLimit ) {
290287 runOnUiThread (new Runnable () {
291288 public void run () {
292289 editTextInterval .setEnabled (true );
@@ -297,17 +294,20 @@ public void run() {
297294 isTestStarted = false ;
298295 return ;
299296 } else {
297+ currentIteration += 1 ;
300298 runOnUiThread (new Runnable () {
301299 public void run () {
302- editTextTestProgress .setText (String .valueOf (currentIteration + 1 ) + " of " + String .valueOf (totalIteration ));
303- currentIteration += 1 ;
300+ editTextTestProgress .setText (String .valueOf (currentIteration ) + " of " + String .valueOf (totalIterationLimit ));
301+
304302 }
305303 });
304+ //isCurrentIterationSuccess = false;
305+ ResultMap .put (currentIteration ,-1 );
306+ shimmer = null ;
307+ shimmer = new Shimmer (mHandler );
308+ shimmer .connect (macAdd , "default" );
306309 }
307- //isCurrentIterationSuccess = false;
308- shimmer = null ;
309- shimmer = new Shimmer (mHandler );
310- shimmer .connect (macAdd , "default" );
310+
311311 }
312312 }
313313 }
0 commit comments