a.binder 5 năm trước cách đây
mục cha
commit
27e205d341

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

@@ -188,7 +188,8 @@
 #include "Queue.h"
 //#include "TPQ.h"
  Queue<int> _Slave_Ports_queue = Queue<int>(ARDUINO_ARRAY_INDEX_LIMIT_QUEUE);
- 
+ Queue<int> TEST_QUEUE = Queue<int>(ARDUINO_ARRAY_INDEX_LIMIT_QUEUE);
+
 
  #if Active_ControllerID == _ControllerID 
     String lcdPattern = "s" ;

+ 6 - 5
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_QUEUE_add_func.h

@@ -16,8 +16,8 @@ ARDUINO_ARRAY_INDEX_T DISPLAY_ARDUINO_ARRAY_INDEX_A //optionally
       
     
         
-       int _Slave_Ports_queue_peek = _Slave_Ports_queue.peek() ;
-       int _Slave_Ports_queue_back = _Slave_Ports_queue.back() ;
+     //  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)
      
@@ -80,15 +80,16 @@ ARDUINO_ARRAY_INDEX_T DISPLAY_ARDUINO_ARRAY_INDEX_A //optionally
      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_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].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 ) ;
- 
+       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 ;
     
 }

+ 125 - 74
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_QUEUE_func.h

