a.binder 5 năm trước cách đây
mục cha
commit
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 ) {
               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_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);
                    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);
                    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("] ");
                    Serial.print(" msg["); Serial.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message); Serial.print("] ");
-                   
+                 #endif
                    
                    
                    
                    
                } else {
                } else {
@@ -289,8 +291,8 @@ void DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR
                     #endif
                     #endif
                 
                 
                 }
                 }
-
-
+                
+          
 
 
 void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
 void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
         DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_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 i;
         int maxX ;
         int maxX ;
         int maxY ;
         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 ;
         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 ;
         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(" ");*/
                 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 ;
 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_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
 struct DISPLAY_MENU_ITEM_S { //elementy menu
      DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_EMPTY ;
      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_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ;//gdzie sie wyswietla
      DISPLAY_string_T DISPLAY_string_A;
      DISPLAY_string_T DISPLAY_string_A;
      DISPLAY_COLOR_T DISPLAY_COLOR_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_seq_id_T time_seq_id_A ;  //to controll latency
      time_min_run_T time_min_run_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 {   
 //struct DISPLAY_MENU_ITEM_OPTIONS_S {   
 //}
 //}
 
 
-typedef ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_T ;//which index
 
 
 //ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU
 //ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU
   struct DISPLAY_MENU_S {
   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
            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
            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 ;
  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_X_PX_T DISPLAY_PHYSICAL_X_PX_A ;
            DISPLAY_PHYSICAL_Y_PX_T DISPLAY_PHYSICAL_Y_PX_A ;
            DISPLAY_PHYSICAL_Y_PX_T DISPLAY_PHYSICAL_Y_PX_A ;
            DISPLAY_PHYSICAL_X_CHARS_T DISPLAY_PHYSICAL_X_CHARS_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_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ;
            DISPLAY_textsize_x_T DISPLAY_textsize_x_A;
            DISPLAY_textsize_x_T DISPLAY_textsize_x_A;
            DISPLAY_textsize_y_T DISPLAY_textsize_y_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?
  // You can assign any number of functions to different pins. How cool is that?
 void ROTTARY_SW_sw_INT() {
 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) {
  if(oldEncPos != encoderPos) {
  
  
     
     
     static I2C_INDEX_DRIVER_T I2C_INDEX_DRIVER_A ;
     static I2C_INDEX_DRIVER_T I2C_INDEX_DRIVER_A ;
  
  
     Serial.print(" ROT_SW[");  Serial.print(encoderPos);  Serial.print("] ");  
     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;
     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={
    /*TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={
         2,
         2,
@@ -19,7 +58,7 @@
         0x13,
         0x13,
         0
         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_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,
     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
     //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 );
    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)) {
                  if(not(I2C_INDEX_DRIVER_A > 0)) {
@@ -49,7 +89,7 @@
 
 
 //DISPLAY_DEV.print("#550 CLK_AAdafruit_PWMServoD");
 //DISPLAY_DEV.print("#550 CLK_AAdafruit_PWMServoD");
 
 
-
+/*
 DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_A, 
 DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_A, 
                                 DISPLAY_CURSOR_Y_CHARS_ROTTARY_SW_DEBUG);
                                 DISPLAY_CURSOR_Y_CHARS_ROTTARY_SW_DEBUG);
           DISPLAY_array16_T  DISPLAY_array16_AA="" ;
           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
                          {  } //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 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 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 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 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 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_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
             DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
             DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
             #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
             #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                DISPLAY_string_T DISPLAY_string_A,
+                DISPLAY_string_T DISPLAY_string_ASSSS,
             #else
             #else
                 DISPLAY_array16_T DISPLAY_array16_A,
                 DISPLAY_array16_T DISPLAY_array16_A,
              #endif
              #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_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_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_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;
         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].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_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_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_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  ;
           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
         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_AA="" ;
            DISPLAY_array16_T  DISPLAY_array16_AB="" ;
            DISPLAY_array16_T  DISPLAY_array16_AB="" ;
         
         
-            #if defined(ENABLE_DISPLAY_MENU)
+           
             
             
             
             
              if(Slave_Ports_Status_A[i].Port_ID > 0 ) {
              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_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_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_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, 
                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
                          1,  //DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A
                          time_seq_id_A, (time_seq_id_A + 5000) 
                          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_Y_CHARS_A = DISPLAY_CURSOR_Y_CHARS_A ;
                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_X_CHARS_A = 0 ; //[ARDUINO_ATTR_ARRAY_S_INDEX]
                 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_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]
                             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_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_PHYSICAL_X_PX_A , 
                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A , GREEN);
                     DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A , GREEN);
-               
+#endif               
          
          
 }
 }
 
 
 
 
 void DISPLAY_DEV__CURSOR__clearScreen(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A) { 
 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.setCursor(0,0);
          //DISPLAY_DEV.clearScreen();
          //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_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_Y_CHARS_A = 0 ; //[ARDUINO_ATTR_ARRAY_S_INDEX]
          DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_X_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
 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]
     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.setCursor(0,0);
          //DISPLAY_DEV.clearScreen();
          //DISPLAY_DEV.clearScreen();
@@ -123,6 +138,7 @@ void DISPLAY_DEV__CURSOR__NEWLINE(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR
                      Serial.println("] "); 
                      Serial.println("] "); 
                 }
                 }
             #endif
             #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, 
 void  DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
+
+
+    
+
                                 #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
                                 #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
                                   DISPLAY_string_T DISPLAY_string_A,
                                   DISPLAY_string_T DISPLAY_string_A,
                                 #else
                                 #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
                                 DISPLAY_pos_seq_T DISPLAY_pos_seq_A
                                 ) {
                                 ) {
+                                
+                                    
+        #if defined(ENABLE_DISPLAY_MENU)
+        #else
+                                
                                 DISPLAY_DEV__CURSOR__NEWLINE(DISPLAY_PHYSICAL_CHAR_A) ; 
                                 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
-                                 
+                        #endif         
                               
                               
             }
             }