Explorar o código

dziala na duzym

a.binder %!s(int64=5) %!d(string=hai) anos
pai
achega
8077b5066f

+ 7 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/P5_Automation_can-dev-res-working-1930.ino

@@ -346,6 +346,9 @@ const int DISPLAY_MENU_A__PROGMEM_CONSOLE_PRINT = 3 ;
 #include "Slave_Ports_Status__DISPLAY_TARGET.h"
 
 #include "TASK_TYPE_T_Set_Ports_Status_LIMITS_A__.h"
+#include "TASK_TYPE_T_Set_Ports_Status_ASSOC.h"
+ 
+
 
 #include "_CAN_func.h" //lite _CAN/
 
@@ -429,6 +432,10 @@ const int DISPLAY_MENU_A__PROGMEM_CONSOLE_PRINT = 3 ;
 void setup() {  //REMEMBER NOT INITIALIZE ANY VARIABLES OR ARRAYS
     Serial.begin(115200);
      Wire.begin();
+     
+      
+     
+     
         scan_h();
 ARDUINO_SETUP_DEF_T HAS_I2C_driver_Adafruit_PWMServoDriver_A = false;
 

+ 0 - 165
SE/stuff/P5_Automation_can-dev-res/__DISPLAY/_DISPLAY_add_record_func.h

@@ -1,165 +0,0 @@
-#if  defined(DISABLE_DISPLAY__add_record)
-#else
-   void DISPLAY__add_record(
-        DISPLAY_T* DISPLAY_A ,
-        DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-        DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
-            DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
-              #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                DISPLAY_string_T DISPLAY_string_A,
-               #else
-                DISPLAY_array16_T DISPLAY_array16_A,
-               #endif
-            
-            DISPLAY_TARGET_T DISPLAY_TARGET_A,
-            time_seq_id_T time_seq_id_A,
-            time_min_run_T time_min_run_A     
-            //QUEUE
-            ,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, 
-            TASK_TYPE_T TASK_TYPE_A,
-            TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A
-               
-                ) {
-                
-                             #if defined(DEBUG)
-                                                     Serial.print("#13444 DISPLAY__add_record[DEBUG] # BEFORE COUNT["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
-                                                      Serial.print("] INDEX_LAST["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
-                                                      Serial.print("] INDEX_CURRENT["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
-                                                      Serial.print("] NEXT_A["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
-                                                      Serial.print("] DISPLAY_array16_A["); Serial.print( DISPLAY_array16_A);
-                                                     Serial.println("]  ");
-                                      #endif   
-                
-                 ARDUINO_ARRAY_INDEX_CURRENT_T i = DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ;
-                         if(i == ARDUINO_ARRAY_INDEX_CORRUPT) {
-                            #if defined(DEBUG)
-                                Serial.print(" [#30 i == ARDUINO_ARRAY_INDEX_CORRUPT]  [");
-                                Serial.print(i);
-                                
-                            #endif 
-                                    DISPLAY_A[i]._queue_id  = 0; //current queue task
-                                    DISPLAY_A[i].DISPLAY_pos_seq_A = 0 ;
-                                    DISPLAY_A[i].DISPLAY_pos_id_A = 0 ;
-                                    
-                                    
-                                    #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                                        DISPLAY_A[i].DISPLAY_string_A = "";
-                                    #else
-                                         DISPLAY_A[i].DISPLAY_array16_A  ;
-                                    #endif
-                                    
-                                    DISPLAY_A[i].DISPLAY_TARGET_A  = 0 ; 
-                                    DISPLAY_A[i].time_seq_id_A = 0 ;
-                                    DISPLAY_A[i].time_min_run_A = 0 ;
-                                    
-                                    
-                                    ARDUINO_ATTR_ARRAY_S__commit_added_element(
-                                         DISPLAY_T_ARDUINO_ATTR_ARRAY_A , i); 
-                                         #if defined(DEBUG)
-                                              Serial.print(" [#43 ARDUINO_ATTR_ARRAY_S__commit_added_element]  ");
-                                               Serial.print("#47 ARDUINO_ARRAY_INDEX_CURRENT_A: [");
-                                             Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
-                                             Serial.print("] ");
-                                          #endif
-                                    
-                        }
-                        
-               i = DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A ; 
-               //DISPLAY_array16_T DISPLAY_array16_AA = 
-               
-               
-                /* String message = "" ;   
-                 DISPLAY_array16_T  DISPLAY_array16_AAT ;
-                 message.concat(DISPLAY_array16_A) ;
-                 message.toCharArray(DISPLAY_array16_AAT, 16);
-                 
-               */
-               //String(DISPLAY_array16_A).toCharArray(DISPLAY_A[i].DISPLAY_array16_A,16) ;
-               
-               //DISPLAY_array16_T DISPLAY_array16_AAA[16]="";
-                
-                 //DISPLAY_array16_T DISPLAY_array16_AA[16] ; //= {012345678901234" ;
-                 
-                 //String("12345678901234").toCharArray(DISPLAY_array16_AA);
-                // DISPLAY_array16_AA  = "012345678901234" ;
-                // char dupa[16]= "#50 Added ports ";
-                /*
-               String message16=String(DISPLAY_array16_A);
-               message16.concat(DISPLAY_array16_FILL_A);//("_____________________");
-               //message16.reserve(16);
-               //DISPLAY_array16_T
-               char DISPLAY_array16_AAAA[16];
-               message16.toCharArray(DISPLAY_array16_AAAA,16);
-               */
-            
-               
-              /* #ifdef DEBUG
-                Serial.print("#57 ["); Serial.print(message16);
-                Serial.print("] #82["); Serial.print(DISPLAY_array16_AAAA); Serial.println("] ");
-                 Serial.print("] #82A["); Serial.print(message16); Serial.println("] ");
-                 Serial.print("] #82B["); Serial.print(String(DISPLAY_array16_AAAA)); Serial.println("] ");
-                 
-                #endif*/
-               /* DISPLAY_A[i]._queue_id  = 0; //current queue task
-                DISPLAY_A[i].DISPLAY_pos_seq_A = DISPLAY_pos_seq_A ;
-                DISPLAY_A[i].DISPLAY_pos_id_A = 0 ;     
-                strcpy( DISPLAY_A[i].DISPLAY_array16_A , DISPLAY_array16_A);
-                */
-                
-                #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                 DISPLAY_A[i].DISPLAY_string_A = DISPLAY_string_A ;
-                #else
-                    memcpy( DISPLAY_A[i].DISPLAY_array16_A , DISPLAY_array16_A, 16);
-                #endif
-                
-                
-                //strcpy( DISPLAY_array16_A, DISPLAY_A[i].DISPLAY_array16_A );
-                //DISPLAY_A[i].DISPLAY_array16_A = DISPLAY_array16_AAAA ; // DISPLAY_array16_AAAA ;//"012345678901234" ;
-                // DISPLAY_array16_A ;
-                DISPLAY_A[i].DISPLAY_TARGET_A  = DISPLAY_TARGET_A ; 
-                #if defined(DEBUG)
-                Serial.print("#66 ");
-                #endif
-                    if(time_seq_id_A == 0 ) {
-                        DISPLAY_A[i].time_seq_id_A = time_seq_id_A ;
-                    } else {
-                       DISPLAY_A[i].time_seq_id_A = time_seq_id_A ;
-                    }
-                    
-                #if defined(DEBUG)
-                    Serial.print("#66 ");
-                #endif
-                if(time_min_run_A == 0 and not(time_seq_id_A == 0)) {
-                        DISPLAY_A[i].time_min_run_A = time_seq_id_A + ARDUINO_time_seq_id_A_INCREMENT;
-                } else {
-                        DISPLAY_A[i].time_min_run_A = time_min_run_A ;
-                }
-                ARDUINO_ATTR_ARRAY_S__commit_added_element(
-                DISPLAY_T_ARDUINO_ATTR_ARRAY_A , i); 
-               
-                          #if defined(DEBUG)
-                    // if(DEBUG > 6) {
-                                   Serial.print("#172 DISPLAY__add_record[DEBUG]  AFTER #COUNT["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
-                                    Serial.print("] INDEX_LAST["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
-                                    Serial.print("] INDEX_CURRENT["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
-                                    Serial.print("] NEXT_A["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
-                                   Serial.println("]  ");
-                             //      }
-                    #endif    
-                 
-                 
-              ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add_DISPLAY_T   ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add_DISPLAY_A = 
-                _Slave_Ports_queue__add( 
-                     Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
-                      TASK_TYPE_T_DISPLAY_queue_pop________ 
-                    ,TASK_PORT_ASSOC_EMPTY , time_seq_id_A, time_seq_id_A + ARDUINO_time_seq_id_A_INCREMENT ,
-                    DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
-                    ) ;  //"_Slave_Ports_set_I2C" //5  - to set ports associated on PW       
-                       
-                }
-        
-
-#endif
-
- 
-        

+ 0 - 736
SE/stuff/P5_Automation_can-dev-res/__DISPLAY/_DISPLAY_func.h

@@ -1,736 +0,0 @@
-//_DISPLAY_func.h
-
-/* #if defined(HAS_TFT_ILI9163C)
-                                    delay(LCDtim);  
-                                    DISPLAY_DEV.setCursor(0,60); 
-                                    DISPLAY_DEV.print(LCDarray1); DISPLAY_DEV.print(" "); DISPLAY_DEV.print(LCDarray2);
-                              #endif
-                              */
-                              
-                              
-//void _DISPLAY_print
-
-
-void DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                         DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
-                        DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
-                         #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                            DISPLAY_string_T DISPLAY_string_A
-                           #else
-                            DISPLAY_array16_T DISPLAY_array16_A
-                           #endif
-                        
-                        
-                        ){
-              
-                        #if defined(DEBUG)
-                                if(DEBUG > 6) {
-                                    Serial.print("#20 DsplY:[ "); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A); //[ARDUINO_ATTR_ARRAY_S_INDEX]
-                                    Serial.print("] # MaxY:["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A); //[ARDUINO_ATTR_ARRAY_S_INDEX]
-                                     Serial.println("] ");
-                                   }
-                                   
-                                     Serial.print("#26 Dspl ATTR CURRENT[ "); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
-                                     Serial.print("] LAST["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A); 
-                                     Serial.print("] COUNT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A); 
-                                     Serial.print("] LIMIT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A); 
-                                     Serial.print("]  NEXT:["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A); 
-                                     Serial.println("] ");
-                            #endif 
-                
-                 #if defined(HAS_TFT_ILI9163C)
-                       
-                 #endif
-                     #if defined(DEBUG)
-                        if(DEBUG > 6) {
-                             Serial.print(" [HAS_TFT_ILI9163C] ");
-                               Serial.print(" 27[DEBUG] ");
-                           }
-                    #endif 
-                Serial.println("] "); 
-              
-                //todo position current   
-                //todo positions max
-                    #if defined(HAS_TFT_ILI9163C)
-                            DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A,
-                             #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                                 DISPLAY_string_A,
-                                #else
-                                    DISPLAY_array16_A,
-                            #endif
-                             DISPLAY_pos_seq_A) ;
-                    #else 
-                
-                  //      Serial.println(DISPLAY_array16_A);
-                  
-                    #endif
-                  
-                    #if defined(DEBUG)
-                            //Serial.end(); 
-                            //delay(100);
-                            //Serial.write(" 72[DEBUG] ");
-                    #endif    
-                
-        }
-
-
-
-void DISPLAY__print_IMMEDIATE(
-    DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A, 
-    DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
-     DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
-      #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-        DISPLAY_string_T DISPLAY_string_A,
-       #else
-        DISPLAY_array16_T DISPLAY_array16_A,
-       #endif
-      DISPLAY_TARGET_T DISPLAY_TARGET_A) {
-        
-        if(DISPLAY_TARGET_A & DISPLAY_TARGET_DISPLAY128){ //BIN TEST
-        
-                    #if defined(HAS_TFT_ILI9163C)
-                                #if defined(DEBUG)
-                                            if(DEBUG > 6) {
-                                                    String message(DISPLAY_array16_A);
-                                                   Serial.print("#69A DISPLAY__print_IMMEDIATE [DEBUG] to HAS_TFT_ILI9163C  Len["); Serial.print( message.length());
-                                                     Serial.print("] XM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_CHARS_A);
-                                                     Serial.print("] YM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A);
-                                                     Serial.print("] YC["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A);
-                                                    Serial.print("] YF["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A);
-                                                   Serial.println("]  ");
-                                                }
-                                           #endif
-                            DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A, 
-                            #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                                DISPLAY_string_A,
-                               #else
-                                DISPLAY_array16_A,
-                           #endif
-                            
-                            DISPLAY_pos_seq_A) ;
-                    #else 
-                
-                        
-                  
-                    #endif
-                             //   DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, DISPLAY_array16_A);     
-          } else if(DISPLAY_TARGET_A & DISPLAY_TARGET_ANY){ //BIN TEST
-                                        #if defined(DEBUG)
-                                                if(DEBUG > 6) {
-                                                   Serial.print("#69B DISPLAY__print_IMMEDIATE [DEBUG] to DISPLAY__print_ANY  Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
-                                                    Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
-                                                   Serial.println("]  ");
-                                                  }
-                                           #endif
-                                DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A,
-                                  #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                                     DISPLAY_string_A
-                                    #else
-                                    DISPLAY_array16_A
-                                    #endif
-                                 );     
-          } else {
-                              #if defined(DEBUG)
-                                    if(DEBUG > 6) {
-                                        Serial.print("#68 DISPLAY__print_IMMEDIATE [DEBUG]  else  Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
-                                         Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
-                                        Serial.println("]  ");
-                                    }
-                                #endif  
-          }
-
-}
-
-        
-#if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-    #else        
-        
-    void DISPLAY__print_loop(DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A,
-               DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ,
-        String message,
-        int message_len, 
-        DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_A
-    ) { //to print while in loop
-        const int DISPLAY__print_loop_INDEX_LIMIT_A = 5;
-        static int DISPLAY__print_loop_INDEX_CURRENT_A = 0 ;
-        static int DISPLAY__print_loop_QUEUE_PEEK_A = 0 ;
-        static  DISPLAY__print_loop_T  DISPLAY__print_loop_A[5]={} ;
-       
-        if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_ADD) {
-            if((DISPLAY__print_loop_INDEX_CURRENT_A  + 1) <= DISPLAY__print_loop_INDEX_LIMIT_A) {
-                
-                DISPLAY__print_loop_INDEX_CURRENT_A ++ ;
-                if(DISPLAY__print_loop_QUEUE_PEEK_A == 0 ) {
-                 DISPLAY__print_loop_QUEUE_PEEK_A = DISPLAY__print_loop_INDEX_CURRENT_A  ;
-                }
-                DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_X_CHARS_A = DISPLAY_CURSOR_X_CHARS_A ;
-                DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_Y_CHARS_A = DISPLAY_CURSOR_Y_CHARS_A ;
-                DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message_len = message_len ;
-                //strcpy(DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message, message );
-                DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message = message ;
-            }
-              Serial.print("#137[DISPLAY__print_loop][ADD] [i][");Serial.print(DISPLAY__print_loop_INDEX_CURRENT_A); Serial.println("] ");
-        } else if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_POP)  {
-            Serial.print("#137[DISPLAY__print_loop][POP] [i][");Serial.print(DISPLAY__print_loop_INDEX_CURRENT_A); Serial.print("] p[");Serial.print(DISPLAY__print_loop_QUEUE_PEEK_A); Serial.print("] ");
-              if(DISPLAY__print_loop_QUEUE_PEEK_A > 0 ) {
-                DISPLAY_DEV.setCursor(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_X_CHARS_A * DISPLAY_textsize_x_A,
-                   DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_textsize_y_A);
-                 #if defined(ENABLE_DISPLAY_MENU)
-                 #else
-                   DISPLAY_DEV.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message);
-                   Serial.print(" msg["); Serial.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message); Serial.print("] ");
-                 #endif
-                   
-                   
-               } else {
-                Serial.print(" [PEEK][EMPTY] ");
-               }
-               Serial.println("] ");
-        }
-      
-    }
-#endif
-
- void DISPLAY__print(
-        DISPLAY_T* DISPLAY_A ,
-        DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-        DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
-        DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
-        
-        #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-            DISPLAY_string_T DISPLAY_string_A,
-          #else
-            DISPLAY_array16_T DISPLAY_array16_A,
-        #endif
-        DISPLAY_TARGET_T DISPLAY_TARGET_A,
-        time_seq_id_T time_seq_id_A,
-        time_min_run_T time_min_run_A
-        //queue
-        ,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,
-        TASK_TYPE_T TASK_TYPE_A,
-        TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A
-                )
-                {
-                
-                    #ifdef DEBUG_DISPLAY
-                    Serial.print("127 DISPLAY__print DISPLAY_pos_seq_A["); Serial.print(BIN8_to_STRING(DISPLAY_pos_seq_A ));
-                        Serial.print("]  DISPLAY_TARGET_A["); Serial.print(BIN8_to_STRING(DISPLAY_TARGET_A )); Serial.print("]      [");
-                            Serial.print("#26 Dspl ATTR CURRENT[ "); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
-                                     Serial.print("] LAST["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A); 
-                                     Serial.print("] COUNT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A); 
-                                     Serial.print("] LIMIT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A); 
-                                     Serial.print("]  NEXT:["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A); 
-                                     Serial.println("] ");
-                    #endif
-                    
-                    if(DISPLAY_pos_seq_A & DISPLAY_pos_seq_A_IMMEDIATE){ ////BIN TEST
-                            #if defined(DEBUG_DISPLAY)
-                                    //if(DEBUG > 6) {
-                                        Serial.print("#84 DISPLAY__print to DISPLAY__print_IMMEDIATE [DEBUG]  else  Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
-                                        Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN); 
-                                        
-                                        Serial.println("]  ");
-                                    // }
-                                #endif  
-                           DISPLAY__print_IMMEDIATE(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A,  
-                           #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                            DISPLAY_string_A,
-                            #else
-                             DISPLAY_array16_A,
-                            #endif
-                             DISPLAY_TARGET_A);
-                                     // Serial.print("#28 running _Slave_Ports_ttl_decrement = ");
-                
-                    } else {
-                         // #if defined(DEBUG)
-                                 Serial.print("#88 DISPLAY__print [DEBUG]  else  "); Serial.print(DISPLAY_pos_seq_A , BIN);
-                                 Serial.println("]  ");
-                        // #endif    
-                         
-                    #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
-                     Serial.print("#167 DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________");
-                    #else     
-                      
-                       Serial.print("#253 TODO WHY ? BIN DISPLAY_pos_seq_A["); Serial.print(DISPLAY_pos_seq_A, BIN);
-                             Serial.print("]& IMM ["); Serial.print(DISPLAY_pos_seq_A_IMMEDIATE, BIN); Serial.print("] res[") ; Serial.print((DISPLAY_pos_seq_A & DISPLAY_pos_seq_A_IMMEDIATE) , BIN ) ;
-                              Serial.print(" ] String [") ; Serial.print(DISPLAY_string_A); Serial.print("] "); 
-                    /*  DISPLAY__add_record(  DISPLAY_A ,
-                             DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                             DISPLAY_PHYSICAL_CHAR_A, 
-                             DISPLAY_pos_seq_A,
-                             #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                                  DISPLAY_string_A,
-                             #else
-                                 DISPLAY_array16_A,
-                            #endif
-                             DISPLAY_TARGET_A,
-                             time_seq_id_A,
-                             time_min_run_A
-                             //queue
-                             , Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                             TASK_TYPE_A,
-                             TASK_PORT_ASSOC_A
-                         ) ;
-                         */
-                      #endif 
-                    }
-}
-
-
-void DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
-                DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A 
-                ) {
-                
-                
-                    #if defined(HAS_TFT_ILI9163C)
-                            DISPLAY_DEV__CURSOR_Y_CHARS__SET(
-                                DISPLAY_PHYSICAL_CHAR_A, 
-                                DISPLAY_CURSOR_Y_CHARS_A 
-                                );
-                    #endif
-                
-                }
-                
-          
-          
-       
-         #if defined(HAS_TFT_ILI9163C) 
-
-void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
-        DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-        DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
-        DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A ,
-        time_seq_id_T time_seq_id_A ,
-        time_min_run_T time_min_run_A 
-       ) {
-        int i;
-        int maxX ;
-        int maxY ;
-        
-        int maxXi ;
-        int maxYi ;
-        int minYi ;
-        int minXi ;
-        
-        int minXselector_context ; 
-        int menuYoffset = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A ;
-        
-        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_MENU_FLAG)  {
-            minXselector_context = 1 ;
-           // Serial.print(" [minXselector_context] [MENU SEL] ");
-         } else { minXselector_context = 0 ; }
-        
-        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A == 0) maxX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_PX_A ;
-        else maxX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A ;
-        
-        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A == 0) maxY = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_PX_A ;
-        else maxY = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ;
-        
-                // DISPLAY_DEV.setCursor((DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A),
-                  //         (DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A)); //[ARDUINO_ATTR_ARRAY_S_INDEX]
-           
-              
-           /* Serial.print("[#314 - XMIN["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A); Serial.print("] "); 
-                   Serial.print(" YMIN["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] ");
-                   Serial.print(" XMAX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A); Serial.print("] ");
-                   Serial.print(" YMAX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] ");
-                   
-                   Serial.print(" TESTX["); Serial.print(20 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A); Serial.print("] ");
-                   Serial.print(" TESTY["); Serial.print(8 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] ");
-                   Serial.print(" maxX["); Serial.print(maxX); Serial.print("] ");
-                   Serial.print(" maxY["); Serial.print(maxY); Serial.print("] ");
-                   Serial.print(" color["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_COLOR_A); Serial.print("] ");
-                   
-                   Serial.print(" setMX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A); Serial.print("] "); 
-                   
-                   
-                   
-                   
-                Serial.println(" ");*/
-                
-                #if defined(DISPLAY__print_menu_DELAY)
-                    Serial.print("D");
-                    delay(DISPLAY__print_menu_DELAY);
-                #endif
-                
-           
-                        
-                    for(i=ARDUINO_ARRAY_INDEX_FIRST ; i<=ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A; i++) {
-                        //DISPLAY_PHYSICAL_CHAR_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i] 
-                        
-                   
-                        
-                        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_ITEM_FLAG_A == DISPLAY_MENU_ITEM_FLAG_INITIALIZED ) {
-                        
-                              if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].time_seq_id_A + ARDUINO_LOOP_LATENCY_DISPLAY_MENU >  time_seq_id_A  ) {
-                                    // Serial.print(" 366[LAT[ "); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].time_seq_id_A); Serial.print("] ");
-                              
-                              } else {
-                              
-                                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].time_seq_id_A = time_seq_id_A  ;
-                                  maxXi = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_PX_A ;    
-                                //  Serial.print(" [Maxi[ "); Serial.print(maxXi); Serial.print("] ");
-                                 minXi = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_X_CHARS_A ;
-                               //  Serial.print(" [minXi[ "); Serial.print(minXi); Serial.print("] ");                                
-                                 maxYi = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ;
-                                  //if(maxYi > DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_PX_A) maxYi = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_PX_A ;
-                                 //  Serial.print(" [maxYi[ "); Serial.print(maxYi); Serial.print("] ");
-                                 minYi =  DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ;
-                                //   Serial.print(" [minYi[ "); Serial.print(minYi); Serial.print("] ");
-                              
-                                //Serial.print(" WPRINT ["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] ");
-                                  /* DISPLAY_DEV.fillRect(
-                                        (0 + minXselector_context), 
-                                         ((DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_Y_CHARS_A + 1) * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A), 
-                                             100,  DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A, BROWN );
-                                  
-                                  */
-                                  
-                                  DISPLAY_DEV.fillRect(
-                                         minXselector_context, maxYi ,
-                                        (maxXi - minXselector_context), minYi , DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_COLOR_A );
-                                  
-                                  
-                                  if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG) {
-                                    DISPLAY_DEV.fillRect(  
-                                    ( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].Exp_state_level_A / 3)
-                                    , maxYi ,  (( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].Exp_state_level_A / 3) + 10) //maxXi
-                                    ,  minYi, YELLOW );
-                                  } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG) {
-                                                
-                                                 if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG) {
-                                                    //DISPLAY_DEV.setTextColor(WHITE, BLACK); 
-                                                   // DISPLAY_DEV.setCursor(minXi , maxYi ); 
-                                                   // DISPLAY_DEV.print("[ -- ] / [  +  ]");DISPLAY_DEV.setTextColor(WHITE);
-                                                     DISPLAY_DEV.fillRect(  0, maxYi , maxXi,  minYi, YELLOW );
-                                                 } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG) {
-                                                    DISPLAY_DEV.fillRect(  0, maxYi ,( maxXi /3 ),  minYi, WHITE );
-                                                    DISPLAY_DEV.fillRect(  (maxXi /3), maxYi ,( maxXi /3 * 2 ),  minYi, BLACK );
-                                                    DISPLAY_DEV.fillRect(  (maxXi /3 * 2), maxYi , maxXi,  minYi, WHITE );
-                                                    //DISPLAY_DEV.setCursor(minXi , maxYi );   DISPLAY_DEV.setTextColor(WHITE, BLACK); 
-                                                    //DISPLAY_DEV.print("[ ON ] / [ OFF ] ");DISPLAY_DEV.setTextColor(WHITE);
-                                                 } else {
-                                                    DISPLAY_DEV.fillRect(  0, maxYi , maxXi,  minYi, RED );
-                                                    //DISPLAY_DEV.setCursor(minXi , maxYi ); DISPLAY_DEV.setTextColor(WHITE, BLACK);
-                                                    //DISPLAY_DEV.print("[ ?  ] / [  ?  ] ");DISPLAY_DEV.setTextColor(WHITE);
-                                                 }
-                                                 
-                                    
-                                  } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_FLAG) {
-                                    DISPLAY_DEV.fillRect(  0, maxYi , maxXi,  minYi, 0x0210 );
-                                  } else  if(minXselector_context > 0) {//menu context
-                                        DISPLAY_DEV.fillRect(
-                                              0, maxYi , 
-                                              5,  minYi, RED );                                
-                                  }
-                                  
-                                  /*if(maxYi == 0 )  {
-                                     Serial.print(" 404[maxYi]==0 for i[");Serial.print(i);Serial.print(" ] ");
-                                     Serial.print("FLAG");Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_ITEM_FLAG_A, BIN);Serial.print(" ] ");
-                                     Serial.print("messg[");Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_string_A);Serial.print("] ");
-                                     Serial.print("menuYoffset[");Serial.print(menuYoffset);Serial.print("] ");
-                                     
-                                     }
-                                  */
-                                   DISPLAY_DEV.setCursor(minXi , maxYi ); //[ARDUINO_ATTR_ARRAY_S_INDEX]
-                                 // Serial.print(" SetCursorY["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] ");
-                                   
-                                    DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char_A);
-                                    //DISPLAY_DEV.print("test 123");
-                                  
-                              } 
-                              
-                              
-                              
-                        }
-                         
-                     
-        
-                    
-                    }
-           
-        
-    }
-
-#endif
-
-
-#include "../__QUEUE/_Slave_Ports_action_func.h"
-
-   #if defined(HAS_TFT_ILI9163C) 
-
-
-DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_A__INDEX_NEXT(  //context shift, //slowly decrement when empty drop -looking next
-        DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
-        ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A, //index portu do powiazan pwm
-        DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A, //ktore menu
-        DISPLAY_MENU_ITEM_INDEX_T PROCESS_INDEX_COUNTER_A //current i z petli dodawania
-    ) {
-        
-        //DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_CONTEXT_COUNTER_A ; //przy dodawaniu latwiej isc w gore 
-        //find next
-        
-        
-        
-         
-                           if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[PROCESS_INDEX_COUNTER_A].ARDUINO_ARRAY_INDEX_A ==  ARDUINO_ARRAY_INDEX_A ) {                  
-                                //current i
-                                return PROCESS_INDEX_COUNTER_A ;
-                                
-                           } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[PROCESS_INDEX_COUNTER_A+1].ARDUINO_ARRAY_INDEX_A ==  ARDUINO_ARRAY_INDEX_A ) {
-                               //next i same
-                                Serial.print(" [DSPL][DROPPED] ");
-                                return PROCESS_INDEX_COUNTER_A+1 ;
-                                
-                           } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[PROCESS_INDEX_COUNTER_A-1].ARDUINO_ARRAY_INDEX_A ==  ARDUINO_ARRAY_INDEX_A ) {
-                                     //next i same
-                                     Serial.print(" [DSPL][INSERTED] ");
-                                      return PROCESS_INDEX_COUNTER_A-1 ;
-                           } else if(PROCESS_INDEX_COUNTER_A < ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A) {
-                            
-                                return PROCESS_INDEX_COUNTER_A;
-                           
-                           }
-       
-    
-    }
-
-
-
-
-void DISPLAY_MENU_SELECTOR(DISPLAY_T* DISPLAY_A ,
-        DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-        DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
-        
-        Slave_Ports_Status_T* Slave_Ports_Status_A , 
-        Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
-        
-        
-       // DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A ,
-        time_seq_id_T time_seq_id_A ,
-        time_min_run_T time_min_run_A , 
-        //DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_STATUS_A , //; //which mode
-        DISPLAY_MENU_SELECTOR_SWITCH_T DISPLAY_MENU_SELECTOR_SWITCH_A, 
-        DISPLAY_MENU_SELECTOR_oldEncPos_T DISPLAY_MENU_SELECTOR_oldEncPos_A , //; //values
-        DISPLAY_MENU_SELECTOR_encoderPos_T DISPLAY_MENU_SELECTOR_encoderPos_A,
-        
-        DISPLAY_MENU_SELECTOR_triggerCountOld_T DISPLAY_MENU_SELECTOR_triggerCountOld_A,
-        DISPLAY_MENU_SELECTOR_triggerCount_T DISPLAY_MENU_SELECTOR_triggerCount_A
-       ) {
-       
-       
-        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A == 0 ) {
-           #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-            Serial.print(" [SEL_INIT] ");
-           #endif
-             DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A = ARDUINO_ARRAY_INDEX_FIRST ;
-             DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ;
-           }
-        
-        #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-        Serial.print(" [SEL_STATUS["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A, BIN); Serial.print("] ");
-        Serial.print(" [MENU_INDEX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A); Serial.print("] ");
-        Serial.print(" [ITEM_INDEX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A); Serial.print("] ");
-        #endif
-        
-        if(DISPLAY_MENU_SELECTOR_oldEncPos_A != DISPLAY_MENU_SELECTOR_encoderPos_A ) {
-            #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-            Serial.print(" #383[ENC][CHG][ROOT] ");
-            #endif
-            if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) {
-                     #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                     Serial.print(" #385[DISPLAY_MENU_SELECTOR_MENU_FLAG] ");
-                     #endif
-                            if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) {
-                            #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                            Serial.print(" #386[ENCODER][CHANGED]> ");
-                            #endif
-                                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A --;
-                                        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A <= ARDUINO_ARRAY_INDEX_FIRST ) { 
-                                                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A = ARDUINO_ARRAY_INDEX_FIRST ;
-                                                #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                                                Serial.print("#387[NOT][PREV][MENU]");
-                                                #endif
-                                         }
-                            } else {
-                                #if defined(DISPLAY_MENU_SELECTOR_DEBUG)  
-                                Serial.print("#386[ENCODER][CHANGED]< ");
-                                #endif
-                                             if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A - 1].DISPLAY_MENU_ITEM_A[1].DISPLAY_MENU_ITEM_FLAG_A == DISPLAY_MENU_ITEM_FLAG_EMPTY) {
-                                             #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                                             Serial.print("#388[NOT][NEXT][MENU]");
-                                             #endif
-                                             } else {
-                                                #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                                                Serial.print("#388[NEXT][MENU]++");
-                                                #endif
-                                                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A ++;
-                                             }
-                            } //encoderpos
-                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ;
-                 #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                 Serial.print("[ WILL MARK MENU CONETXT ]");                  
-                 #endif
-                 
-            } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_FLAG)  { //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) {
-                #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                Serial.print("[ITEM][CONTEXT]");
-                #endif
-                 if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) {
-                        #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                        Serial.print(" #482[ENCODER][CHANGED]< ");
-                        #endif
-                        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A == ARDUINO_ARRAY_INDEX_FIRST) {
-                            #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                            Serial.print(" #485[ENCODER][NO MORE LEFT] ");
-                            #endif
-                        } else {
-                            #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                            Serial.print(" #485[ENCODER][MOVED] ");
-                            #endif
-                            DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_EMPTY_FLAG ;
-                            DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A --;
-                              DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ;
-                        }
-                          
-                      
-                 } else if(DISPLAY_MENU_SELECTOR_oldEncPos_A < DISPLAY_MENU_SELECTOR_encoderPos_A) { // if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) {
-                        #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                        Serial.print(" #482[ENCODER][CHANGED]> ");
-                        #endif
-                        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A + 1)].DISPLAY_MENU_ITEM_FLAG_A == DISPLAY_MENU_ITEM_FLAG_INITIALIZED) {
-                            #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                            Serial.print(" #482[ENCODER][MARKED]> ");
-                            #endif
-                            DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_EMPTY_FLAG ;
-                            DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A ++;
-                            DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ;
-                        }
-                 
-                 } //else if(DISPLAY_MENU_SELECTOR_oldEncPos_A < DISPLAY_MENU_SELECTOR_encoderPos_A)
-                 
-            } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG) {  // else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_FLAG)
-                    //rotate selectors
-                     Serial.print(" #560[ENCODER][_ITEM_OPTIONS_FLAG]> ");Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A, BIN); Serial.print("]");
-                     if(DISPLAY_MENU_SELECTOR_oldEncPos_A != DISPLAY_MENU_SELECTOR_encoderPos_A)  {
-                                if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG) {
-                                    Serial.print(" >[LEV] ");
-                                        DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A -  DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG ;
-                                        DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG ;
-                                        DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A ;
-                                } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG) {
-                                    Serial.print(" >[TOG] ");
-                                        DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A - DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG ;
-                                        DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG ;
-                                         DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A ;
-                                } else {
-                                        Serial.print(" >[ELS][LEV] ");
-                                        DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG ;
-                                         DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A ;
-                                }
-                     }
-            
-            
-            
-            
-            } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG) { //else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_FLAG)
-                if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) {
-                             if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A > 0) {
-                             DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A -=5  ; //--;
-                             if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A < 0 ) DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = 0 ;
-                                    TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={0,0,DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A};
-                                    
-                                    Slave_Ports_action_func(Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_A ,
-                                                    Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_request_set_new_Exp_state ,
-                                                    TASK_PORT_ASSOC_A,
-                                                    time_seq_id_A, time_min_run_A,  ARDUINO_ARRAY_INDEX_NOT_SET ,  
-                                                    Exp_state_ON_USE_LEVEL ,
-                                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A   
-                                                   );
-                                    
-                                    
-                             } //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A > 0) {
-                } else if(DISPLAY_MENU_SELECTOR_oldEncPos_A < DISPLAY_MENU_SELECTOR_encoderPos_A) {
-                             if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A < 254) {
-                                    
-                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A +=5 ; //+;
-                                    if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A >254) DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = 254;
-                                    TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={0,0,DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A};
-                                    Slave_Ports_action_func(Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_A ,
-                                                    Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_request_set_new_Exp_state ,
-                                                    TASK_PORT_ASSOC_A,
-                                                    time_seq_id_A, time_min_run_A,  ARDUINO_ARRAY_INDEX_NOT_SET ,  
-                                                    Exp_state_ON_USE_LEVEL ,
-                                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A   
-                                                   );
-                                    
-                                    
-                             } //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A < 254) {
-                } //  if(DISPLAY_MENU_SELECTOR_oldEncPos_A < DISPLAY_MENU_SELECTOR_encoderPos_A) {
-              
-                
-            } //else  if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG)
-        
-        } else if(DISPLAY_MENU_SELECTOR_triggerCountOld_A != DISPLAY_MENU_SELECTOR_triggerCount_A) {
-            #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-            Serial.print("[TRIG++]?");   
-            #endif
-                 if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) {
-                    #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                    Serial.print("[TOGGLE][Fr][SELECTOR_MENU_FLAG]>ITEM");
-                    #endif
-                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ;
-                    #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                    Serial.print("[ITEM]>1");
-                    #endif
-                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A = ARDUINO_ARRAY_INDEX_FIRST ;
-                    #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                    Serial.print("[ITEM]>MARK1");
-                    #endif
-                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A ;
-                 } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_FLAG) { //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) {
-                    #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                    Serial.print("[TOGGLE][Fr][SELECTOR_MENU_FLAG]>ITEM>OPTIONS");
-                    #endif
-                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG ;
-                    #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                    Serial.print("[ITEM]>1");
-                    #endif
-                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG ;
-                    #if defined(DISPLAY_MENU_SELECTOR_DEBUG) 
-                    Serial.print("[ITEM]>MARK1");
-                    #endif
-                 //} else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG) { 
-                    
-                    
-                 } else if((DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG) or (
-                         DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG  )) { //== DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG)  { //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG
-                    
-                              if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A > 0 ) {
-                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG ;
-                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG;
-                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = Slave_Ports_Status_A[ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A  ].Exp_state_level_A ;
-                              } else {//if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A > 0 ) {
-                                    //exit parent
-                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ;
-                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG;
-                              } //else
-                 } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG) { //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG)
-                    //back to elements
-                        DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG;
-                        DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ;
-                 } else { //else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG)
-                   Serial.print("ELSE777["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A,  BIN);
-                 } 
-        } // if(DISPLAY_MENU_SELECTOR_oldEncPos_A != DISPLAY_MENU_SELECTOR_encoderPos_A ) {
-        
-        #if defined(DISPLAY_MENU_SELECTOR_DEBUG)
-        Serial.print("DEBUG["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A,  BIN);
-        #endif
-        Serial.println("   ");
-        
-    }
-        
-
-#endif