@@ -96,11 +96,11 @@ Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDU
  void _Slave_Ports_queue__POP(
          Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A, 
         Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-        int _Slave_Ports_queue_count, 
+       /* int _Slave_Ports_queue_count, 
         int _Slave_Ports_queue_pop, 
-        int _Slave_Ports_queue_front, 
-        int _Slave_Ports_queue_back,
-        int _Slave_Ports_queue_peek,
+        int Slave_Ports_ATTR_QUEUE_FRONT_A, 
+        int Slave_Ports_ATTR_QUEUE_BACK_A,
+        int Slave_Ports_ATTR_QUEUE_PEEK_A,*/
         int LCDtim,   
     Slave_Ports_Status_T* Slave_Ports_Status_A ,
      Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
@@ -113,12 +113,52 @@ Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDU
       DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
      Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A
  ) {
+ 
+ 
+ 
+//DO OBSLUGI KOLEJEK 
+
+  ARDUINO_ARRAY_INDEX_CURRENT_T Slave_Ports_Status_QUEUE_T_INDEX_CURRENT_A =  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ;
+
+
+ARDUINO_ARRAY_ATTR_T Slave_Ports_ATTR_QUEUE_COUNT_MAX_A     ;
+ARDUINO_ARRAY_ATTR_T Slave_Ports_ATTR_QUEUE_COUNT_A =  Slave_Ports_Status_QUEUE_T_INDEX_CURRENT_A =  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ;
+ARDUINO_ARRAY_ATTR_T Slave_Ports_ATTR_QUEUE_BACK_A ;
+ARDUINO_ARRAY_ATTR_T Slave_Ports_ATTR_QUEUE_FRONT_A ;
+ARDUINO_ARRAY_ATTR_T Slave_Ports_ATTR_QUEUE_PEEK_A = Slave_Ports_Status_QUEUE_T_INDEX_CURRENT_A ;
+
+Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER( Slave_Ports_ATTR_QUEUE_COUNT_MAX_A, 
+                Slave_Ports_ATTR_QUEUE_COUNT_A, Slave_Ports_ATTR_QUEUE_PEEK_A,
+                Slave_Ports_ATTR_QUEUE_BACK_A , Slave_Ports_ATTR_QUEUE_FRONT_A,
+                ARDUINO_ARRAY_ATTR_QUEUE_ACTION_SET
+                
+                );
+ 
+ 
    //int count = _Slave_Ports_queuev.count();
    //int _Slave_Ports_queue_pop _Slave_Ports_queuev.pop();
-  Serial.print("#180 run _Slave_Ports_queue__POP cnt "); Serial.print(_Slave_Ports_queue_count); Serial.print(" , pop: "); Serial.println(_Slave_Ports_queue_pop);
-               _Slave_Ports_queue_task_type_DESC(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A) ; 
+  //Serial.print("#180 run _Slave_Ports_queue__POP cnt ");
+  //Serial.print(_Slave_Ports_queue_count); Serial.print(" , pop: "); Serial.println(_Slave_Ports_queue_pop);
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  Serial.print("[#120] _Slave_Ports_queue__POP    COUNT_A[");
+             Serial.print(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
+                Serial.print("    Slave_Ports_ATTR_QUEUE_COUNT_T["); Serial.print(Slave_Ports_ATTR_QUEUE_COUNT_A); 
+  
+  
+  //Serial.print([ ARDUINO_ARRAY_COUNT_A]);
+               _Slave_Ports_queue_task_type_DESC(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A) ; 
    
-    if (_Slave_Ports_queue_count > 0) {
+   // if (_Slave_Ports_queue_count > 0) {
+   if(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A > 0) {
                             /*
                              String LCDarray1 = "`Slave_Ports_queue size [";
                              LCDarray1.concat(_Slave_Ports_queue_count);
@@ -126,32 +166,38 @@ Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDU
                              LCDarray1.concat(_Slave_Ports_queue_pop);
                              
                              LCDarray1.concat("] Curr[");
-                             LCDarray1.concat(_Slave_Ports_queue_front);
+                             LCDarray1.concat(Slave_Ports_ATTR_QUEUE_FRONT_A);
 
                              String LCDarray2 = "]  last[";
-                             LCDarray2.concat(_Slave_Ports_queue_back);
+                             LCDarray2.concat(Slave_Ports_ATTR_QUEUE_BACK_A);
                              LCDarray2.concat("] Next[");
-                             LCDarray2.concat(_Slave_Ports_queue_peek);
+                             LCDarray2.concat(Slave_Ports_ATTR_QUEUE_PEEK_A);
                               Serial.print(LCDarray1);
                                 Serial.println(LCDarray2);
                              */
-                    #if defined(DEBUG)
+                  /*  #if defined(DEBUG)
                                    Serial.print("#166 _queue__POP [DEBUG]  INF  size["); Serial.print(_Slave_Ports_queue_count);
                                    Serial.print("] pop["); Serial.print(_Slave_Ports_queue_pop);
-                                   Serial.print("] front["); Serial.print(_Slave_Ports_queue_front);
-                                   Serial.print("] back["); Serial.print(_Slave_Ports_queue_back);
-                                   Serial.print("] peek["); Serial.print(_Slave_Ports_queue_peek);
+                                   Serial.print("] front["); Serial.print(Slave_Ports_ATTR_QUEUE_FRONT_A);
+                                   Serial.print("] back["); Serial.print(Slave_Ports_ATTR_QUEUE_BACK_A);
+                                   Serial.print("] peek["); Serial.print(Slave_Ports_ATTR_QUEUE_PEEK_A);
                                    Serial.println("]  ");
                     #endif   
-   
+   */
 //    LCD_print(LCDarray1, LCDarray2, LCDtim / 3 ) ;
 
-              if(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].QUEUE_ID_A == 0 and 
-                Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].QUEUE_ID_A == 0 and 
-                  Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A == 0 and 
+             // if(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].QUEUE_ID_A == 0 and
+                if(Slave_Ports_Status_QUEUE_A[ Slave_Ports_ATTR_QUEUE_PEEK_A ].QUEUE_ID_A == 0 and
+                //Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].QUEUE_ID_A == 0 and
+                //  Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A == 0 and
+                    Slave_Ports_Status_QUEUE_A[  Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A == 0 and
                     //Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_PORT_ASSOC_A == 0 and 
-                      Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_seq_id == 0 and 
-                        Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_min_run == 0 ) {
+                    //  Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_seq_id == 0 and 
+                    Slave_Ports_Status_QUEUE_A[ Slave_Ports_ATTR_QUEUE_PEEK_A ].time_seq_id == 0 and
+                    //    Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_min_run == 0 ) {
+                    Slave_Ports_Status_QUEUE_A[ Slave_Ports_ATTR_QUEUE_PEEK_A ].time_min_run == 0 ) {
+                    
+                    
                /* todo
                    String LCDarray1 = "#206 Error with queue";
                    String LCDarray2 = "ID: ";
@@ -162,7 +208,7 @@ Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDU
                 */
                   #if defined(DEBUG)
                     // if(DEBUG > 6) {
-                                   Serial.print("#166 _queue__POP [DEBUG]  Error with queue [_Slave_Ports_queue_pop"); Serial.print(_Slave_Ports_queue_pop);
+                                   Serial.print("#166  [DEBUG]  Error with queue [INDEX_CURR]=["); Serial.print(Slave_Ports_ATTR_QUEUE_PEEK_A);
                                    Serial.println("]  ");
                              //      }
                     #endif    
@@ -178,39 +224,43 @@ Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDU
                    Serial.println(LCDarray2);
             //        LCD_print(LCDarray1, LCDarray2, LCDtim / 3 ) ;
                     */
-                     if(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_min_run > millis()) {
-                            Serial.print("#182 QUEUE reassign .time_seq_id > millis()  time_seq_id[");     Serial.print( Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_seq_id); 
+                     if(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].time_min_run > millis()) {
+                            Serial.print("#182 QUEUE reassign .time_seq_id > millis()  time_seq_id[");     Serial.print( Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].time_seq_id); 
                             Serial.print("]  millis()["); Serial.print(millis());
-                            Serial.print("]  TASK_TYPE_A["); Serial.print(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A);
-                            Serial.print("]  Will wait() to next ["); Serial.print(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_seq_id);
-                            Serial.print("]  POP/ID ["); Serial.print(_Slave_Ports_queue_pop); Serial.println("]  ");
+                            Serial.print("]  TASK_TYPE_A["); Serial.print(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A);
+                            Serial.print("]  Will wait() to next ["); Serial.print(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].time_seq_id);
+                            Serial.print("]  #["); Serial.print(Slave_Ports_ATTR_QUEUE_PEEK_A);  Serial.print("]  ID["); Serial.print(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].QUEUE_ID_A);  Serial.println("]  ");  
                             _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , 
-                                Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A,
-                                Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_PORT_ASSOC_A,
-                                Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_seq_id,
-                                Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_min_run,
-                                Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].DISPLAY_ARDUINO_ARRAY_INDEX_A
+                                Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A,
+                                Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_PORT_ASSOC_A,
+                                Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].time_seq_id,
+                                Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].time_min_run,
+                                Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].DISPLAY_ARDUINO_ARRAY_INDEX_A
                               );
