a.binder 5 年 前
コミット
efdda313bd

+ 2 - 2
SE/stuff/P5_Automation_can-dev-res/P5_Automation_can-dev-res.ino

@@ -86,8 +86,8 @@
 //#define DEBUG_QUEUE
 //#define DEBUG_QUEUE_ASSERT
 //#define DEBUG_QUEUE_WAIT 500
-#define DEBUG_STRUCT_INIT
-#define DEBUG_STORAGE_QUEUE_TEST //
+//#define DEBUG_STRUCT_INIT
+#define DEBUG_STORAGE_QUEUE_TEST 
 
 //#define HAS__PCINT_setup //to allow interrupts
 

+ 27 - 75
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_QUEUE_add_func.h

@@ -11,18 +11,6 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_T*
       Serial.println(".");
           Serial.print("#152 _Slave_Ports_queue__add  TASK_TYPE_A[");
            Serial.print(TASK_TYPE_A); Serial.print(" [");  _Slave_Ports_queue_task_type_DESC(TASK_TYPE_A); Serial.print("]  cur_peek:[");
-           
-           
-      
-      
-  
-        
-     //  int _Slave_Ports_queue_peek = _Slave_Ports_queue.peek() ;
-     //  int _Slave_Ports_queue_back = _Slave_Ports_queue.back() ;
-     //  int _Slave_Ports_queue_push_new_ref;
-      // if(_Slave_Ports_queue_back > _Slave_Ports_queue_peek)
-     
-      
       
          
       #if  defined(DEBUG_QUEUE)
@@ -59,79 +47,43 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_T*
             if(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A & ARDUINO_ARRAY_ATTR_INDEX__LOCK ) Serial.print(" [ERROR] [SHOULD][ARDUINO_ARRAY_ATTR_INDEX__LOCK] ");
             ARDUINO_ATTR_ARRAY_S__display(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A);
             Serial.print("  ARDUINO_ARRAY_INDEX_NEXT_LOCK_A["); Serial.print(Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A);Serial.print("]  "); 
-           /* Serial.println("]  another try to lock next index [");
-                        ARDUINO_ARRAY_INDEX_NEXT_T Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A2 = ARDUINO_ARRAY_INDEX_NEXT_LOCK(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A);
-                        Serial.println("  Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A2["); Serial.print(Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A2);Serial.print("] "); 
-                        Serial.println("");
-                        
-                        Serial.println("Now we try commit");
-                        
-                     ARDUINO_ATTR_ARRAY_S__commit_added_element_QUEUE(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A,
-                            ARDUINO_QUEUE_ELEMENT_FLAG_COMIT_LOCKED) ; //flags of records
-    
-            ARDUINO_ATTR_ARRAY_S__display(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A);
-                 */       
+          
               Serial.println("EOF 54[DEBUG_STORAGE_QUEUE_TEST][ADD] ");Serial.println("]");
