a.binder 5 лет назад
Родитель
Сommit
dafd05492c

+ 132 - 132
SE/stuff/P5_Automation_can-dev-res-working-1930/_DISPLAY_func.h

@@ -300,12 +300,23 @@ void DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR
          
          
 DISPLAY_LATENCY_PASS__POP( 
-        //time_seq_id_T time_seq_id_A, 
-        //time_min_run_T time_min_run_A, long time
+        time_seq_id_T time_seq_id_A, 
+        time_min_run_T time_min_run_A
         ) {
-        return true;
-  }
-         
+                 static time_seq_id_T last_time_seq_id_A = time_seq_id_A;
+                 static time_min_run_T last_time_min_run_A = time_min_run_A;
+                 
+        if(time_seq_id_A <= 1 or time_min_run_A <= 1) {
+            Serial.print("[DISPLAY_LATENCY_PASS__POP][ERR]["); Serial.print(time_seq_id_A);Serial.print("]["); Serial.print(time_min_run_A); Serial.print("]");
+            delay(2000);
+        }         
+                 if(time_seq_id_A >= last_time_min_run_A) {
+                         last_time_min_run_A = time_min_run_A;
+                         return true;
+                 } else {
+                         return false;
+                 }
+        }
          
          
 
@@ -329,10 +340,6 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
         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] ");
@@ -347,25 +354,19 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_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(" ");*/
-                
+                    
+                        /* 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(" ");*/
+                      
                 
                 
            
@@ -373,116 +374,115 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
                     #if defined(DISPLAY__print_menu_DELAY)
                     Serial.print("D");
                     delay(DISPLAY__print_menu_DELAY);
-                #endif
+                    #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] 
-                        
-                   // DISPLAY_DEV.setCursor(20 , (20 + (i * 5)));
-                   // DISPLAY_DEV.print("test88");
-            
-                        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_LATENCY_PASS__POP()) {
-                              //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_LATENCY_PASS__POP(time_seq_id_A, time_min_run_A )) {
+                                  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] 
+                                      
+                                 // DISPLAY_DEV.setCursor(20 , (20 + (i * 5)));
+                                 // DISPLAY_DEV.print("test88");
+                          
+                                      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("] ");
+                                            
+                                              {
+                                            
+                                              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 );
                                                 
-                                                 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("] ");
-                                    //Serial.print("462:CA:"); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char_A); 
-                                    
-                                    //DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_string_A);
-                                    //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");
-                                    //DISPLAY_DEV.print("test 123");
-                                    for (int iA = 0; iA < 24; iA++) {
-                                            DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char24_A[iA]);
-                                    }
-                                    
+                                                */
+                                                
+                                                  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("] ");
+                                                  //Serial.print("462:CA:"); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char_A); 
+                                                  
+                                                  //DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_string_A);
+                                                  //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");
+                                                  //DISPLAY_DEV.print("test 123");
+                                                  for (int iA = 0; iA < 24; iA++) {
+                                                          DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char24_A[iA]);
+                                                  }
+                                                  
+                                                          
+                                                
+                                            } 
+                                            
+                                            
                                             
+                                      }
+                                       
+                                   
+                      
                                   
-                              } 
-                              
-                              
-                              
-                        }
-                         
-                     
-        
-                    
-                    }
+                                  }
            
-        
+            }//if((DISPLAY_LATENCY_PASS__POP(time_seq_id_A, time_min_run_A ))
     }
 
 #endif

+ 1 - 1
SE/stuff/P5_Automation_can-dev-res-working-1930/___loop/__main_loop_end.h

@@ -122,7 +122,7 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END(ARDUINO_LOOP_LATENCY__MAIN_END_A, ARDU
                    #if defined(HAS_TFT_ILI9163C)
                             DISPLAY__print_menu( DISPLAY_A ,DISPLAY_T_ARDUINO_ATTR_ARRAY_A , DISPLAY_PHYSICAL_CHAR_A, 
                                       1,  //DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A
-                                      0,0//time_seq_id_A, (time_seq_id_A + 5000) 
+                                      time,time + ARDUINO_LOOP_LATENCY_DISPLAY_MENU//time_seq_id_A, (time_seq_id_A + 5000) 
                                        );
                     #endif
               #else