a.binder 5 yıl önce
ebeveyn
işleme
5012619a64

+ 196 - 29
SE/stuff/P5_Automation_can-dev-res/_DISPLAY_func.h

@@ -175,9 +175,11 @@ void DISPLAY__print_IMMEDIATE(
               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 {
@@ -289,8 +291,8 @@ void DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR
                     #endif
                 
                 }
-
-
+                
+          
 
 void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
         DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
@@ -302,6 +304,20 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_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 ;
         
@@ -329,39 +345,190 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
                    
                    
                 Serial.println(" ");*/
-            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_INIT ) {
                 
-                      if(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 - ARDUINO_LOOP_LATENCY_DISPLAY_MENU) ) {
-                      
-                      
-                      } else {
-                      
-                        //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_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].time_seq_id_A = time_seq_id_A  ;
-                          DISPLAY_DEV.fillRect(
-                               (DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_X_CHARS_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A), 
-                                (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), 
-                                maxX, DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A, DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_COLOR_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(
-                                 (DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_X_CHARS_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A),
-                                 (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)); //[ARDUINO_ATTR_ARRAY_S_INDEX]
-                          
-                           
-                            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("test 123");
+            
+                        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_FLAG) {
+                                    DISPLAY_DEV.fillRect(  0, maxYi , maxXi,  minYi, RED );
+                                  } 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_string_A);
+                                    //DISPLAY_DEV.print("test 123");
+                                  
+                              } 
+                              
+                              
+                              
+                        }
+                         
+                     
+        
+                    
+                    }
+           
+        
+    }
+
+
+
+
+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, 
+       // 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 ) {
+            Serial.print(" [SEL_INIT] ");
+             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 ;
+           }
+        
+        
+        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("] ");
+        
+        
+        if(DISPLAY_MENU_SELECTOR_oldEncPos_A != DISPLAY_MENU_SELECTOR_encoderPos_A ) {
+            Serial.print(" #383[ENC][CHG][ROOT] ");
+            if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) {
+                     Serial.print(" #385[DISPLAY_MENU_SELECTOR_MENU_FLAG] ");
+                            if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) {
+                            Serial.print(" #386[ENCODER][CHANGED]> ");
+                                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 ;
+                                                Serial.print("#387[NOT][PREV][MENU]");
+                                         }
+                            } else { Serial.print("#386[ENCODER][CHANGED]< ");
+                                             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) {
+                                             Serial.print("#388[NOT][NEXT][MENU]");
+                                             } else {
+                                                Serial.print("#388[NEXT][MENU]++");
+                                                 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 ;
+                 
+                 Serial.print("[ WILL MARK MENU CONETXT ]");                  
+                  
+                 
+            } 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) {
+                Serial.print("[ITEM][CONTEXT]");
+                 if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) {
+                        Serial.print(" #482[ENCODER][CHANGED]< ");
+                        
+                        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A == ARDUINO_ARRAY_INDEX_FIRST) {
+                            Serial.print(" #485[ENCODER][NO MORE LEFT] ");
+                        } else {
+                            Serial.print(" #485[ENCODER][MOVED] ");
+                            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) {
+                        Serial.print(" #482[ENCODER][CHANGED]> ");
+                        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) {
+                            Serial.print(" #482[ENCODER][MARKED]> ");
+                            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_FLAG)
+        
+        } else if(DISPLAY_MENU_SELECTOR_triggerCountOld_A != DISPLAY_MENU_SELECTOR_triggerCount_A) {
+            Serial.print("[TRIG++]?");   
             
-            }
+                 if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) {
+                    Serial.print("[TOGGLE][Fr][SELECTOR_MENU_FLAG]>ITEM");
+                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ;
+                    Serial.print("[ITEM]>1");
+                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A = ARDUINO_ARRAY_INDEX_FIRST ;
+                    Serial.print("[ITEM]>MARK1");
+                    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) {
+                    Serial.print("[TOGGLE][Fr][SELECTOR_MENU_FLAG]>ITEM>OPTIONS");
+                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG ;
+                    Serial.print("[ITEM]>1");
+                    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_MENU_SELECTOR_ITEM_OPTIONS_FLAG ;
+                    Serial.print("[ITEM]>MARK1");
+                 } //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 ) {
+        
+        
+        
+        Serial.println("   ");
         
     }
+        
 
 

+ 46 - 6
SE/stuff/P5_Automation_can-dev-res/_DISPLAY_struct.h

@@ -64,7 +64,47 @@ 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_INIT  = B00000001;
+const DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_INITIALIZED  = B10100101;
+
+
+
+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_USE_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_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 ;
+
 
 struct DISPLAY_MENU_ITEM_S { //elementy menu
      DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_EMPTY ;
@@ -72,7 +112,7 @@ struct DISPLAY_MENU_ITEM_S { //elementy menu
      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
 } ;
@@ -85,7 +125,6 @@ typedef struct DISPLAY_MENU_ITEM_S DISPLAY_MENU_ITEM_T ;
 //struct DISPLAY_MENU_ITEM_OPTIONS_S {   
 //}
 
-typedef ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_T ;//which index
 
 //ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU
   struct DISPLAY_MENU_S {
@@ -104,6 +143,7 @@ typedef ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_T ;//which index
            */
            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
   }
 ;
  
@@ -111,8 +151,7 @@ typedef ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_T ;//which index
  typedef struct DISPLAY_MENU_S DISPLAY_MENU_T ;
  
  
- struct DISPLAY_PHYSICAL_CHAR_S {
- 
+ 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;
@@ -121,7 +160,8 @@ typedef ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_T ;//which index
            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[2] ;
+           DISPLAY_MENU_T DISPLAY_MENU_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU] ;
+           DISPLAY_MENU_SELECTOR_T DISPLAY_MENU_SELECTOR_A[1] ;
  } ;
  
  

+ 3 - 1
SE/stuff/P5_Automation_can-dev-res/_ROTTARY_SW/_ROTTARY_SW_func.h