-            //  delay(1000);
-            //return false;
             
     #endif
       
       
       
       if(Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A <= 0) { //ARDUINO_ARRAY_INDEX_LIMIT_QUEUE
-      Serial.println("] "); Serial.print("[#41] [ERROR] [DEBUG_QUEUE] [INDEX_NEXT_A ==0??] = [");
-        Serial.print(Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A) ; Serial.print("]  ");       
+        Serial.println("] "); Serial.print("[#41] [ERROR] [DEBUG_QUEUE] [INDEX_NEXT_A ==0??] = [");
+        Serial.print(Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A) ; Serial.print("]  ");   
+        Serial.print("TASK_TYPE_A["); Serial.print(TASK_TYPE_A); Serial.print("]");    
         //ARDUINO_ATTR_ARRAY_S__INDEX_NEXT_rotate(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
         //ARDUINO_QUEUE_FLAG_CANNOT_OVERWRITE , millis() ) ;
-      }
-      
-      /*
-      _Slave_Ports_queue.push(_Slave_Ports_queue_back + 1);
-      int _Slave_Ports_queue_peek_new = _Slave_Ports_queue.peek() ;
+      } else {
       
-       #ifdef DEBUG_QUEUE
-     // int _Slave_Ports_queue__push = _Slave_Ports_queue__peek + 1 ;
-             Serial.print("] new peek[");
-             Serial.print(_Slave_Ports_queue_peek_new );    Serial.print("]   back+1["); Serial.print(_Slave_Ports_queue_back + 1 );
-             
-             Serial.print("] fnew front[");   Serial.print(_Slave_Ports_queue.front());   Serial.print("] new back[");   Serial.print(_Slave_Ports_queue.back());  
-               if(DISPLAY_ARDUINO_ARRAY_INDEX_A != ARDUINO_ARRAY_INDEX_NOT_SET )Serial.print("] DISPLAY_INDEX[");   Serial.print(DISPLAY_ARDUINO_ARRAY_INDEX_A);   
-             Serial.println("]     ");
-             
-             
-             Serial.print("[#51][DEBUG_QUEUE] [NEW TASK]    time_seq_id1["); Serial.print(time_seq_id);
-             Serial.print("]  time_min_run["); Serial.print(time_min_run); 
-       #endif
-           
-        
-             
-     Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_back + 1 ].QUEUE_ID_A=_Slave_Ports_queue_back + 1 ;
-     Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_back + 1 ].TASK_TYPE_A=TASK_TYPE_A ;
-     Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_back + 1 ].TASK_PORT_ASSOC_A=TASK_PORT_ASSOC_A ;
-     Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_back + 1 ].time_seq_id=time_seq_id ;
-     Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_back + 1 ].time_min_run=time_min_run ;
-     
-         Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_back + 1 ].DISPLAY_ARDUINO_ARRAY_INDEX_A = DISPLAY_ARDUINO_ARRAY_INDEX_A ;
-    */
-    Serial.print("]#81   [USING] [INDEX_NEXT_A]=["); 
-     Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A =  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A ;
-            Serial.print( Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A);   Serial.print("]  [");
-        
-     Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].QUEUE_ID_A = Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER_T() ; //Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A ; //todo should be counter //_Slave_Ports_queue_back + 1 ;
-     Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].TASK_TYPE_A = TASK_TYPE_A ;
-     Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].TASK_PORT_ASSOC_A=TASK_PORT_ASSOC_A ;
-     Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].time_seq_id=time_seq_id ;
-     Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].time_min_run=time_min_run ;
-     
-      Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].DISPLAY_ARDUINO_ARRAY_INDEX_A = DISPLAY_ARDUINO_ARRAY_INDEX_A ;
-      //ARDUINO_ATTR_ARRAY_S__commit_added_element(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A ) ;
-      ARDUINO_ATTR_ARRAY_S__commit_added_element_QUEUE(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A,
-      //ARDUINO_QUEUE_FLAG_QUEUE,
-      ARDUINO_QUEUE_ELEMENT_FLAG_STANDARD  ) ;
-       Serial.print("  new QUEUE_ID_A["); Serial.print(Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].QUEUE_ID_A ); Serial.println("]    ");
-        
- return true ;
+                  
+                 Serial.print("]#810A   [USING] [INDEX_NEXT_A]=["); 
+                 
+                  //Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A =  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A ;
+                         Serial.print( Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A);   Serial.print("]  [");
+                         Serial.print("   [Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A[");Serial.print(Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A);Serial.print("]]   ");
+                     
+                  Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].QUEUE_ID_A = Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER_T() ; //Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A ; //todo should be counter //_Slave_Ports_queue_back + 1 ;
+                  Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].TASK_TYPE_A = TASK_TYPE_A ;
+                  Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].TASK_PORT_ASSOC_A=TASK_PORT_ASSOC_A ;
+                  Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].time_seq_id=time_seq_id ;
+                  Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].time_min_run=time_min_run ;
+                  
+                   Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].DISPLAY_ARDUINO_ARRAY_INDEX_A = DISPLAY_ARDUINO_ARRAY_INDEX_A ;
+                   //ARDUINO_ATTR_ARRAY_S__commit_added_element(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A ) ;
+                   ARDUINO_ATTR_ARRAY_S__commit_added_element_QUEUE(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A,
+                   //ARDUINO_QUEUE_FLAG_QUEUE,
+                   ARDUINO_QUEUE_ELEMENT_FLAG_STANDARD  ) ;
+                    Serial.print("  new QUEUE_ID_A["); Serial.print(Slave_Ports_Status_QUEUE_A[Slave_Ports_Status_QUEUE_T_INDEX_NEXT_A].QUEUE_ID_A ); Serial.println("]    ");
+                     
+              return true ;
+      }
     
 }
 

+ 3 - 3
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_QUEUE_func.h