-                              Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop]={} ; 
+                               Serial.print("[WILL DELETE REC]     millis()["); Serial.print(millis());
+                              Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A]={} ; 
 
-                     } else if(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A == TASK_TYPE_T_Slave_Ports_ttl_decrement) {
+
+                        //TODO CALL STORAGE ROUND ROBIN
+            
+                     } else if(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A == TASK_TYPE_T_Slave_Ports_ttl_decrement) {
                             
-                                      Serial.print("#224 running _Slave_Ports_ttl_decrement = ");     Serial.println( Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A); Serial.println("]");     
+                                      Serial.print("#224 running _Slave_Ports_ttl_decrement = ");     Serial.println( Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A); Serial.println("]");     
                                       //#include "_Slave_Ports_ttl_decrement.h"
-                                      _Slave_Ports_ttl_decrement_POP(Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,  _Slave_Ports_queue_pop ,  Slave_Ports_Status_A ) ;  
-                                    Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop]={} ;  
-                                      
-                     } else if(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A == TASK_TYPE_T_Slave_Ports_broadcast____) {
-                                      Serial.print("#337 running _Slave_Ports_broadcast = ");     Serial.println( Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A); Serial.println("]");     
+                                      _Slave_Ports_ttl_decrement_POP(Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,  Slave_Ports_ATTR_QUEUE_PEEK_A ,  Slave_Ports_Status_A ) ;  
+                                    Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A]={} ;  
+                                      //TODO STORAGE
+                     } else if(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A == TASK_TYPE_T_Slave_Ports_broadcast____) {
+                                      Serial.print("#337 running _Slave_Ports_broadcast = ");     Serial.println( Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A); Serial.println("]");     
                                      // #include "_Slave_Ports_ttl_decrement.h"
                                      _Slave_Ports_broadcast_POP(                                     
                                                  Slave_Ports_Status_QUEUE_A, 
                                                  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                                 _Slave_Ports_queue_count, 
-                                                 _Slave_Ports_queue_pop, 
-                                                 _Slave_Ports_queue_front, 
-                                                 _Slave_Ports_queue_back,
-                                                 _Slave_Ports_queue_peek,
+                                                 Slave_Ports_ATTR_QUEUE_COUNT_A, 
+                                                 Slave_Ports_ATTR_QUEUE_PEEK_A, 
+                                                 Slave_Ports_ATTR_QUEUE_FRONT_A, 
+                                                 Slave_Ports_ATTR_QUEUE_BACK_A,
+                                                 Slave_Ports_ATTR_QUEUE_PEEK_A,
                                                  LCDtim,   
                                               Slave_Ports_Status_A ,
                                               Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
@@ -230,11 +280,11 @@ Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDU
                                             DISPLAY_PHYSICAL_CHAR_A
                                             */
                                             ) ;
-                                      Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop]={} ;   
-                     } else if(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A == TASK_TYPE_T_DISPLAY_queue_pop________ ) {
-                       Serial.print("#212 DISPLAY TASK_TYPE_A[");     Serial.print( Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A);
+                                      Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A]={} ;    //todo storage
+                     } else if(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A == TASK_TYPE_T_DISPLAY_queue_pop________ ) {
+                       Serial.print("#212 DISPLAY TASK_TYPE_A[");     Serial.print( Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A);
                              Serial.println("] ");   
-                        _Slave_Ports_queue_task_type_DESC(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A) ;
+                        _Slave_Ports_queue_task_type_DESC(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A) ;
                      
                             
                                // #include "_DISPLAY_queue_pop_func.h"
@@ -242,27 +292,27 @@ Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDU
                                                     DISPLAY__print( DISPLAY_A ,
                                                     DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
                                                     DISPLAY_PHYSICAL_CHAR_A, 
-                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].DISPLAY_ARDUINO_ARRAY_INDEX_A].DISPLAY_pos_seq_A,
-                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].DISPLAY_ARDUINO_ARRAY_INDEX_A].DISPLAY_array16_A,
-                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].DISPLAY_ARDUINO_ARRAY_INDEX_A].DISPLAY_TARGET_A,
-                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].DISPLAY_ARDUINO_ARRAY_INDEX_A].time_seq_id_A,
-                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].DISPLAY_ARDUINO_ARRAY_INDEX_A].time_min_run_A,
+                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].DISPLAY_ARDUINO_ARRAY_INDEX_A].DISPLAY_pos_seq_A,
+                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].DISPLAY_ARDUINO_ARRAY_INDEX_A].DISPLAY_array16_A,
+                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].DISPLAY_ARDUINO_ARRAY_INDEX_A].DISPLAY_TARGET_A,
+                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].DISPLAY_ARDUINO_ARRAY_INDEX_A].time_seq_id_A,
+                                                    DISPLAY_A[Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].DISPLAY_ARDUINO_ARRAY_INDEX_A].time_min_run_A,
                                                     //queue
                                                     Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                                    Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A,