@@ -12,7 +12,9 @@
 
  // You can assign any number of functions to different pins. How cool is that?
 void ROTTARY_SW_sw_INT() {
-   Serial.println("ROTTARY_SW_sw_INT TRIG");
+    triggerCount++;
+   Serial.print("ROTTARY_SW_sw_INT TRIG[");Serial.print(triggerCount); Serial.println("] ");
+   
 }
 
 /*

+ 46 - 6
SE/stuff/P5_Automation_can-dev-res/_ROTTARY_SW/_ROTTARY_SW_loop.h

@@ -1,12 +1,51 @@
+ 
+ 
+ if(triggerCount != triggerCountOld) {
+ 
+    Serial.print(" ROT_TRIG[");  Serial.print(triggerCount);  Serial.print("] ");  
+   
+   
+   DISPLAY_MENU_SELECTOR(DISPLAY_A ,
+            DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
+            DISPLAY_PHYSICAL_CHAR_A, 
+           // DISPLAY_MENU_ITEM_INDEX_A ,
+             time ,
+            0 , 
+        //DISPLAY_MENU_SELECTOR_STATUS_A , //; //which mode - provide func
+        DISPLAY_MENU_SELECTOR_SWITCH_UNKNOWN,  //DISPLAY_MENU_SELECTOR_SWITCH_NOT_PUSHED //DISPLAY_MENU_SELECTOR_SWITCH_PUSHED //DISPLAY_MENU_SELECTOR_SWITCH_UNKNOWN
+        oldEncPos , //DISPLAY_MENU_SELECTOR_oldEncPos_A , //; //values
+         encoderPos, // DISPLAY_MENU_SELECTOR_encoderPos_A
+         triggerCountOld , triggerCount 
+       ) ;
+   triggerCountOld =  triggerCount ;
+   
+ 
+ }
+ 
+ 
  if(oldEncPos != encoderPos) {
  
     
     static I2C_INDEX_DRIVER_T I2C_INDEX_DRIVER_A ;
  
     Serial.print(" ROT_SW[");  Serial.print(encoderPos);  Serial.print("] ");  
+    
+    DISPLAY_MENU_SELECTOR(DISPLAY_A ,
+            DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
+            DISPLAY_PHYSICAL_CHAR_A, 
+           // DISPLAY_MENU_ITEM_INDEX_A ,
+             time ,
+            0 , 
+        //DISPLAY_MENU_SELECTOR_STATUS_A , //; //which mode - provide func
+        DISPLAY_MENU_SELECTOR_SWITCH_UNKNOWN,  //DISPLAY_MENU_SELECTOR_SWITCH_NOT_PUSHED //DISPLAY_MENU_SELECTOR_SWITCH_PUSHED //DISPLAY_MENU_SELECTOR_SWITCH_UNKNOWN
+        oldEncPos , //DISPLAY_MENU_SELECTOR_oldEncPos_A , //; //values
+         encoderPos, // DISPLAY_MENU_SELECTOR_encoderPos_A
+         triggerCountOld , triggerCount 
+       ) ;
+    
     oldEncPos = encoderPos;
-    int pwmVal = encoderPos * 5 ;
-    if (pwmVal == 0 ) pwmVal = 1; 
+  //  int pwmVal = encoderPos * 5 ;
+  //  if (pwmVal == 0 ) pwmVal = 1; 
    
    /*TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={
         2,
@@ -19,7 +58,7 @@
         0x13,
         0
    };
-   
+   /*
    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_TYPE_T TASK_TYPE_A,
     //ARDUINO_ARRAY_ATTR_T Slave_Ports_Status_T_INDEX , //index of port we want to manipulate
@@ -32,7 +71,8 @@
    );
    
    ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END(ARDUINO_LOOP_LATENCY__MAIN_END_A, ARDUINO_LOOP_LATENCY_CONTROL_FLAG_BYPASS );
-    
+        
+       */ 
                 
            /*     
                  if(not(I2C_INDEX_DRIVER_A > 0)) {
@@ -49,7 +89,7 @@
 
 //DISPLAY_DEV.print("#550 CLK_AAdafruit_PWMServoD");
 
-
+/*
 DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_A, 
                                 DISPLAY_CURSOR_Y_CHARS_ROTTARY_SW_DEBUG);
           DISPLAY_array16_T  DISPLAY_array16_AA="" ;
@@ -72,6 +112,6 @@ DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_A,
                          {  } //TASK_PORT_ASSOC_A Slave_Ports_Status_A[i].Port_ID
                          
                          ); 
-
+*/
 
   }

+ 4 - 0
SE/stuff/P5_Automation_can-dev-res/_ROTTARY_SW/_ROTTARY_SW_struct.h

@@ -2,5 +2,9 @@ volatile byte aFlag = 0; // let's us know when we're expecting a rising edge on
 volatile byte bFlag = 0; // let's us know when we're expecting a rising edge on pinB to signal that the encoder has arrived at a detent (opposite direction to when aFlag is set)
 volatile byte encoderPos = 0; //this variable stores our current value of encoder position. Change to int or uin16_t instead of byte if you want to record a larger range than 0-255
 volatile byte oldEncPos = 0; //stores the last encoder position value so we can compare to the current reading and see if it has changed (so we know when to print to the serial monitor)
+
 volatile byte reading1 = 0; //somewhere to store the direct values we read from our interrupt pins before checking to see if we have moved a whole detent
 volatile byte reading2 = 0; //somewhere to store the direct values we read from our interrupt pins before checking to see if we have moved a whole detent
+
+volatile byte triggerCount = 0;
+volatile byte triggerCountOld = 0; 

+ 0 - 495
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_func - Copy.h