@@ -64,11 +64,11 @@ void _Slave_Ports_queue__list( Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QU
         Serial.println("#100 _Slave_Ports_queue__list Slave_Ports_Status_QUEUE_A): ");
     
     
-    #if defined(DEBUG) || defined(DEBUG_QUEUE)
+   // #if defined(DEBUG) || defined(DEBUG_QUEUE)
         ARDUINO_ATTR_ARRAY_S__display(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A);
-    #endif
+   // #endif
     //Serial.println(sizeof(Slave_Ports_Status_QUEUE_A));
-        for(i=ARDUINO_ARRAY_INDEX_FIRST;i<=ARDUINO_ARRAY_INDEX_LIMIT_QUEUE;i++) { //sizeof(_LCD_print_buffors)
+        for(i=Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A;i>=(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A+Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A) ;i--) { //sizeof(_LCD_print_buffors)
 
           if(Slave_Ports_Status_QUEUE_A[i].QUEUE_ID_A == 0 and
                  Slave_Ports_Status_QUEUE_A[i].TASK_TYPE_A == 0 and

+ 91 - 46
SE/stuff/P5_Automation_can-dev-res/___main/__main_struct_funct.h

@@ -302,11 +302,7 @@ void ARDUINO_ATTR_ARRAY_S__commit_added_element_QUEUE(
                       #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT)  || defined(DEBUG_STORAGE_QUEUE_TEST)
                               Serial.print("   +[ARDUINO_ARRAY_COUNT_A][HIT]   ");
                        #endif
-                                              
-                            ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A  ;
-                            ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A =  ARDUINO_ARRAY_INDEX_FIRST  ;
-                            ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A = ARDUINO_ARRAY_INDEX_CURRENT_A + 1 ;
-                        
+                           
                         
                         
                         if(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A == ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ) {
@@ -316,38 +312,48 @@ void ARDUINO_ATTR_ARRAY_S__commit_added_element_QUEUE(
                                #endif
                         }
                         
-                        
 
                 } else {        
-                            
-                    ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A  ;
-                    ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A =  ARDUINO_ARRAY_INDEX_FIRST  ;
-                    ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A = ARDUINO_ARRAY_INDEX_CURRENT_A + 1 ;
-                    
+                
+                        ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ++;
+                        ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ++;   
                  #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT)  || defined(DEBUG_STORAGE_QUEUE_TEST)
-                        Serial.print("433[ELSE][INDEX_CURRENT_A + 1 > INDEX_LIMIT_A ]   [CURRENT_A][");
-                        Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A);
-                        Serial.print("]   INDEX_CURRENT_A[");
-                        Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
-                        Serial.print("]    ");
+                        Serial.print("433[ELSE] [QUEUE++]");
+                        Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
+                        Serial.print("] ");
+                      
                    #endif
                 
                 
                 }
+                
+                
+                
+                
+                 if((ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A + 1) >= ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A) {
+                    ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A = ARDUINO_ARRAY_INDEX_FIRST ;
+                      #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT)  || defined(DEBUG_STORAGE_QUEUE_TEST)
+                        Serial.print("[NEXT ROTATE]");
+                        Serial.print( ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
+                        Serial.print("] ");
+                       #endif
+                    
+                 
+                 }
+            
             
+                               
+                        ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A  ;
+                        
                         ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A = ARDUINO_ARRAY_ATTR_INDEX__READY_TO_QUERY ;
                         ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ARRAY_INDEX_CURRENT_A ;
-                        ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ++;
-                        ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ++;
+                       
                         
-                if(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A>= 0) {
-                } else {
+                if(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A > 0) { } else {
                     ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A = ARDUINO_ARRAY_INDEX_CURRENT_A ;
                     #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT)  || defined(DEBUG_STORAGE_QUEUE_TEST)
                         Serial.print("+init[ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A]["); Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A); Serial.print("]  ");
-                   #endif
-                
-                   
+                   #endif 
                 }
                         
     }
@@ -378,31 +384,69 @@ ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT(
 
 ARDUINO_ARRAY_INDEX_NEXT_LOCK_T ARDUINO_ARRAY_INDEX_POP_LOCK( ARDUINO_ATTR_ARRAY_S &ARDUINO_ATTR_ARRAY_A){
                  ARDUINO_ARRAY_INDEX_NEXT_T ARDUINO_ARRAY_INDEX_NEXT_A ;
+                  ARDUINO_ARRAY_INDEX_NEXT_A =  ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ;
                      #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
                               Serial.print("  [ARDUINO_ARRAY_INDEX_POP_LOCK]?  ");       
                           #endif 
-                 if(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A >= 0) {
-                          #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
-                              Serial.print("  [INCREMENT][PEEK]  ");    
-                          #endif 
-                          
-                    ARDUINO_ARRAY_INDEX_NEXT_A =  ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ;
-                        if(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A + 1 >= ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A) {
-                            if(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A == ARDUINO_ARRAY_INDEX_FIRST) {
-                                      Serial.print("  [PEEK NO MORE] [DECREASE QUEUE]  "); 
-                                      ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A = 0;
-                                      ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A --;
-                                     ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A --;
-                            }
-                        } else {
-                                 Serial.print("  [PEEK NEXT] [DECREASE QUEUE]  "); 
-                                    ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A++;
-                                     ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A --;
-                                     ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A --;
-                        }
+                 if(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A > 0) {
+                                 #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
+                                     Serial.print("  [INCREMENT][PEEK]  ");    
+                                 #endif 
+                      
+                            if((ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A + 1) >= ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A) {
+                                  #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
+                                     Serial.print("  [INCREMENT][ROTATE]?  ");    
+                                 #endif 
+                                    if(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A == ARDUINO_ARRAY_INDEX_FIRST) {
+                                          #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
+                                              Serial.print("  [INCREMENT][=CURRENT][QUEUE FORCE 0]  ");    
+                                          #endif
+                                           ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A = 0;
+                                           ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A --;
+                                           ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A --;
+                                    } else {
+                                      #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
+                                              Serial.print("  [INCREMENT][NEXT]=ARDUINO_ARRAY_INDEX_FIRST  ");    
+                                          #endif
+                                           ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A = ARDUINO_ARRAY_INDEX_FIRST ;
+                                           ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A --;
+                                           ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A --;
+                                    }
+                            
+                            } else {
+                                 #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
+                                     Serial.print("  [INCREMENT][NOTROTATE]?  ");    
+                                 #endif 
+                                if((ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A + 1) == ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A) {
+                                         #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
+                                             Serial.print("  2[INCREMENT][=CURRENT] [QUEUE FORCE 0] ");
+                                         #endif 
+                                                 ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A = 0;
+                                                  ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A --;
+                                                  ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A --;
+                                } else {
+                                
+                                          #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
+                                             Serial.print("  [POP][NEXT] ");
+                                         #endif 
+                                                  ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A++;
+                                                  ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A --;
+                                                  ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A --;
+                                }
+                            
+                    } 
                     
-                    return ARDUINO_ARRAY_INDEX_NEXT_A ;
-                 }
+                    } else {
+                                 
+             
+                                        #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
+                                             Serial.print("  [POP][EMPTY] ");
+                                         #endif 
+                     }
+                                #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
+                                             Serial.print("  [POP][RETURNED["); Serial.print(ARDUINO_ARRAY_INDEX_NEXT_A); Serial.println("] ");
+                                         #endif 
+                            return ARDUINO_ARRAY_INDEX_NEXT_A ;
                  
     }
 
@@ -426,7 +470,8 @@ ARDUINO_ARRAY_INDEX_NEXT_LOCK_T ARDUINO_ARRAY_INDEX_NEXT_LOCK(
                         #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT) || defined(DEBUG_STORAGE_QUEUE_TEST)
                               Serial.print(" [ARDUINO_ARRAY_ATTR_INDEX__TO_INITIALIZE]? [ERROR]  !=[ARDUINO_ARRAY_ATTR_INDEX__TO_INITIALIZE]  ");       
                           #endif 
-            } else if( ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A & ARDUINO_ARRAY_ATTR_INDEX__INITIALIZED) {
+            } else if(( ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A & ARDUINO_ARRAY_ATTR_INDEX__INITIALIZED)
+                        or ( ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A  & ARDUINO_ARRAY_ATTR_INDEX__READY_TO_QUERY)) {
                           #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT)  || defined(DEBUG_STORAGE_QUEUE_TEST)
                               Serial.print(" [ARDUINO_ARRAY_ATTR_INDEX__INITIALIZE][OK] if->? ");       
                           #endif 
@@ -444,7 +489,7 @@ ARDUINO_ARRAY_INDEX_NEXT_LOCK_T ARDUINO_ARRAY_INDEX_NEXT_LOCK(
                                                 #endif 
                                                  return false;
                                                 
-                                  } else  if(( ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A & ARDUINO_ARRAY_ATTR_INDEX__TO_INCREMENT)
+                                  } else  if(( ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A & ARDUINO_ARRAY_ATTR_INDEX__READY_TO_QUERY)
                                         or (ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A == ARDUINO_ARRAY_ATTR_INDEX__INITIALIZED )) {
                                                #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT)  || defined(DEBUG_STORAGE_QUEUE_TEST)
                                                     Serial.print(" =[ARDUINO_ARRAY_ATTR_INDEX__TO_INCREMENT][OK]  -> [ARDUINO_ARRAY_ATTR_QUEUE_add_distance] ");