+ 0 - 4
SE/stuff/P5_Automation_can-dev-res/__DISPLAY/_DISPLAY_init.h

@@ -1,4 +0,0 @@
-int LCDtim = 250 ;//the value of delay time
-
-
-

+ 0 - 4
SE/stuff/P5_Automation_can-dev-res/__DISPLAY/_DISPLAY_queue_pop_func.h

@@ -1,4 +0,0 @@
-
-        
-        
-        

+ 0 - 234
SE/stuff/P5_Automation_can-dev-res/__DISPLAY/_DISPLAY_struct.h

@@ -1,234 +0,0 @@
-
-
-typedef  char DISPLAY_array16_T[16] ;
-typedef String DISPLAY_string64_T[16];
-typedef String DISPLAY_string_T;
-
-static String DISPLAY_array16_FILL_A = "                        ";
-
-typedef ARDUINO_SIZE_T DISPLAY_string_len_T ;
-
- typedef int DISPLAY_PHYSICAL_X_PX_T ; //fixyczna rozczielczosc
- typedef int DISPLAY_PHYSICAL_Y_PX_T ;//fixyczna rozczielczosc
-
-typedef int DISPLAY_CURSOR_T ; //dotyczy kursora
-
-
-typedef DISPLAY_CURSOR_T DISPLAY_CURSOR_SHIFT_Y_T; //dotyczy kursora - jak jest za duzo rekordow, to przegladamy zgodnie z tym indeksem
-
-
- typedef DISPLAY_CURSOR_T DISPLAY_PHYSICAL_X_CHARS_T ; //fixyczna rozczielczosc w znakach w domyslnej czcionce
- typedef DISPLAY_CURSOR_T DISPLAY_PHYSICAL_Y_CHARS_T ;//fixyczna rozczielczosc w znakach w domyslnej czcionce
-
- typedef DISPLAY_CURSOR_T DISPLAY_CURSOR_X_CHARS_T ; //aktualna pozycja kursora X w domyslnej czcionce
- typedef DISPLAY_CURSOR_T DISPLAY_CURSOR_Y_CHARS_T ; //aktualna pozycja kursora Y w domyslnej czcionce
- 
- 
-  typedef int DISPLAY_textsize_T ;
-  typedef DISPLAY_textsize_T DISPLAY_textsize_x_T ;
-  typedef DISPLAY_textsize_T DISPLAY_textsize_y_T ;
-
-
-typedef long DISPLAY_COLOR_T ;
-
-
-typedef  int DISPLAY_pos_seq_T ; //reqiested position in LCD
-    const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_EXACT            = B00000001;
-    const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_NEXT             = B00000010;
-    const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_IMMEDIATE        = B00000100;
-    const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_QUEUE            = B00001000;
-    const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_ATTIME           = B00010000;
-    const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_INVALIDAFTER     = B00100000;
-    const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_CLEARSCREEN      = B01000000;
-typedef  int DISPLAY_pos_id_T ; //reqiested position id in LCD
-
- 
-typedef byte DISPLAY_TARGET_T ; //TODO BIN
-
- struct DISPLAY_S {
-      int _queue_id ; //current queue task
-       DISPLAY_pos_seq_T DISPLAY_pos_seq_A = DISPLAY_pos_seq_A_NEXT;
-       DISPLAY_pos_id_T DISPLAY_pos_id_A; //somehow like position id for menus...
-       //DISPLAY_array16_T DISPLAY_array16_A ;
-       #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-        DISPLAY_string_T DISPLAY_string_A;
-       #else
-        DISPLAY_array16_T DISPLAY_array16_A ;
-       #endif
-       //char DISPLAY_array16_A[16] ;
-       DISPLAY_TARGET_T DISPLAY_TARGET_A ; 
-       time_seq_id_T time_seq_id_A;
-       time_min_run_T time_min_run_A;
-       //String DISPLAY_string16_A[16] ;
-    //   DISPLAY_string64_T DISPLAY_string64_A;
-    //   DISPLAY_string_len_T DISPLAY_string_len_A;
-       
-    } ;
-    
-typedef struct DISPLAY_S DISPLAY_T ;
-
-typedef byte DISPLAY_MENU_ITEM_FLAG_T ;
-const DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_EMPTY        = B00000000;
-const DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_DELETED      = B00000010;
-const DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_INITIALIZED  = B10000001;
-
-
-
-typedef ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_T ;//which index
-
-
-typedef byte DISPLAY_MENU_SELECTOR_STATUS_T ;
-const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_EMPTY_FLAG                    = B00000000 ; //when rotating
-const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_MENU_FLAG                     = B00000010 ; //when rotating
-const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_FLAG                     = B00000100 ; //when rotating
-const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG             = B00001000 ; //when rotating
-                                                                                                   
-const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG       = B00010000 ; //when rotating
-const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG      = B00100000 ; //when rotating
-const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG   = B01000000 ; //when rotating
-const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_TOGGLE_FLAG  = B10000000 ; //when rotating
-
-const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_FLAG_INIT = DISPLAY_MENU_SELECTOR_MENU_FLAG ;
-
-
-typedef byte DISPLAY_MENU_SELECTOR_oldEncPos_T ;
-typedef byte DISPLAY_MENU_SELECTOR_encoderPos_T ; 
-
-typedef byte DISPLAY_MENU_SELECTOR_triggerCountOld_T ;
-typedef byte DISPLAY_MENU_SELECTOR_triggerCount_T ; 
-
-
-typedef byte DISPLAY_MENU_SELECTOR_SWITCH_T ; 
-const DISPLAY_MENU_SELECTOR_SWITCH_T DISPLAY_MENU_SELECTOR_SWITCH_NOT_PUSHED = B00000010 ;
-const DISPLAY_MENU_SELECTOR_SWITCH_T DISPLAY_MENU_SELECTOR_SWITCH_PUSHED     = B00000100 ;
-const DISPLAY_MENU_SELECTOR_SWITCH_T DISPLAY_MENU_SELECTOR_SWITCH_UNKNOWN    = B00001000 ;
-
-struct DISPLAY_MENU_SELECTOR_S {
-    ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_INDEX_A = ARDUINO_ARRAY_INDEX_FIRST; //selected menu
-    ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_A ; //selected menu
-    DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ; //which mode
-    DISPLAY_MENU_SELECTOR_SWITCH_T DISPLAY_MENU_SELECTOR_SWITCH_A ; 
-    DISPLAY_MENU_SELECTOR_oldEncPos_T DISPLAY_MENU_SELECTOR_oldEncPos_A; //values
-    DISPLAY_MENU_SELECTOR_encoderPos_T DISPLAY_MENU_SELECTOR_encoderPos_A ;  //values
-};
-
-typedef struct DISPLAY_MENU_SELECTOR_S DISPLAY_MENU_SELECTOR_T ;
-
-typedef byte DISPLAY_MENU_ITEM_Exp_state_level_T ;
-
-typedef char DISPLAY_char_T[] ;
-
-struct DISPLAY_MENU_ITEM_S { //elementy menu
-     DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_EMPTY ; //czy nie jest do usuniecia itp ...
-     DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A; //gdzie sie wyswietla
-     DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ;//gdzie sie wyswietla
-     DISPLAY_string_T DISPLAY_string_A;
-     DISPLAY_COLOR_T DISPLAY_COLOR_A ;
-     DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_STATUS_A ; //opcja kontekstu selektora
-     time_seq_id_T time_seq_id_A ;  //to controll latency
-     time_min_run_T time_min_run_A ;  //to controll latency
-     DISPLAY_MENU_ITEM_Exp_state_level_T  Exp_state_level_A ;
-     ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ; //index do czegos - portu
-      DISPLAY_char_T DISPLAY_char_A;
-} ;
-
-typedef struct DISPLAY_MENU_ITEM_S DISPLAY_MENU_ITEM_T ;
-
-
-//typedef byte  DISPLAY_MENU_ITEM_CONTEXT_OPTIONS_T ;
-
-//struct DISPLAY_MENU_ITEM_OPTIONS_S {   
-//}
-
-
-//ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU
-  struct DISPLAY_MENU_S {
-           DISPLAY_CURSOR_X_CHARS_T DISPLAY_MENU_SIZE_X_CHARS_MIN_A; //SIZE LEFT UPPER CORNER X
-           DISPLAY_CURSOR_Y_CHARS_T DISPLAY_MENU_SIZE_Y_CHARS_MIN_A; //SIZE LEFT UPPER CORNER Y
-           DISPLAY_CURSOR_X_CHARS_T DISPLAY_MENU_SIZE_X_CHARS_MAX_A; //SIZE RIGHT LOWER CORNER X
-           DISPLAY_CURSOR_Y_CHARS_T DISPLAY_MENU_SIZE_Y_CHARS_MAX_A; //SIZE RIGHT LOWER CORNER Y
-           DISPLAY_COLOR_T DISPLAY_COLOR_A = BLACK ;
-           time_seq_id_T time_seq_id_A ;  //to controll latency
-           time_min_run_T time_min_run_A ;  //to controll latency
-           /*
-           DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_MIN_A; //zaznaczenie
-           DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_MIN_A; //zaznaczenie
-           DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_MAX_A; //zaznaczenie
-           DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_MAX_A; //zaznaczenie
-           */
-           DISPLAY_MENU_ITEM_T DISPLAY_MENU_ITEM_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A] ; //elementy menu
-           ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A ; //ktory jest aktywny element
-           DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_STATUS_A ; //opcja kontekstu selektora
-           DISPLAY_CURSOR_SHIFT_Y_T DISPLAY_CURSOR_SHIFT_Y_A  = 0; //
-  }
-;
- 
- 
- typedef struct DISPLAY_MENU_S DISPLAY_MENU_T ;
- 
- 
- struct DISPLAY_PHYSICAL_CHAR_S { 
-           DISPLAY_PHYSICAL_X_PX_T DISPLAY_PHYSICAL_X_PX_A ;
-           DISPLAY_PHYSICAL_Y_PX_T DISPLAY_PHYSICAL_Y_PX_A ;
-           DISPLAY_PHYSICAL_X_CHARS_T DISPLAY_PHYSICAL_X_CHARS_A;
-           DISPLAY_PHYSICAL_Y_CHARS_T DISPLAY_PHYSICAL_Y_CHARS_A;
-           DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A;
-           DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ;
-           DISPLAY_textsize_x_T DISPLAY_textsize_x_A;
-           DISPLAY_textsize_y_T DISPLAY_textsize_y_A;
-           DISPLAY_MENU_T DISPLAY_MENU_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU] ;
-           DISPLAY_MENU_SELECTOR_T DISPLAY_MENU_SELECTOR_A[1] ;
- } ;
- 
- 
- const DISPLAY_TARGET_T  DISPLAY_TARGET_CONSOLE      = B00000001 ;
- const DISPLAY_TARGET_T  DISPLAY_TARGET_LCD16        = B00000010 ;
- static const DISPLAY_TARGET_T  DISPLAY_TARGET_DISPLAY128   = B00000100 ;
- const DISPLAY_TARGET_T  DISPLAY_TARGET_ALL          =            DISPLAY_TARGET_CONSOLE | DISPLAY_TARGET_LCD16 | DISPLAY_TARGET_DISPLAY128 ;
- const DISPLAY_TARGET_T  DISPLAY_TARGET_ANY          = B00001000 | DISPLAY_TARGET_CONSOLE | DISPLAY_TARGET_LCD16 | DISPLAY_TARGET_DISPLAY128 ;
- 
- 
- 
- typedef struct ARDUINO_ATTR_ARRAY_S DISPLAY_T_ARDUINO_ATTR_ARRAY_T ;
- 
- 
-
- 
-typedef struct ARDUINO_ARRAY_INDEX_TABLE_S         DISPLAY_ARDUINO_ARRAY_INDEX_TABLE_T ; //DEFAULT INDEX TABLE
-typedef struct ARDUINO_ARRAY_INDEX_T_TO_DELETE_S   DISPLAY_ARDUINO_ARRAY_INDEX_T_TO_DELETE_T;
- typedef ARDUINO_FUNCT_INIT_RESULT_T ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add_DISPLAY_T ;
- 
- const DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG = 8 ; //todo 10 linia do debugu?? CAN
- const DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_ROTTARY_SW_DEBUG = 9 ; //todo 10 linia do debugu?? CAN
- const DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_DEBUG = 10 ; //todo 10 linia do debugu??
- 
- 
- 
-
-static    DISPLAY_T  DISPLAY_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY] = {} ;
- static   DISPLAY_T_ARDUINO_ATTR_ARRAY_T DISPLAY_T_ARDUINO_ATTR_ARRAY_A = { // 
-           ARDUINO_ARRAY_INDEX_CURRENT_INIT ,
-             ARDUINO_ARRAY_INDEX_LAST_INIT ,
-             ARDUINO_ARRAY_COUNT_T_INIT ,
-             ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY, 
-             ARDUINO_ARRAY_INDEX_NEXT_INIT
-             
-    };
- static   DISPLAY_ARDUINO_ARRAY_INDEX_TABLE_T        DISPLAY_ARDUINO_ARRAY_INDEX_TABLE_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY]        = {};
- static   DISPLAY_ARDUINO_ARRAY_INDEX_T_TO_DELETE_T  DISPLAY_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A[ARDUINO_ARRAY_INDEX_T_TO_DELETE_S_LIMIT]  = {};  
-   
-    
-struct DISPLAY__print_loop_S {
-   DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A;
-   DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A;
-    String message;
-     int message_len ;
-}    ;
-typedef struct DISPLAY__print_loop_S DISPLAY__print_loop_T;
-
-typedef byte DISPLAY__print_loop_ACTION_T ;
-const DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_ADD = B00000001 ;
-const DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_POP = B00000010 ;
-
-    
-    