@@ -1,495 +0,0 @@
-#include <limits.h>
- void Slave_Ports_Status_add_port(
- Slave_Ports_Status_T* Slave_Ports_Status_A , 
- Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
-  Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_T*            Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_A,
-  Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_T*      Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A,
-  Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_T*  Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_A,
-                int  Port_ID,
-                int  _Slave_ID,
-                PortTypes_T  PortTypes,
-                int  Address,
-                int  LocalPort,
-                Exp_state_T  Exp_state,
-                Exp_state_ttl_T  Exp_state_ttl,
-                Broadcast_state_T  Broadcast_state,
-                int I2C_port,
-                //int I2C_driver
-                I2C_driver_T I2C_driver, 
-                IS_Local_T IS_Local_A
-                )
-{
-
-                                       #if defined(DEBUG)
-                                                     Serial.print("#2444 Slave_Ports_Status_add_port[DEBUG] # BEFORE COUNT["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
-                                                      Serial.print("] INDEX_LAST["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
-                                                      Serial.print("] INDEX_CURRENT["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
-                                                      Serial.print("] NEXT_A["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
-                                                     Serial.println("]  ");
-                                      #endif   
-
-        //int i = Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ;
-        int i = Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ;
-        //if(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A == 0) {
-          if(i == ARDUINO_ARRAY_INDEX_CORRUPT) {
-               
-                // Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ++;
-                          Slave_Ports_Status_A[i].Port_ID=0;
-                          Slave_Ports_Status_A[i]._Slave_ID=0x00;
-                          Slave_Ports_Status_A[i].PortTypes=PortTypes_NOT_SET;
-                          Slave_Ports_Status_A[i].Address=0x00;
-                          Slave_Ports_Status_A[i].LocalPort=0;
-                          Slave_Ports_Status_A[i].Exp_state=Exp_state_ERROR;
-                          Slave_Ports_Status_A[i].Exp_state_ttl=0x00;
-                          Slave_Ports_Status_A[i].Broadcast_state=0x00;
-                          Slave_Ports_Status_A[i].I2C_port=0x00;
-                         // Slave_Ports_Status_A[i].I2C_driver=0x00;
-                          Slave_Ports_Status_A[i].IS_Local_A=IS_Local_FALSE;
-                
-                
-                ARDUINO_ATTR_ARRAY_S__commit_added_element(
-                          Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A , 
-                         i); //Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
-                
-                //ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
-                                
-                 //Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ++;   
-            }
-    
-    
-            //valid if is uniq
-            boolean found  ;
-            found = false ; 
-            int found_id ; 
-            for(i = ARDUINO_ARRAY_INDEX_FIRST; i<= Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A  ; i++ ) {
-                if((Slave_Ports_Status_A[i].Port_ID == Port_ID) and (Slave_Ports_Status_A[i]._Slave_ID == _Slave_ID ))  {
-                    found = true ;
-                        Serial.print("+D");Serial.print(i);
-                        found_id = i;
-                   }
-            }
-               
-               
-               if(found == false ) {
-                    
-                      i = Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A ;
-                    
-                    Slave_Ports_Status_A[i].Port_ID = Port_ID ;
-                    Slave_Ports_Status_A[i]._Slave_ID = _Slave_ID ;
-                    Slave_Ports_Status_A[i].PortTypes = PortTypes ;
-                    Slave_Ports_Status_A[i].Address = Address ;
-                    Slave_Ports_Status_A[i].LocalPort = LocalPort ;
-                    Slave_Ports_Status_A[i].Exp_state = Exp_state ;
-                    Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl ;
-                    Slave_Ports_Status_A[i].Broadcast_state = Broadcast_state ;
-                    Slave_Ports_Status_A[i].I2C_port = I2C_port ;
-                    Slave_Ports_Status_A[i].I2C_driver = I2C_driver ;
-                    Slave_Ports_Status_A[i].IS_Local_A = IS_Local_A;
-                  //  Slave_Ports_Status_A[Slave_Ports_Status_T_ARDUINO_ARRAY_COUNT_A + 1].I2C_driver = I2C_driver_F(I2C_driver) ;
-                            ARDUINO_ATTR_ARRAY_S__commit_added_element(
-                                          Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A , 
-                                          i);//Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A
-                   
-               } else {
-                    //duplicated
-                    //update
-                    Serial.print("[found][");Serial.print(found); Serial.print("] found_id[");Serial.print(found_id); Serial.print("] ");
-                     if(Broadcast_state>0) Slave_Ports_Status_A[found_id].Broadcast_state = Broadcast_state ;
-                     if(Exp_state>0) Slave_Ports_Status_A[found_id].Exp_state = Exp_state ;
-                     if(Exp_state_ttl>0) Slave_Ports_Status_A[found_id].Exp_state_ttl = Exp_state_ttl ;
-                     if(Slave_Ports_Status_A[found_id].IS_gone_A == IS_gone_TRUE) Slave_Ports_Status_A[found_id].IS_gone_A = IS_gone_FALSE;
-                 
-               }
-}
-
-
- void Slave_Ports_Status__DISPLAY_TARGET(
-        Slave_Ports_Status_T* Slave_Ports_Status_A ,
-        Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
-        Port_ID_T  Port_ID ,
-        //display
-        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 ,
-        //tasks
-        TASK_TYPE_T TASK_TYPE_A,
-        TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A
-  )
-   {
-   
-   
-   
-                #if defined(DEBUG)
-                    if(DEBUG > 6) {
-                                   Serial.print("#72 Port_Dspl[DEBUG] #COUNT["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
-                                    Serial.print("] INDEX_LAST["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
-                                    Serial.print("] INDEX_CURRENT["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
-                                    Serial.print("] NEXT_A["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
-                                    
-                                    
-                                    
-                                    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    
-                     String message_init = String(Active_ControllerID, HEX) ;
-                       message_init.concat("] #C: ");
-                       message_init = message_init +  Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ;
-                        message_init.concat("   ");
-           #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                     #if defined(ENABLE_DISPLAY_MENU)
-                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_CURSOR_X_CHARS_A =  0 ;
-                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_CURSOR_Y_CHARS_A = 0 ;
-                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_string_A = message_init ;
-                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_COLOR_A =  0x0004 ;
-                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INIT  ;
-                     
-
-                     #else 
-                         DISPLAY__print(
-                                                    DISPLAY_A ,
-                                                    DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                                                    DISPLAY_PHYSICAL_CHAR_A, 
-                                                     DISPLAY_pos_seq_A | DISPLAY_pos_seq_A_CLEARSCREEN,
-                                                      message_init, // DISPLAY_array16_AAT,
-                                                      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
-            #else
-               
-               
-                 
-                       DISPLAY_array16_T  DISPLAY_array16_AAT ;
-                      // message_init.concat(DISPLAY_array16_A);
-                     
-                       message_init = DISPLAY_array16_A + message_init ;
-                       //message_init.concat(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A , INT );
-                       message_init.concat("     ");
-                       message_init.toCharArray(DISPLAY_array16_AAT, 16); //message_init.length()
-                       
-                       String message ;
-                       String message2 ;
-                            DISPLAY__print(
-                                         DISPLAY_A ,
-                                         DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                                         DISPLAY_PHYSICAL_CHAR_A, 
-                                          DISPLAY_pos_seq_A | DISPLAY_pos_seq_A_CLEARSCREEN,
-                                           DISPLAY_array16_AAT,
-                                           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
-     
-        int i;
-        
-        
-         #if defined(ENABLE_DISPLAY_MENU)
-         
-          DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].ARDUINO_ARRAY_INDEX_CURRENT_A = 1 ;
-          DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_X_CHARS_MIN_A = 0 ;
-          DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A = 0 ;
-          DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_X_CHARS_MAX_A = 0  ;
-          DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A = 8 ;// DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A  ;
-            
-         #endif
-        
-        for(i=ARDUINO_ARRAY_INDEX_FIRST ; i<=5 ; i++) {//i <= Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
-           DISPLAY_array16_T  DISPLAY_array16_AA="" ;
-           DISPLAY_array16_T  DISPLAY_array16_AB="" ;
-        
-            #if defined(ENABLE_DISPLAY_MENU)
-            
-            
-             if(Slave_Ports_Status_A[i].Port_ID > 0 ) {
-            
-                   
-                   
-                      String message = "";
-                       String message2 ;
-                   
-                     
-                       
-                      message.concat(i);
-                      message.concat(".");
-                      message.concat(Slave_Ports_Status_A[i].Port_ID )  ; 
-                      message.concat(" ");
-                      
-                         if(Slave_Ports_Status_A[i].IS_gone_A == IS_gone_TRUE) {
-                             message2 = message ; message2.concat(" [---] ");
-                         } else {
-                              message2 = message  ; message2.concat(" ");//E:
-                      
-                              message2.concat(" ");// B:
-                               
-                                   message2.concat(Slave_Ports_Status_A[i].Exp_state_ttl/10 )  ;
-                      
-                                              message2.concat(" ");// B:
-                                               message2.concat(Slave_Ports_Status_A[i].Broadcast_state/10 )  ;
-                                           if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) {
-                                               message2.concat(" L");// B:
-                                          } else if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_FALSE) {
-                                               message2.concat(" R");// B:
-                                          } 
-                                        if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON_USE_LEVEL ) {
-                                         message2.concat(" ["); message2.concat(Slave_Ports_Status_A[i].Exp_state_level_A); message2.concat("] ");
-                                           /*if(Slave_Ports_Status_A[i].Exp_state_level_A < 10 ) message2.concat(" [___] ");//E:
-                                           else if(Slave_Ports_Status_A[i].Exp_state_level_A < 100 )  message2.concat("  [#___] ");//E:
-                                           else if(Slave_Ports_Status_A[i].Exp_state_level_A < 1000 ) message2.concat("  [##__] ");//E:
-                                           else if(Slave_Ports_Status_A[i].Exp_state_level_A < 2000 ) message2.concat("  [###_] ");//E:
-                                           else if(Slave_Ports_Status_A[i].Exp_state_level_A >= 2000 ) message2.concat(" [####] ");//E:
-                                           */
-                                         }
-                                         
-                                         
-                                       if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET_REQ_SEND ) {
-                                        message2.concat(">*");//E:
-                                       } else if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) {
-                                        message2.concat("*");//E:
-                                         
-                                          } else  if (!( ( Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) ^ Exp_state_SET ))  {
-                                          message2.concat(" ** ");//E:
-                                          } else {
-                                           message2.concat(" ?");//E: 
-                                 
-                                 
-                                 
-                                      
-                                 
-                                 
-                                 }
-                               
-                                 
-                          
-                 
-                        
-             // String message = "P ";  message.concat(Slave_Ports_Status_A[i].Port_ID)  ;  message.concat(" ");
-             
-                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_CURSOR_X_CHARS_A =  0 ;
-                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_CURSOR_Y_CHARS_A = i ;
-                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_string_A = message2 ;
-                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_COLOR_A = BLACK  ;
-                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INIT  ;
-                
-               }
-             }
-            
-            
-            
-            
-            
-            #else
-            
-            if(Slave_Ports_Status_A[i].Port_ID > 0 ) {
-            
-                    #if  defined(DEBUG)
-                        if(DEBUG > 2) {
-                            Serial.print("#68 Port_Dspl[DEBUG]  i "); Serial.print(i);
-                            Serial.println("]  ");
-                            }
-                    #endif    
-                    
-                    
-                    #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                      String message = "";
-                       String message2 ;
-                    #else
-                    
-                      message = "";
-                    #endif
-                
-                 //message.concat(":")  ; 
-                 message.concat(i);
-                 message.concat(".");
-                 message.concat(Slave_Ports_Status_A[i].Port_ID )  ; 
-                 message.concat(" ");
-                 
-                    if(Slave_Ports_Status_A[i].IS_gone_A == IS_gone_TRUE) {
-                        message2 = message ; message2.concat(" [---] ");
-                    } else {
-                         message2 = message  ; message2.concat(" ");//E:
-                         //String Exp_state_s  = BIN8_to_STRING(Slave_Ports_Status_A[i].Exp_state) ; // ="";    
-                          //message2.concat(Exp_state_s.substring(1,8));
-                         // message2.concat(Exp_state_s);
-      
-                         /*
-                         if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ERROR ) {
-                          message2 = message  ;  message2.concat(" ERR ");//E:
-                         
-                          } else {
-                         if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON ) message2 = message  ;     message2.concat(" ON  ");//E:
-                         if(Slave_Ports_Status_A[i].Exp_state & Exp_state_OFF ) message2 = message  ;    message2.concat(" OFF ");//E:
-                         }
-                         */
-                         message2.concat(" ");// B:
-                           //if(Slave_Ports_Status_A[i].Exp_state_ttl & Exp_state_ttl_TO_REFRESH ) {
-                           //    message2.concat("R");// B:
-                           // } else {
-                           //   message2.concat(""); //T:
-                              message2.concat(Slave_Ports_Status_A[i].Exp_state_ttl/10 )  ;
-                           //   message2.concat(""); //T:
-                         // }
-                   
-                    
-                            
-                                     
-                                    // if(Slave_Ports_Status_A[i].Broadcast_state > Broadcast_state_FRESH ) {
-                                          //message2.concat(" R ");// B:
-                                      //    message2.concat(" B");
-                                     //} else {
-                                         message2.concat(" ");// B:
-                                          message2.concat(Slave_Ports_Status_A[i].Broadcast_state/10 )  ;
-                                          //message2.concat(" ");// B:
-                                     //}
-                                     
-                                      if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) {
-                                          message2.concat(" L");// B:
-                                     } else if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_FALSE) {
-                                          message2.concat(" R");// B:
-                                     } 
-                                  //message2.concat(" ");
-                                  
-                                  
-                                   if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON_USE_LEVEL ) {
-                                    message2.concat(" ["); message2.concat(Slave_Ports_Status_A[i].Exp_state_level_A); message2.concat("] ");
-                                      /*if(Slave_Ports_Status_A[i].Exp_state_level_A < 10 ) message2.concat(" [___] ");//E:
-                                      else if(Slave_Ports_Status_A[i].Exp_state_level_A < 100 )  message2.concat("  [#___] ");//E:
-                                      else if(Slave_Ports_Status_A[i].Exp_state_level_A < 1000 ) message2.concat("  [##__] ");//E:
-                                      else if(Slave_Ports_Status_A[i].Exp_state_level_A < 2000 ) message2.concat("  [###_] ");//E:
-                                      else if(Slave_Ports_Status_A[i].Exp_state_level_A >= 2000 ) message2.concat(" [####] ");//E:
-                                      */
-                                    }
-                                    
-                                    
-                                  if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET_REQ_SEND ) {
-                                   message2.concat(">*");//E:
-                                  } else if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) {
-                                   message2.concat("*");//E:
-                                    
-                                     } else  if (!( ( Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) ^ Exp_state_SET ))  {
-                                     message2.concat(" ** ");//E:
-                                     } else {
-                                      message2.concat(" ?");//E: 
-                            
-                            
-                            
-                                 
-                            
-                            
-                            }
-                            #if defined(DEBUG) > 7
-                                Serial.print("#228 debug BIN  #i["); Serial.print(i);  Serial.print("] Exp_state_s["); Serial.print(Exp_state_s);  Serial.print("]    exp_state["); Serial.print(Slave_Ports_Status_A[i].Exp_state); Serial.print("]    BIN[");  Serial.print(Slave_Ports_Status_A[i].Exp_state, BIN); Serial.print("]    [   ");
-                                
-                                                                if(Slave_Ports_Status_A[i].Exp_state &  Exp_state_SET )   Serial.print(" [ & SET ] "); //dziala opcjonalnie off
-                                                                if(Slave_Ports_Status_A[i].Exp_state ==  Exp_state_SET )   Serial.print(" [ = SET ] "); //dziala only off   
-                                                                if (!( ( Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) ^ Exp_state_SET ))  Serial.print(" [ ^ SET ] ");//opcjonalnie off
-                                                                if (!( ( Slave_Ports_Status_A[i].Exp_state & B00000000 ) ^ Exp_state_SET ))  Serial.print(" [ + SET ] "); //not working
-                                                                if (!( ( Slave_Ports_Status_A[i].Exp_state & B11111111 ) ^ Exp_state_SET ))  Serial.print(" [ # SET ] ");//only off
-                                                                
-                                       
-                                            Serial.print("#238 debug BIN  PortTypes["); Serial.print(Slave_Ports_Status_A[i].PortTypes);Serial.print("]    BIN[");  Serial.print(Slave_Ports_Status_A[i].PortTypes, BIN); Serial.print("]    [   ");                    
-                                                          if(Slave_Ports_Status_A[i].PortTypes &  PortTypes_PWM )   Serial.print(" [ & PWM ] "); //dziala opcjonalnie off
-                                                                if(Slave_Ports_Status_A[i].PortTypes ==  PortTypes_PWM )   Serial.print(" [ = PWM ] "); //dziala only off         
-                                                              if(Slave_Ports_Status_A[i].PortTypes &  PortTypes_PWM )   Serial.print(" [ & PWM ] "); //dziala opcjonalnie off
-                                                                if(Slave_Ports_Status_A[i].PortTypes ==  PortTypes_PWM )   Serial.print(" [ = PWM ] "); //dziala only off   
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & PortTypes_PWM ) ^ PortTypes_PWM ))  Serial.print(" [ ^ PWM ] ");//opcjonalnie off
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & B00000000 ) ^ PortTypes_PWM ))  Serial.print(" [ + PWM ] "); //not working
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & B11111111 ) ^ PortTypes_PWM ))  Serial.print(" [ # PWM ] ");//only off
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & B11111110 ) ^ B00000001 ))  Serial.print(" [ < PWM ] "); //not working
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & B00000001 ) ^ B11111110 ))  Serial.print(" [ > PWM ] "); //not working    
-                                                                 Serial.println(" ]");
-                                Serial.print(" ]  #248     OFF+ON["); Serial.print(BIN8_to_STRING( Exp_state_OFF + Exp_state_ON  )); 
-                                        Serial.print(" ]     OFF || ON[");  Serial.print(BIN8_to_STRING( Exp_state_OFF || Exp_state_ON  )); Serial.println(" ]   ");
-                                Serial.print(" ]  #248     OFF+SET["); Serial.print(BIN8_to_STRING( Exp_state_OFF + Exp_state_SET  )); 
-                                Serial.print(" ]  #251     OFF || SET["); Serial.print(BIN8_to_STRING( Exp_state_OFF | Exp_state_SET  ));    Serial.println(" ]   ");
-                            #else
-                           //   Serial.print("#255 will message2  Exp_state[");  Serial.print(Slave_Ports_Status_A[i].Exp_state, BIN); Serial.println("]  "); 
-                            #endif
-                            }
-                     
-                 
-                  #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                      DISPLAY__print(
-                          DISPLAY_A ,
-                          DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                          DISPLAY_PHYSICAL_CHAR_A, 
-                           DISPLAY_pos_seq_A,
-                            message2, //DISPLAY_array16_AB,
-                            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
-                          );  
-                  #else
-                    message2.toCharArray(DISPLAY_array16_AB, message2.length());   
-                    
-                        DISPLAY__print(
-                          DISPLAY_A ,
-                          DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                          DISPLAY_PHYSICAL_CHAR_A, 
-                           DISPLAY_pos_seq_A,
-                            DISPLAY_array16_AB,
-                            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
-                        
-                
-              // delay(100);
-            }
-            
-            #endif
-            
-              #if defined(ENABLE_DISPLAY_MENU)
-               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
-                         time_seq_id_A, (time_seq_id_A + 5000) 
-                          );  
-                
-              
-              #endif
-        
-            
-        }
-   
-   }  
-   
-   
- 

