@@ -41,7 +41,7 @@ public enum TaskCancelRReason {
4141    private  String  endingMessaage ;
4242
4343    int  qValue =0 ;
44-     boolean  repeat =false ,  nextNew = false ;
44+     int  repeat =0 ;
4545    boolean  bEnableErrorPopWindow =true ;
4646
4747    boolean  gotInventory ;
@@ -73,7 +73,7 @@ public AccessTask(Button button, boolean invalidRequest,
7373    public  AccessTask (Button  button , TextView  textViewWriteCount , boolean  invalidRequest ,
7474                      String  selectMask , int  selectBank , int  selectOffset ,
7575                      String  strPassword , int  powerLevel , Cs108Connector .HostCommands  hostCommand ,
76-                       int  qValue , boolean  repeat ,  boolean   nextNew , boolean  resetCount ,
76+                       int  qValue , int  repeat , boolean  resetCount ,
7777                      TextView  registerRunTime , TextView  registerTagGot , TextView  registerVoltageLevel ,
7878                      TextView  registerYieldView , TextView  registerTotalView ) {
7979        this .button  = button ;
@@ -92,8 +92,8 @@ public AccessTask(Button button, TextView textViewWriteCount, boolean invalidReq
9292        this .powerLevel  = powerLevel ;
9393        this .hostCommand  = hostCommand ;
9494        this .qValue  = qValue ;
95+         if  (repeat  > 255 ) repeat  = 255 ;
9596        this .repeat  = repeat ;
96-         this .nextNew  = nextNew ;
9797        if  (resetCount ) {
9898            total  = 0 ;
9999            tagList .clear ();
@@ -121,7 +121,7 @@ void preExecute() {
121121                buttonText1  += buttonText1 .substring (buttonText .length () - 1 );
122122            } else  buttonText1  = buttonText ;
123123        }
124-         if  (repeat  || buttonText .length () == 0 ) button .setText ("Stop" );
124+         if  (repeat  >  1   || buttonText .length () == 0 ) button .setText ("Stop" );
125125        else  {
126126            if  (Character .isUpperCase (strLastChar .charAt (0 ))) button .setText (buttonText1  + "ING" );
127127            else  button .setText (buttonText1  + "ing" );
@@ -151,8 +151,8 @@ else if (hostCommand == Cs108Connector.HostCommands.CMD_18K6CKILL) {
151151        }
152152        if  (invalidRequest  == false ) {
153153            if  (DEBUG ) MainActivity .mCs108Library4a .appendToLog ("AccessTask(): powerLevel = "  + powerLevel );
154-             int  matchRep  = 0 ;
155-             if  (repeat  ==  false  ||  nextNew ) matchRep  = 1 ;
154+             int  matchRep  = 1 ;
155+             if  (repeat  >  1 ) matchRep  = repeat ;
156156            if  (powerLevel  < 0  || powerLevel  > 330 ) invalidRequest  = true ;
157157            else  if  (skipSelect ) { }
158158            else  if  (MainActivity .mCs108Library4a .setSelectedTag (selectMask , selectBank , selectOffset , powerLevel , qValue , matchRep ) == false ) {
@@ -192,38 +192,32 @@ protected String doInBackground(Void... a) {
192192            Cs108Connector .Rx000pkgData  rx000pkgData  = MainActivity .mCs108Library4a .onRFIDEvent ();
193193            if  (MainActivity .mCs108Library4a .mrfidToWriteSize () != 0 )   timeMillis  = System .currentTimeMillis ();
194194            else  if  (rx000pkgData  != null ) {
195-                 //MainActivity.mCs108Library4a.appendToLog("rx000pkgData.responseType = " + rx000pkgData.responseType.toString()); 
196195                if  (rx000pkgData .responseType  == null ) {
197196                    publishProgress ("null response" );
198197                } else  if  (rx000pkgData .responseType  == Cs108Connector .HostCmdResponseTypes .TYPE_18K6C_TAG_ACCESS ) {
199-                     if  (true ) {
200-                         if  (rx000pkgData .decodedError  == null ) {
201-                             if  (done  == false ) {
202-                                 accessResult  = rx000pkgData .decodedResult ;
203-                                 //MainActivity.mCs108Library4a.appendToLog("StreamOut, accResult=" + accessResult); 
204-                                 if  (updateRunnable  != null ) {
205-                                     //MainActivity.mCs108Library4a.appendToLog("StreamOut: start updateRunnable"); 
206-                                     mHandler .post (updateRunnable );
207-                                 }
208-                             }
209-                             done  = true ;
198+                     if  (rx000pkgData .decodedError  == null ) {
199+                         if  (done  == false ) {
200+                             accessResult  = rx000pkgData .decodedResult ;
201+                             if  (repeat  > 0 ) repeat --;
202+                             if  (updateRunnable  != null ) mHandler .post (updateRunnable );
210203                            publishProgress (null , rx000pkgData .decodedResult );
211-                         } else  {
212-                             //MainActivity.mCs108Library4a.appendToLog("decodeError = " + rx000pkgData.decodedError + ", length = " + rx000pkgData.decodedError.length()); 
213-                             publishProgress (rx000pkgData .decodedError );
214204                        }
215-                         iTimeOut  = 1000 ;
216-                     }
205+                         done  = true ;
206+                     } else  publishProgress (rx000pkgData .decodedError );
207+                     iTimeOut  = 1000 ;
217208                } else  if  (rx000pkgData .responseType  == Cs108Connector .HostCmdResponseTypes .TYPE_COMMAND_END ) {
209+                     MainActivity .mCs108Library4a .appendToLog ("BtData: repeat = "  + repeat  + ", decodedError = "  + rx000pkgData .decodedError  + ", resultError = "  + resultError );
218210                    if  (rx000pkgData .decodedError  != null ) { endingMessaage  = rx000pkgData .decodedError ; ending  = true ; }
219-                     else  if  (repeat  && ( nextNew  ==  false  ||  resultError .length () !=  0 ) ) {
211+                     else  if  (repeat  >  0   && resultError .length () ==  0 ) {
220212                        resultError  = "" ;
213+                         MainActivity .mCs108Library4a .setMatchRep (repeat );
221214                        MainActivity .mCs108Library4a .sendHostRegRequestHST_CMD (hostCommand );
222215                    } else  {
223216                        endingMessaage  = "" ;
224217                        ending  = true ;
225218                    }
226219                } else  if  (rx000pkgData .responseType  == Cs108Connector .HostCmdResponseTypes .TYPE_18K6C_INVENTORY ) {
220+                     done  = false ;
227221                    publishProgress ("TT" , MainActivity .mCs108Library4a .byteArrayToString (rx000pkgData .decodedEpc ));
228222                } else  {
229223                    publishProgress ("Unhandled Response: "  + rx000pkgData .responseType .toString ());
@@ -252,8 +246,7 @@ else if (notificationData != null) {
252246    String  tagInventoried  = null ;
253247    @ Override 
254248    protected  void  onProgressUpdate (String ... output ) {
255-         if  (true ) progressUpdate (output );
256-         else  if  (output [0 ] != null ) {
249+         if  (output [0 ] != null ) {
257250            MainActivity .mCs108Library4a .appendToLog ("onProgressUpdate output[0] = "  + output [0 ]);
258251            if  (output [0 ].length () == 2 ) {
259252                if  (output [0 ].contains ("TT" )) {
@@ -279,7 +272,6 @@ else if (output[0] != null) {
279272                resultError  += output [0 ];
280273                if  (true )
281274                    MainActivity .mCs108Library4a .appendToLog ("output[0]: "  + output [0 ] + ", resultError = "  + resultError );
282-                 taskCancelReason  = TaskCancelRReason .ERROR ;
283275            }
284276        } else  {
285277            MainActivity .mCs108Library4a .appendToLog ("onProgressUpdate output[1] = "  + output [1 ]);
@@ -298,7 +290,6 @@ else if (output[0] != null) {
298290    protected  void  onCancelled () {
299291        super .onCancelled ();
300292        if  (DEBUG ) MainActivity .mCs108Library4a .appendToLog ("endingMesssage: taskCancelReason = "  + taskCancelReason );
301-         //if (taskCancelReason != TaskCancelRReason.NULL) MainActivity.mCs108Library4a.abortOperation1(); else 
302293        MainActivity .mCs108Library4a .abortOperation ();
303294        if  (taskCancelReason  == TaskCancelRReason .NULL )  taskCancelReason  = TaskCancelRReason .DESTORY ;
304295        DeviceConnectTask4RegisterEnding ();
@@ -307,58 +298,16 @@ protected void onCancelled() {
307298    @ Override 
308299    protected  void  onPostExecute (String  result ) {
309300        if  (DEBUG ) MainActivity .mCs108Library4a .appendToLog ("AccessSecurityLockFragment.InventoryRfidTask.onPostExecute(): "  + result );
310- 
311301        DeviceConnectTask4RegisterEnding ();
312302    }
313303
314-     protected  void  progressUpdate (String ... output ) {
315-         if  (output [0 ] != null ) {
316-             MainActivity .mCs108Library4a .appendToLog ("onProgressUpdate output[0] = "  + output [0 ]);
317-             if  (output [0 ].length () == 2 ) {
318-                 if  (output [0 ].contains ("TT" )) {
319-                     gotInventory  = true ;
320-                     boolean  matched  = false ;
321-                     for  (int  i  = 0 ; i  < tagList .size (); i ++) {
322-                         if  (output [1 ].matches (tagList .get (i ))) {
323-                             matched  = true ;
324-                             break ;
325-                         }
326-                     }
327-                     if  (registerTagGot  != null ) registerTagGot .setText (output [1 ]);
328-                     if  (matched  == false ) tagInventoried  = output [1 ];
329-                 } else  if  (output [0 ].contains ("WW" )) {
330-                     long  timePeriod  = (System .currentTimeMillis () - startTimeMillis ) / 1000 ;
331-                     if  (timePeriod  > 0 ) {
332-                         if  (registerRunTime  != null ) registerRunTime .setText (String .format ("Run time: %d sec" , timePeriod ));
333-                     }
334-                 } else  if  (taskCancelReason  == TaskCancelRReason .NULL ) {
335-                     if  (registerVoltageLevel  != null ) registerVoltageLevel .setText (MainActivity .mCs108Library4a .getBatteryDisplay (true ));
336-                 }
337-             } else  {
338-                 resultError  += output [0 ];
339-                 if  (true )
340-                     MainActivity .mCs108Library4a .appendToLog ("output[0]: "  + output [0 ] + ", resultError = "  + resultError );
341-             }
342-         } else  {
343-             MainActivity .mCs108Library4a .appendToLog ("onProgressUpdate output[1] = "  + output [1 ]);
344-             if  (registerYield  != null ) {
345-                 if  (tagInventoried  != null ) {
346-                     tagList .add (tagInventoried );
347-                     tagInventoried  = null ;
348-                 }
349-                 registerYield .setText ("Unique:"  + Integer .toString (tagList .size ()));
350-             }
351-             if  (registerTotal  != null ) registerTotal .setText ("Total:"  + Integer .toString (++total ));
352-         }
353-     }
354- 
355304    void  DeviceConnectTask4RegisterEnding () {
356305        String  strErrorMessage  = "" ;
357306        if  (false ) {
358307            boolean  success  = false ;
359308            MainActivity .mCs108Library4a .appendToLog ("repeat = "  + repeat  + ", taskCancelReason = "  + taskCancelReason .toString ()
360309                    + ", backscatterError = "  + backscatterError  + ", accessError ="  + accessError  + ", accessResult = "  + accessResult  + ", resultError = "  + resultError );
361-             if  ((repeat  ==  false  && taskCancelReason  != TaskCancelRReason .NULL ) || backscatterError  != 0  || accessError  != 0  || accessResult  == null  || resultError .length () != 0 ) {
310+             if  ((repeat  <=  1  && taskCancelReason  != TaskCancelRReason .NULL ) || backscatterError  != 0  || accessError  != 0  || accessResult  == null  || resultError .length () != 0 ) {
362311                MainActivity .mCs108Library4a .appendToLog ("FAILURE" ); Toast .makeText (MainActivity .mContext , R .string .toast_abort_by_FAILURE , Toast .LENGTH_SHORT ).show ();
363312                playerO .start ();
364313            } else  {
0 commit comments