-                                                    Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_PORT_ASSOC_A);
+                                                    Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A,
+                                                    Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_PORT_ASSOC_A);
                                                                            
-                                        Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop]={} ;  
-                                        Serial.print("#201 DELETED DISPLAY TASK_TYPE_A #[");     Serial.print( _Slave_Ports_queue_pop);
+                                        Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A]={} ;   //todo storage
+                                        Serial.print("#201 DELETED DISPLAY TASK_TYPE_A #[");     Serial.print( Slave_Ports_ATTR_QUEUE_PEEK_A);
                                         
                                         
-                      } else if(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A == TASK_TYPE_T_Slave_Ports_set_I2C______) {
-                                      Serial.print("#221 running TASK_TYPE_T_Slave_Ports_set_I2C______ = ");     Serial.println( Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A); Serial.println("]");     
+                      } else if(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A == TASK_TYPE_T_Slave_Ports_set_I2C______) {
+                                      Serial.print("#221 running TASK_TYPE_T_Slave_Ports_set_I2C______ = ");     Serial.println( Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A); Serial.println("]");     
                                       //#include "_Slave_Ports_ttl_decrement.h"
                                       _Slave_Ports_I2C_POP(
                                         //Slave_Ports_Status_QUEUE_A, _Slave_Ports_queue_pop ,  Slave_Ports_Status_A 
                                          Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                         _Slave_Ports_queue_pop ,  
+                                         Slave_Ports_ATTR_QUEUE_PEEK_A ,  
                                          Slave_Ports_Status_A,
                                           Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
                                            //display
@@ -272,27 +322,28 @@ Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDU
                                                  DISPLAY_pos_seq_A_NEXT, //initial set
                                                  "#233 Setting I2C" , //DISPLAY_array16_A,
                                                   DISPLAY_TARGET_ANY , //DISPLAY_TARGET_A, - setting
-                                                  Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_seq_id, 
-                                                  Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].time_min_run,
+                                                  Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].time_seq_id, 
+                                                  Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].time_min_run,
                                              //tasks
-                                               Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A,
-                                               Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_PORT_ASSOC_A,
+                                               Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A,
+                                               Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_PORT_ASSOC_A,
                                                 Adafruit_PWMServoDriver_A
                                         ) ;  
-                                         Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop]={} ;  
+                                         Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A]={} ;   //todo storage
                      } else {
 
-                             Serial.print("$177 Error unsupported type TASK_TYPE_A[");     Serial.print( Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A);
-                             _Slave_Ports_queue_task_type_DESC(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A) ;
+                             Serial.print("$177 Error unsupported type TASK_TYPE_A[");     Serial.print( Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A);
+                             _Slave_Ports_queue_task_type_DESC(Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A) ;
                              Serial.println("] REASSIGN NEXT QUEUE FOR FURTHER ACTION");     
                              _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A,
-                                Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_PORT_ASSOC_A,
+                                Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_TYPE_A,
+                                Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].TASK_PORT_ASSOC_A,
                                 millis(), 
                                 millis() +  ARDUINO_time_seq_id_A_INCREMENT ,
-                                Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].DISPLAY_ARDUINO_ARRAY_INDEX_A
+                                Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A].DISPLAY_ARDUINO_ARRAY_INDEX_A
                               );
-                              Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop]={} ;  
+                              Slave_Ports_Status_QUEUE_A[Slave_Ports_ATTR_QUEUE_PEEK_A]={} ;  
+                              //TODO STORAGE
                      }
 
                     
@@ -327,11 +378,11 @@ Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDU
     Serial.print(" #364 scount "); 
      Serial.print(_Slave_Ports_queue_count); 
      Serial.print(" _Slave_Ports_queue.front(): "); 
-     Serial.print(_Slave_Ports_queue_front); 
+     Serial.print(Slave_Ports_ATTR_QUEUE_FRONT_A); 
      Serial.print(" _Slave_Ports_queue.back(): "); 
-     Serial.print(_Slave_Ports_queue_back); 
+     Serial.print(Slave_Ports_ATTR_QUEUE_BACK_A); 
      Serial.print(" _Slave_Ports_queue.peek(): "); 
-     Serial.println(_Slave_Ports_queue_peek); 
+     Serial.println(Slave_Ports_ATTR_QUEUE_PEEK_A); 
      */
 //     LCD_print(LCDarray1, LCDarray2, LCDtim / 3 ) ;
   }

+ 188 - 0
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_QUEUE_struct.h

@@ -36,6 +36,194 @@ static Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T Slave_Ports_Status_QUEUE_
     ;
     
 