+ 19 - 5
SE/stuff/p5_automation_lite/p5_automation_lite.ino

@@ -6,12 +6,12 @@
 #define ARDUINO_ARRAY_INDEX_LIMIT_QUEUE_DEF 4
 
 #define ARDUINO_ARRAY_INDEX_LIMIT_I2C_ARRAY_DRIVER_DEF 1
-#define ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_DEF 2 // 3 //todo debug
+#define ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_DEF 0 // 3 //todo debug
 
-#define ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_DEF 2 //todo test
+#define ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_DEF 1 //todo test
 
-#define ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A_DEF  3 //todo debug 
-#define ARDUINO_ARRAY_INDEX_LIMIT_PORTS_DEF 3//3 //todo debug lite
+#define ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A_DEF  5 //todo debug 
+#define ARDUINO_ARRAY_INDEX_LIMIT_PORTS_DEF 4//3 //todo debug lite
 #define ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C_DEF 2//2 //todo debug lite
 //#define HAS_DEBUG_ACTION_TRIG
 //#define DEBUG_I2C //to debug _Slave_Ports_I2C_POP etc
@@ -180,7 +180,8 @@
  #include "_Port_Exp_state_ttl_struct.h"
  #include "_Port_Broadcast_state_struct.h"
  #include "_Port_I2C_driver_struct.h"