+ 20 - 254
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_func.h

@@ -113,7 +113,7 @@
         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,
+                DISPLAY_string_T DISPLAY_string_ASSSS,
             #else
                 DISPLAY_array16_T DISPLAY_array16_A,
              #endif
@@ -130,104 +130,31 @@
    {
    
    
-   
-                #if defined(DEBUG)
-                    if(DEBUG > 6) {
-                                   Serial.print("#72 Port_Dspl[DEBUG] #COUNT["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
-                                    Serial.print("] INDEX_LAST["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
-                                    Serial.print("] INDEX_CURRENT["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
-                                    Serial.print("] NEXT_A["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
-                                    
-                                    
-                                    
-                                    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    
-                     String message_init = String(Active_ControllerID, HEX) ;
-                       message_init.concat("] #C: ");
-                       message_init = message_init +  Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ;
-                        message_init.concat("   ");
-           #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                     #if defined(ENABLE_DISPLAY_MENU)
+                     
+                  
                      DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_CURSOR_X_CHARS_A =  0 ;
                      DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_CURSOR_Y_CHARS_A = 0 ;
-                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_string_A = message_init ;
+                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_string_A =  "Ports"; //DISPLAY_string_A ;
                      DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_COLOR_A =  0x0004 ;
-                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INIT  ;
-                     
+                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INITIALIZED  ;
+                             
 
-                     #else 
-                         DISPLAY__print(
-                                                    DISPLAY_A ,
-                                                    DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                                                    DISPLAY_PHYSICAL_CHAR_A, 
-                                                     DISPLAY_pos_seq_A | DISPLAY_pos_seq_A_CLEARSCREEN,
-                                                      message_init, // DISPLAY_array16_AAT,
-                                                      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
-            #else
-               
-               
-                 
-                       DISPLAY_array16_T  DISPLAY_array16_AAT ;
-                      // message_init.concat(DISPLAY_array16_A);
-                     
-                       message_init = DISPLAY_array16_A + message_init ;
-                       //message_init.concat(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A , INT );
-                       message_init.concat("     ");
-                       message_init.toCharArray(DISPLAY_array16_AAT, 16); //message_init.length()
-                       
-                       String message ;
-                       String message2 ;
-                            DISPLAY__print(
-                                         DISPLAY_A ,
-                                         DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                                         DISPLAY_PHYSICAL_CHAR_A, 
-                                          DISPLAY_pos_seq_A | DISPLAY_pos_seq_A_CLEARSCREEN,
-                                           DISPLAY_array16_AAT,
-                                           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
-     
+                   
         int i;
         
-        
-         #if defined(ENABLE_DISPLAY_MENU)
-         
           DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].ARDUINO_ARRAY_INDEX_CURRENT_A = 1 ;
           DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_X_CHARS_MIN_A = 0 ;
           DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A = 0 ;
           DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_X_CHARS_MAX_A = 0  ;
           DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A = 8 ;// DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A  ;
             
-         #endif
+       
         
         for(i=ARDUINO_ARRAY_INDEX_FIRST ; i<=5 ; i++) {//i <= Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
            DISPLAY_array16_T  DISPLAY_array16_AA="" ;
            DISPLAY_array16_T  DISPLAY_array16_AB="" ;
         
-            #if defined(ENABLE_DISPLAY_MENU)
+           
             
             
              if(Slave_Ports_Status_A[i].Port_ID > 0 ) {
@@ -298,7 +225,14 @@
                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_CURSOR_Y_CHARS_A = i ;
                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_string_A = message2 ;
                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_COLOR_A = BLACK  ;
-                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INIT  ;
+                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INITIALIZED  ;
+             
+             
+                //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_CURSOR_X_CHARS_A =  0 ;
+                //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_CURSOR_Y_CHARS_A = i ;
+                //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_string_A = "test123123" ;
+                //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_COLOR_A = BLACK  ;
+                //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INIT  ;
                 
                }
              }
@@ -307,184 +241,16 @@
             
             
             
-            #else
-            
-            if(Slave_Ports_Status_A[i].Port_ID > 0 ) {
-            
-                    #if  defined(DEBUG)
-                        if(DEBUG > 2) {
-                            Serial.print("#68 Port_Dspl[DEBUG]  i "); Serial.print(i);
-                            Serial.println("]  ");
-                            }
-                    #endif    
-                    
-                    
-                    #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                      String message = "";
-                       String message2 ;
-                    #else
-                    
-                      message = "";
-                    #endif
-                
-                 //message.concat(":")  ; 
-                 message.concat(i);
-                 message.concat(".");
-                 message.concat(Slave_Ports_Status_A[i].Port_ID )  ; 
-                 message.concat(" ");
-                 
-                    if(Slave_Ports_Status_A[i].IS_gone_A == IS_gone_TRUE) {
-                        message2 = message ; message2.concat(" [---] ");
-                    } else {
-                         message2 = message  ; message2.concat(" ");//E:
-                         //String Exp_state_s  = BIN8_to_STRING(Slave_Ports_Status_A[i].Exp_state) ; // ="";    
-                          //message2.concat(Exp_state_s.substring(1,8));
-                         // message2.concat(Exp_state_s);
-      
-                         /*
-                         if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ERROR ) {
-                          message2 = message  ;  message2.concat(" ERR ");//E:
-                         
-                          } else {
-                         if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON ) message2 = message  ;     message2.concat(" ON  ");//E:
-                         if(Slave_Ports_Status_A[i].Exp_state & Exp_state_OFF ) message2 = message  ;    message2.concat(" OFF ");//E:
-                         }
-                         */
-                         message2.concat(" ");// B:
-                           //if(Slave_Ports_Status_A[i].Exp_state_ttl & Exp_state_ttl_TO_REFRESH ) {
-                           //    message2.concat("R");// B:
-                           // } else {
-                           //   message2.concat(""); //T:
-                              message2.concat(Slave_Ports_Status_A[i].Exp_state_ttl/10 )  ;
-                           //   message2.concat(""); //T:
-                         // }
-                   
-                    
-                            
-                                     
-                                    // if(Slave_Ports_Status_A[i].Broadcast_state > Broadcast_state_FRESH ) {
-                                          //message2.concat(" R ");// B:
-                                      //    message2.concat(" B");
-                                     //} else {
-                                         message2.concat(" ");// B:
-                                          message2.concat(Slave_Ports_Status_A[i].Broadcast_state/10 )  ;
-                                          //message2.concat(" ");// B:
-                                     //}
-                                     
-                                      if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) {
-                                          message2.concat(" L");// B:
-                                     } else if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_FALSE) {
-                                          message2.concat(" R");// B:
-                                     } 
-                                  //message2.concat(" ");
-                                  
-                                  
-                                   if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON_USE_LEVEL ) {
-                                    message2.concat(" ["); message2.concat(Slave_Ports_Status_A[i].Exp_state_level_A); message2.concat("] ");
-                                      /*if(Slave_Ports_Status_A[i].Exp_state_level_A < 10 ) message2.concat(" [___] ");//E:
-                                      else if(Slave_Ports_Status_A[i].Exp_state_level_A < 100 )  message2.concat("  [#___] ");//E:
-                                      else if(Slave_Ports_Status_A[i].Exp_state_level_A < 1000 ) message2.concat("  [##__] ");//E:
-                                      else if(Slave_Ports_Status_A[i].Exp_state_level_A < 2000 ) message2.concat("  [###_] ");//E:
-                                      else if(Slave_Ports_Status_A[i].Exp_state_level_A >= 2000 ) message2.concat(" [####] ");//E:
-                                      */
-                                    }
-                                    
-                                    
-                                  if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET_REQ_SEND ) {
-                                   message2.concat(">*");//E:
-                                  } else if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) {
-                                   message2.concat("*");//E:
-                                    
-                                     } else  if (!( ( Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) ^ Exp_state_SET ))  {
-                                     message2.concat(" ** ");//E:
-                                     } else {
-                                      message2.concat(" ?");//E: 
-                            
-                            
-                            
-                                 
-                            
-                            
-                            }
-                            #if defined(DEBUG) > 7
-                                Serial.print("#228 debug BIN  #i["); Serial.print(i);  Serial.print("] Exp_state_s["); Serial.print(Exp_state_s);  Serial.print("]    exp_state["); Serial.print(Slave_Ports_Status_A[i].Exp_state); Serial.print("]    BIN[");  Serial.print(Slave_Ports_Status_A[i].Exp_state, BIN); Serial.print("]    [   ");
-                                
-                                                                if(Slave_Ports_Status_A[i].Exp_state &  Exp_state_SET )   Serial.print(" [ & SET ] "); //dziala opcjonalnie off
-                                                                if(Slave_Ports_Status_A[i].Exp_state ==  Exp_state_SET )   Serial.print(" [ = SET ] "); //dziala only off   
-                                                                if (!( ( Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) ^ Exp_state_SET ))  Serial.print(" [ ^ SET ] ");//opcjonalnie off
-                                                                if (!( ( Slave_Ports_Status_A[i].Exp_state & B00000000 ) ^ Exp_state_SET ))  Serial.print(" [ + SET ] "); //not working
-                                                                if (!( ( Slave_Ports_Status_A[i].Exp_state & B11111111 ) ^ Exp_state_SET ))  Serial.print(" [ # SET ] ");//only off
-                                                                
-                                       
-                                            Serial.print("#238 debug BIN  PortTypes["); Serial.print(Slave_Ports_Status_A[i].PortTypes);Serial.print("]    BIN[");  Serial.print(Slave_Ports_Status_A[i].PortTypes, BIN); Serial.print("]    [   ");                    
-                                                          if(Slave_Ports_Status_A[i].PortTypes &  PortTypes_PWM )   Serial.print(" [ & PWM ] "); //dziala opcjonalnie off
-                                                                if(Slave_Ports_Status_A[i].PortTypes ==  PortTypes_PWM )   Serial.print(" [ = PWM ] "); //dziala only off         
-                                                              if(Slave_Ports_Status_A[i].PortTypes &  PortTypes_PWM )   Serial.print(" [ & PWM ] "); //dziala opcjonalnie off
-                                                                if(Slave_Ports_Status_A[i].PortTypes ==  PortTypes_PWM )   Serial.print(" [ = PWM ] "); //dziala only off   
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & PortTypes_PWM ) ^ PortTypes_PWM ))  Serial.print(" [ ^ PWM ] ");//opcjonalnie off
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & B00000000 ) ^ PortTypes_PWM ))  Serial.print(" [ + PWM ] "); //not working
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & B11111111 ) ^ PortTypes_PWM ))  Serial.print(" [ # PWM ] ");//only off
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & B11111110 ) ^ B00000001 ))  Serial.print(" [ < PWM ] "); //not working
-                                                                if (!( ( Slave_Ports_Status_A[i].PortTypes & B00000001 ) ^ B11111110 ))  Serial.print(" [ > PWM ] "); //not working    
-                                                                 Serial.println(" ]");
-                                Serial.print(" ]  #248     OFF+ON["); Serial.print(BIN8_to_STRING( Exp_state_OFF + Exp_state_ON  )); 
-                                        Serial.print(" ]     OFF || ON[");  Serial.print(BIN8_to_STRING( Exp_state_OFF || Exp_state_ON  )); Serial.println(" ]   ");
-                                Serial.print(" ]  #248     OFF+SET["); Serial.print(BIN8_to_STRING( Exp_state_OFF + Exp_state_SET  )); 
-                                Serial.print(" ]  #251     OFF || SET["); Serial.print(BIN8_to_STRING( Exp_state_OFF | Exp_state_SET  ));    Serial.println(" ]   ");
-                            #else
-                           //   Serial.print("#255 will message2  Exp_state[");  Serial.print(Slave_Ports_Status_A[i].Exp_state, BIN); Serial.println("]  "); 
-                            #endif
-                            }
-                     
-                 
-                  #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                      DISPLAY__print(
-                          DISPLAY_A ,
-                          DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                          DISPLAY_PHYSICAL_CHAR_A, 
-                           DISPLAY_pos_seq_A,
-                            message2, //DISPLAY_array16_AB,
-                            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
-                          );  
-                  #else
-                    message2.toCharArray(DISPLAY_array16_AB, message2.length());   
-                    
-                        DISPLAY__print(
-                          DISPLAY_A ,
-                          DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                          DISPLAY_PHYSICAL_CHAR_A, 
-                           DISPLAY_pos_seq_A,
-                            DISPLAY_array16_AB,
-                            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
-                        
-                
-              // delay(100);
-            }
-            
-            #endif
+           
             