+ARDUINO_FUNC_STATIC_ID_COUNTER_T Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER_T(){
+    static int ARDUINO_FUNC_STATIC_ID_COUNTER_A =  ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
+        return ARDUINO_FUNC_STATIC_ID_COUNTER_A++ ;
+}
+
+//PUSH = ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A & ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD & ARDUINO_ARRAY_ATTR_QUEUE_FRONT
+//POP = ARDUINO_ARRAY_ATTR_QUEUE_PEEK & ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD
+void Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER(
+        ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T& ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A,
+        ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T& ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ,
+        ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T& ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ,
+        ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_A ,
+        ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A,
+        ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A
+        ){
+        static ARDUINO_ARRAY_ATTR_QUEUE_T ARDUINO_ARRAY_ATTR_QUEUE_A = {
+             ARDUINO_ARRAY_INDEX_LIMIT_QUEUE,
+             ARDUINO_ARRAY_ATTR_QUEUE_COUNT_INIT ,
+             ARDUINO_ARRAY_ATTR_QUEUE_PEEK_INIT ,
+             ARDUINO_ARRAY_ATTR_QUEUE_BACK_INIT ,
+             ARDUINO_ARRAY_ATTR_QUEUE_FRONT_INIT
+        };
+        
+        
+        static ARDUINO_ARRAY_QUEUE_TABLE_T Slave_Ports_Status_QUEUE_TABLE_A[ARDUINO_ARRAY_INDEX_LIMIT_QUEUE] ;
+        
+        // int tokens[ARDUINO_ARRAY_INDEX_LIMIT_QUEUE] ;
+        /* template
+         //ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A
+            ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A
+            ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A
+            ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A
+            ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A
+        */
+        
+        int i;
+        int oldest ;
+        if(ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A & (ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD | ARDUINO_ARRAY_ATTR_QUEUE_FRONT)) {
+         Serial.print(" [PUSH] ");
+                if((ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A + 1) >= ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A) {
+                        ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A = ARDUINO_ARRAY_INDEX__next__looop(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A,   ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A);
+                        ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A = ARDUINO_ARRAY_INDEX__next__looop(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A,   ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A);
+                } else {
+                    ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A++;
+                    ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A = ARDUINO_ARRAY_INDEX__next__looop(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A,   ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A);
+                    
+                }
+                
+                ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A = ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ;
+                ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A = ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A ;
+                ARDUINO_ARRAY_ATTR_QUEUE_BACK_A = ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A ;
+        } 
+        
+         if(ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A & (ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD | ARDUINO_ARRAY_ATTR_QUEUE_BACK) {
+          Serial.print(" [POP] ");
+                    if(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A == ARDUINO_ARRAY_INDEX__next__looop(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A,  ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A )) { //jak kolejka mala to nie wchodzimy na siebie
+                      Serial.print("  [EMPTY] "); 
+                      ARDUINO_ARRAY_ATTR_QUEUE_BACK_A = 0;
+                    } else if( ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A > 1) {
+                            ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A--;
+                            ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A = ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A ; 
+                            ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A = ARDUINO_ARRAY_INDEX__next__looop(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A,  ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A );
+                            
+                    }
+         }
+        
+
+        Serial.print("  [CNT= ");  Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A); Serial.print("]   ");
+        Serial.print("  [FRONT "); Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A); Serial.print("]   ");
+        Serial.print("  [BACK ");  Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_BACK_A); Serial.print("]   ");
+        Serial.print("  [PEEL ");  Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_BACK_A); Serial.print("]   ");
+          Serial.println();
+        //push            
+            
+               /*     
+                      //ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A
+                     ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A
+                     ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A
+                     ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A
+                     ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A
+            
+            
+           */
+        
+        
+        
+        
+        
+        
+        /*
+    Serial.println("[#61][Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER_T]   ");
+      if(ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A & ARDUINO_ARRAY_ATTR_QUEUE_ACTION_SET) {
+        Serial.print(" [SET] ");
+                  if(ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A & ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX) {
+                  
+                      Serial.print(" [COUNT_MAX]  < [???]"); Serial.print( ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A); Serial.print("]    ") ;
+                      
+                      if(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A == ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_INIT) {
+                                Serial.print("[OK]");
+                                ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A = ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A ;
+                      } else {
+                                Serial.print(" [ERROR]  >[ISSET]>  ["); Serial.print( ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A ); Serial.print("]    ") ;
+                      }
+                      
+                      
+                  }
+        
+      } else  if(ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A & ARDUINO_ARRAY_ATTR_QUEUE_ACTION_GET) { 
+            if(ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A & ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX) {
+                 Serial.print(" [COUNT_MAX] > ");    Serial.print( ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A); Serial.print("]    ") ; 
+                 
+                 ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A  = ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A ;
+                 
+             } 
+      } else if(ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A & (ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD | ARDUINO_ARRAY_ATTR_QUEUE_FRONT)) {
+              Serial.print(" [ADD]  [PEEK]=[PUSH] >>?"); 
+             
+                if(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A == ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_INIT) {
+                     Serial.print(" [ERROR]  >[NOT SET]>  COUNT_MAX_A["); Serial.print( ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A ); Serial.print("]    ") ;
+                } else {
+                        Serial.print(" [ANALYZE] ");  Serial.print("]    ") ;
+                        //organize queue 
+                        //jezeli jest wolne miejsce z przodu od PEEK
+                        if((ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A + 1)
+                            < ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A) //jezeli kolejka lacznie nie jest za duza
+                         Serial.print(" [AVIALABLE] [SIZE] ");  Serial.print("]  ") ;
+                             if((ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A + 1) 
+                                < ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A  ) {
+                                 Serial.print(" [AVIALABLE] [NEXT] "); 
+                                 //zapamietujemy wskaznik na ostatnioego nie obsluzonego - back
+                                 //usatwiamy wskaznik na nowego do obsluzenia
+                                     ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A++ ; Serial.print("[PEEK][CONSTANS] [") ; Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A) ; Serial.print("] ") ;                                     
+                                     ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A++ ;Serial.print("[++COUNT] [") ; Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A) ; Serial.print("] ") ;
+                                     Serial.print("[FRONT][++] OR [LOOP] ?") ; Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A) ; Serial.print("] ") ;
+                                     
+                                     
+                                     
+                                      Serial.print("[BACK CONST] [jest miejsce w kolejce wiec nie kasujemy]  [") ; Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A ) ; Serial.print("] ") ;
+                                         if((ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A + 1) >= ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A) {
+                                                Serial.print("[FRONT][LOOP] [= laduje do peek ostatniego]");
+                                               ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A = ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ;
+                                                    Serial.print( ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A  ) ; Serial.print("] ") ;
+                                                    Serial.print("[PEEK][++] ");
+                                                 if((ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A + 1 )>= ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A ) {
+                                                     Serial.print("[PEEK][++][LOOP][na pewno jeden wyzej jest ok][= INIT] ");
+                                                     ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A = ARDUINO_ARRAY_INDEX_FIRST ;
+                                                      Serial.print( ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ) ; Serial.print("] ") ;
+                                                 } else {
+                                                    Serial.print("[PEEK][++][na pewno jeden wyzej jest ok] ");
+                                                    ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A++;  
+                                                    Serial.print( ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ) ; Serial.print("] ") ;
+                                                    
+                                                 }
+                                         }
+                                         
+                                     Serial.print("[FRONT ++] [") ; Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A) ; Serial.print("] ") ;
+                                     
+                                     
+                                     
+                                    
+                                   
+                                     
+                                      Serial.print(" ") ; Serial.print(" ") ;
+                                } else {//if avoable next
+                                Serial.print(" [UNAVIABLE] [NEXT] "); Serial.print(" [WILL_DESTROY][PEEK] "); Serial.print(" [OLDESTT]==[CURRENT] ["); Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A); Serial.print("]  "); 
+                                    //look for last pop
+                                    Serial.print(" [COUNT][KEEP][ "); Serial.print(" [COUNT][KEEP][ "); Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A); Serial.print("]  ");   
+                                    Serial.print(" [NEXT][ARDUINO_ARRAY_INDEX_FIRST]["); Serial.print(ARDUINO_ARRAY_INDEX_FIRST);  Serial.print("]  ");
+                                    Serial.print(" [BACK][QUEUE_SIZE]["); 
+                                            ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A = ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A ;
+                                            Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A);  Serial.print("]  "); 
+                                    Serial.print(" [FRONT][QUEUE_SIZE][");
+                                    //ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ,
+                                    
+                                    //ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A=
+                                }
+                        
+                
+                
+                        } //aviable size  
+             
+             } else if(ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A & (ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD | ARDUINO_ARRAY_ATTR_QUEUE_PEEK)) {
+                 Serial.print(" [ADD] [PEEK] == [PUSH]   current["); Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A); Serial.print("]  need to set pointer no next NOW [CAN LOOP]");  
+                 if((ARDUINO_ARRAY_ATTR_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ) + 1)
+             } else  Serial.print(" [#109 ELSE] "); Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_A, BIN); Serial.print("]");
+ Serial.println("");    
+ */
+}
 
 /*
 

+ 1 - 1
SE/stuff/P5_Automation_can-dev-res/___CONFIG/0x101/config_Active_ControllerID_0x101.h

@@ -9,7 +9,7 @@
 
 #//define DEBUG 5 
 
-//#define DISABLE_LOOP //To debug and disable any output
+#define DISABLE_LOOP //To debug and disable any output
 
 #define DEBUG_I2C
 //#define HAS_DEBUG_ACTION_TRIG

+ 102 - 0
SE/stuff/P5_Automation_can-dev-res/___DEBUG/0x101/___DEBUG_DISABLE_LOOP__0x101.h

@@ -1,4 +1,106 @@
 
+//if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END(ARDUINO_LOOP_LATENCY__MAIN_END_A) <= ARDUINO_LOOP_LATENCY_COUNTER_INIT )  {
+
+static int tested = 0;
+
+
+    
+    /*
+        Serial.println("11123123");
+TEST_QUEUE.push(10);
+
+TEST_QUEUE.push(10);
+ Serial.println("WILL POP");
+     Serial.println(TEST_QUEUE.pop());
+ }
+ */
+
+
+if(tested == 0) { 
+
+
+Serial.println("#45 testing Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER_T");
+
+
+
+ ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T QUEUE_COUNT_MAX_A = 6;
+        ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T QUEUE_COUNT_A = 0;
+        ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T QUEUE_PEEK_A ;
+        ARDUINO_ARRAY_ATTR_QUEUE_BACK_T QUEUE_BACK_A ;
+        ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T QUEUE_FRONT_A;
+      
+        
+        Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER( 
+                            QUEUE_COUNT_MAX_A, 
+                            QUEUE_COUNT_A, QUEUE_PEEK_A, 
+                            QUEUE_BACK_A , QUEUE_FRONT_A,
+                            ARDUINO_ARRAY_ATTR_QUEUE_ACTION_SET | ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX
+        );
+        
+        
+        
+        
+        
+        
+}
+
+
+ else if(tested ==2) {
+  ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T QUEUE_COUNT_MAX_A = 20;
+        ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T QUEUE_COUNT_A = 0;
+        ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T QUEUE_PEEK_A ;
+        ARDUINO_ARRAY_ATTR_QUEUE_BACK_T QUEUE_BACK_A ;
+        ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T QUEUE_FRONT_A;
+
+    Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER( 
+                            QUEUE_COUNT_MAX_A, 
+                            QUEUE_COUNT_A, QUEUE_PEEK_A, 
+                            QUEUE_BACK_A , QUEUE_FRONT_A,
+                            ARDUINO_ARRAY_ATTR_QUEUE_ACTION_GET | ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX
+        );
+} else if(tested ==3) {
+  ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T QUEUE_COUNT_MAX_A = 30;
+        ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T QUEUE_COUNT_A = 0;
+        ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T QUEUE_PEEK_A ;
+        ARDUINO_ARRAY_ATTR_QUEUE_BACK_T QUEUE_BACK_A ;
+        ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T QUEUE_FRONT_A;
+
+    Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER( 
+                            QUEUE_COUNT_MAX_A, 
+                            QUEUE_COUNT_A, QUEUE_PEEK_A, 
+                            QUEUE_BACK_A , QUEUE_FRONT_A,
+                            ARDUINO_ARRAY_ATTR_QUEUE_ACTION_SET | ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX
+        );
+} else  if(tested >=4 and tested < 30) {
+
+ Serial.println("####5555");
+  ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T QUEUE_COUNT_MAX_A = 30;
+        ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T QUEUE_COUNT_A = 0;
+        ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T QUEUE_PEEK_A ;
+        ARDUINO_ARRAY_ATTR_QUEUE_BACK_T QUEUE_BACK_A ;
+        ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T QUEUE_FRONT_A;
+
+    Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER( 
+                            QUEUE_COUNT_MAX_A, 
+                            QUEUE_COUNT_A, QUEUE_PEEK_A, 
+                            QUEUE_BACK_A , QUEUE_FRONT_A,
+                            ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD | ARDUINO_ARRAY_ATTR_QUEUE_FRONT
+        );
+        
+        
+        if(tested % 3 == 0) {
+            Serial.println("####666  stopniowe popowanie");
+                    Slave_Ports_Status_QUEUE_STATIC_ID_COUNTER( 
+                                       QUEUE_COUNT_MAX_A, 
+                                       QUEUE_COUNT_A, QUEUE_PEEK_A, 
+                                       QUEUE_BACK_A , QUEUE_FRONT_A,
+                                       ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD | ARDUINO_ARRAY_ATTR_QUEUE_BACK
+                   );
+        }
+}
+
+tested++;        
+//}
 
    /* Adafruit_PWMServoDriver_0X40.setPWM(2, 1024, 2500);
    Adafruit_PWMServoDriver_0X40.setPWM(3, 1024, 2500);

+ 8 - 6
SE/stuff/P5_Automation_can-dev-res/___loop/__main_loop_end.h

@@ -16,11 +16,12 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END(ARDUINO_LOOP_LATENCY__MAIN_END_A) <= A
        
             
              _Slave_Ports_queue__list(Slave_Ports_Status_QUEUE_A,Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A) ;
-              int _Slave_Ports_queue_count = _Slave_Ports_queue.count();
+            /*  int _Slave_Ports_queue_count = _Slave_Ports_queue.count();
               int _Slave_Ports_queue_front = _Slave_Ports_queue.front();
               int _Slave_Ports_queue_back =  _Slave_Ports_queue.back();
               int _Slave_Ports_queue_peek = _Slave_Ports_queue.peek();
               int _Slave_Ports_queue_pop = _Slave_Ports_queue.pop();
+              */
               #ifdef DISABLE_LOOP || DEBUG
                 if(DEBUG_ACTION_TRIG != DEBUG_LAST_ACTION_TRIG)   {
                     Serial.print("#14 main_loop_end  will    _Slave_Ports_queue__POP   _Slave_Ports_queue_count[");   Serial.print(_Slave_Ports_queue_count); Serial.println("] ");
@@ -29,11 +30,12 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END(ARDUINO_LOOP_LATENCY__MAIN_END_A) <= A
              _Slave_Ports_queue__POP(
                      Slave_Ports_Status_QUEUE_A, 
                      Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                    _Slave_Ports_queue_count, 
-                    _Slave_Ports_queue_pop, 
-                    _Slave_Ports_queue_front, 
-                    _Slave_Ports_queue_back,
-                    _Slave_Ports_queue_peek,
+                   /* GARBAGE_TO_REMOVE_ASSOC_EMPTY , //_Slave_Ports_queue_count, 
+                    GARBAGE_TO_REMOVE_ASSOC_EMPTY , //_Slave_Ports_queue_pop, 
+                    GARBAGE_TO_REMOVE_ASSOC_EMPTY , //_Slave_Ports_queue_front, 
+                    GARBAGE_TO_REMOVE_ASSOC_EMPTY, //_Slave_Ports_queue_back,
+                    GARBAGE_TO_REMOVE_ASSOC_EMPTY,// _Slave_Ports_queue_peek,
+                   */
                     LCDtim, 
                     
                             Slave_Ports_Status_A ,

+ 63 - 0
SE/stuff/P5_Automation_can-dev-res/___main/__main_struct.h

@@ -25,6 +25,10 @@ The example above defines two variables with in the same storage class.
 
 
 //GLOBAL TYPES
+typedef int GARBAGE_TO_REMOVE_ASSOC_T ; //Old not usable pointer to remove
+const GARBAGE_TO_REMOVE_ASSOC_T GARBAGE_TO_REMOVE_ASSOC_EMPTY = 0 ;
+
+typedef byte ARDUINO_OPTIONS_T ; 
 
 typedef int  ARDUINO_SIZE_T ; //for display etc
 
@@ -36,8 +40,13 @@ typedef boolean  ARDUINO_STATE_T ; //for states of ports etc
 
 typedef ARDUINO_SIZE_T  ARDUINO_SIZE_MIN_T ; //for display etc
 typedef ARDUINO_SIZE_T  ARDUINO_SIZE_MAX_T ; //for display etc
+typedef int ARDUINO_FUNC_STATIC_ID_COUNTER_T ;   //for static function couter
+
+
 
 
+const ARDUINO_FUNC_STATIC_ID_COUNTER_T ARDUINO_FUNC_STATIC_ID_COUNTER_INIT = 0 ;
+
 typedef int ARDUINO_LOOP_LATENCY_T;
 typedef int ARDUINO_LOOP_LATENCY_COUNTER_T; //WILL increment
 const ARDUINO_LOOP_LATENCY_COUNTER_T ARDUINO_LOOP_LATENCY_COUNTER_INIT = 1 ; //
@@ -64,6 +73,48 @@ typedef long ARDUINO_ARRAY_time_min_run_MIN_T ;
 typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_time_min_run_MIN_T ; 
 
 
+
+
+//DO OBSLUGI KOLEJEK
+typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T ;
+typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ;
+typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ;
+typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ;
+typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ;
+
+
+
+struct ARDUINO_ARRAY_ATTR_QUEUE_S {
+    ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A;
+    ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ;
+    ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ;
+    ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_A ;
+    ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A;
+    
+};
+
+typedef ARDUINO_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T; //     [#109 ELSE] 100100]
+const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_ACTION_GET = B00000001 ;
+const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_ACTION_SET = B00000010 ;
+const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD = B00000100 ; //add back == pop
+const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX  = B00001000 ;
+const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT      = B00010000 ;
+const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK       = B00100000 ; //
+const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT      = B01000000 ; //newest set+read(add)
+const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_BACK       = B10000000 ;//add back == pop
+
+
+
+ 
+typedef struct ARDUINO_ARRAY_ATTR_QUEUE_S ARDUINO_ARRAY_ATTR_QUEUE_T ;
+
+const ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
+const ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_INIT         = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
+const ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_INIT           = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
+const ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_INIT           = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
+const ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_INIT         = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
+
+
 struct ARDUINO_ATTR_ARRAY_S {
     ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A ;
     ARDUINO_ARRAY_INDEX_LAST_T ARDUINO_ARRAY_INDEX_LAST_A ;
@@ -91,7 +142,19 @@ struct ARDUINO_ARRAY_ASSOC_TABLE_S {  //to associate and cache
    ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ; //indexed name of sth
 };
 
+typedef byte ARDUINO_QUEUE_FLAG_T  ;
+const ARDUINO_QUEUE_FLAG_T  ARDUINO_QUEUE_FLAG_TO_POP   = B00000001 ;  //current element
+const ARDUINO_QUEUE_FLAG_T  ARDUINO_QUEUE_FLAG_POPPED   = B00000010 ; 
+const ARDUINO_QUEUE_FLAG_T  ARDUINO_QUEUE_FLAG_LOCKED   = B00000100 ;
+const ARDUINO_QUEUE_FLAG_T  ARDUINO_QUEUE_FLAG_EMPTY    = B00001000 ; 
+
+struct ARDUINO_ARRAY_QUEUE_TABLE_S { //to controll elements - like deletion etc
+      ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ;
+      ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_T ;
+      //int ARDUINO_ARRAY_INDEX_A ;
+};
 
+typedef struct ARDUINO_ARRAY_QUEUE_TABLE_S ARDUINO_ARRAY_QUEUE_TABLE_T ;
 
 //typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_DRIVER
 

+ 12 - 0
SE/stuff/P5_Automation_can-dev-res/___main/__main_struct_funct.h

@@ -234,4 +234,16 @@ char DISPLAY_array16_I(char message[], int count){  //to provide messages concat
 }
 
 
+ARDUINO_ARRAY_INDEX_T  ARDUINO_ARRAY_INDEX__next__looop(
+     ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A ,
+     ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A
+          )  {
+        if(ARDUINO_ARRAY_INDEX_CURRENT_A + 1 >= ARDUINO_ARRAY_INDEX_LIMIT_A) {
+            return ARDUINO_ARRAY_INDEX_FIRST ;
+        } else {
+            return ARDUINO_ARRAY_INDEX_CURRENT_A + 1 ;
+        }
+        
+    
+}