- #include "_Slave_Ports_Status_struct_lite.h" // lite #include "_Slave_Ports_Status_struct.h"
+ //#include "_Slave_Ports_Status_struct_lite.h" // lite 
+ #include "_Slave_Ports_Status_struct.h"
  #include "_Slave_Ports_Protocol_CAN_struct.h" //lite _CAN/
   
  
@@ -251,9 +252,22 @@
 
 
 #include "TASK_TYPE_T_Set_Ports_Status_LIMITS_A__.h"
+#include "TASK_TYPE_T_Set_Ports_Status_ASSOC.h"
+ 
 
 //L #include "_CAN_func.h" //lite _CAN/
 
+#if defined(HAS_SERIAL_PROXY_DISPLAY_SLAVE) or defined(HAS_SERIAL_PROXY_DISPLAY_MASTER)
+#include <SoftwareSerial.h>
+#endif
+
+#if defined(HAS_SERIAL_PROXY_DISPLAY_SLAVE) 
+    SoftwareSerial SERIAL_PROXY_DISPLAY_SLAVE(SERIAL_PROXY_DISPLAY_SLAVE_rx_pin, SERIAL_PROXY_DISPLAY_SLAVE_tx_pin); // RX, TX
+#endif
+
+#if defined(HAS_SERIAL_PROXY_DISPLAY_MASTER) 
+    SoftwareSerial SERIAL_PROXY_DISPLAY_MASTER(SERIAL_PROXY_DISPLAY_MASTER_rx_pin, SERIAL_PROXY_DISPLAY_MASTER_tx_pin); // RX, TX
+#endif
 
 
 //L  #include "_Slave_Ports.h"