-              #if defined(ENABLE_DISPLAY_MENU)
+           
                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
                          time_seq_id_A, (time_seq_id_A + 5000) 
                           );  
                 
               
-              #endif
+           
         
             
         }

+ 27 - 2
SE/stuff/P5_Automation_can-dev-res/_TFT_ILI9163C_func.h

@@ -73,6 +73,9 @@ void DISPLAY_DEV__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_
                 ) { 
                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A = DISPLAY_CURSOR_Y_CHARS_A ;
                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_X_CHARS_A = 0 ; //[ARDUINO_ATTR_ARRAY_S_INDEX]
+
+#if defined(ENABLE_DISPLAY_MENU)
+#else
                 DISPLAY_DEV.setCursor(0,
                             DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); //[ARDUINO_ATTR_ARRAY_S_INDEX]
 
@@ -81,22 +84,34 @@ void DISPLAY_DEV__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_
                   (  DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A + 1 ) * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A,
                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_PX_A , 
                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A , GREEN);
-               
+#endif               
          
 }
 
 
 void DISPLAY_DEV__CURSOR__clearScreen(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A) { 
+
+        
+        #if defined(ENABLE_DISPLAY_MENU)
+        #else
+
          DISPLAY_DEV.setCursor(0,0);
          //DISPLAY_DEV.clearScreen();
           DISPLAY_DEV.fillRect(0, 0, DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_PX_A , DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A  ,BLUE),
          DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A = 0 ; //[ARDUINO_ATTR_ARRAY_S_INDEX]
          DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_X_CHARS_A = 0 ; //[ARDUINO_ATTR_ARRAY_S_INDEX]
+         
+    #endif
 }
 
 
 void DISPLAY_DEV__CURSOR__NEWLINE(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A
     ) { 
+    
+            
+        #if defined(ENABLE_DISPLAY_MENU)
+        #else
+    
     if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A + 1 >= DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A) {//[ARDUINO_ATTR_ARRAY_S_INDEX]
         DISPLAY_DEV.setCursor(0,0);
          //DISPLAY_DEV.clearScreen();
@@ -123,6 +138,7 @@ void DISPLAY_DEV__CURSOR__NEWLINE(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR
                      Serial.println("] "); 
                 }
             #endif
+            #endif
 }
 
 
@@ -131,6 +147,10 @@ void DISPLAY_DEV__CURSOR__NEWLINE(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR
 
 
 void  DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
+
+
+    
+
                                 #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
                                   DISPLAY_string_T DISPLAY_string_A,
                                 #else
@@ -140,6 +160,11 @@ void  DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A
                                  
                                 DISPLAY_pos_seq_T DISPLAY_pos_seq_A
                                 ) {
+                                
+                                    
+        #if defined(ENABLE_DISPLAY_MENU)
+        #else
+                                
                                 DISPLAY_DEV__CURSOR__NEWLINE(DISPLAY_PHYSICAL_CHAR_A) ; 
                              
                              
@@ -229,7 +254,7 @@ void  DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A
                                         
                                         
                                 #endif
-                                 
+                        #endif         
                               
             }