a.binder 5 år sedan
förälder
incheckning
a82ac02573

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

@@ -99,6 +99,8 @@
 #define DISABLE_DISPLAY__add_record 
 #define DISPLAY_array16_T_is_DISPLAY_string_T 
 #define ENABLE_DISPLAY_MENU
+#define USE_DISPLAY_string_T
+//#define USE_DISPLAY_char_PA //dev testing pointer to display
 //#define DISABLE_ANY_PRINT //when uno ?
 //#define DEBUG 3
 //#define DISABLE_LOOP
@@ -272,6 +274,8 @@ etc. To deactivate the Serial printing, define the macro empty:
  #include "_Port_I2C_driver_struct.h"
  #include "_Slave_Ports_Status_struct.h"
  #include "_CAN/_Slave_Ports_Protocol_CAN_struct.h"
+ #include "__icon/__icon.h"
+ 
  
  #if defined(HAS_TFT_ILI9163C)
   #include "_TFT_ILI9163C_func.h"

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

@@ -318,8 +318,11 @@ DISPLAY_LATENCY_PASS__POP(
                  }
         }
          
-         
-
+   #if defined(USE_DISPLAY_char_PA)  
+        void DISPLAY_char_P_print(DISPLAY_char24_T &DISPLAY_char_PA ) {
+           DISPLAY_DEV.print(DISPLAY_char_PA);
+        }
+   #endif
 void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
         DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
         DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
@@ -341,6 +344,7 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
         int menuYoffset = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A ;
         
         int next_tab_pos;
+        String message;
        // int tab_pos_size = DISPLAY_char24_TAB_SIZE;
         
         
@@ -380,15 +384,21 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
                            else maxY = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ;
                          
                         
-                        
-                        //debug
-                        DISPLAY_DEV.fillRect(0, 8 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ,
-                                                           120, DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A * 2 , BLUE );                        
-                          DISPLAY_DEV.setCursor(minXi , 8 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A );
-                          DISPLAY_DEV.print("Tim r: "); DISPLAY_DEV.print(time_seq_id_A); DISPLAY_DEV.print(" ");  DISPLAY_DEV.print(Slave_Ports_Status_A[1].Exp_state_level_A);
+                             #if defined(USE_DISPLAY_char_PA)
+                              
+                                //debug
+                                    DISPLAY_DEV.fillRect(0, 8 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ,
+                                                                       120, DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A * 2 , BLUE );                        
+                                      DISPLAY_DEV.setCursor(minXi , 8 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A );
+                                      DISPLAY_DEV.print("T:"); DISPLAY_DEV.print(time_seq_id_A); DISPLAY_DEV.print(" ");  DISPLAY_DEV.print(Slave_Ports_Status_A[1].Exp_state_level_A);
+                                  
+                                DISPLAY_DEV.print(" P:");
+                            #endif 
+                           // DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[1].DISPLAY_char_PA*);
+                          // DISPLAY_char_P_print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[1].DISPLAY_char_PA); 
                          #if defined(USE_DISPLAY_string_T)
                             DISPLAY_DEV.setCursor(minXi , 9 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A );
-                            DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[1].DISPLAY_string_A);
+                            DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[2].DISPLAY_string_A);
                          #endif
                                   for(i=ARDUINO_ARRAY_INDEX_FIRST ; i<=ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A; i++) {
                                       //DISPLAY_PHYSICAL_CHAR_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i] 
@@ -447,7 +457,10 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
                                                                   //DISPLAY_DEV.setCursor(minXi , maxYi );   DISPLAY_DEV.setTextColor(WHITE, BLACK); 
                                                                   //DISPLAY_DEV.print("[ ON ] / [ OFF ] ");DISPLAY_DEV.setTextColor(WHITE);
                                                                } else {
-                                                                  DISPLAY_DEV.fillRect(  0, maxYi , maxXi,  minYi, RED );
+                                                                  DISPLAY_DEV.fillRect(  0, maxYi , maxXi,  minYi, 
+                                                                  DISPLAY_DEV.Color24To565(0x660000)
+                                                                  //RED 
+                                                                  );
                                                                   //DISPLAY_DEV.setCursor(minXi , maxYi ); DISPLAY_DEV.setTextColor(WHITE, BLACK);
                                                                   //DISPLAY_DEV.print("[ ?  ] / [  ?  ] ");DISPLAY_DEV.setTextColor(WHITE);
                                                                }
@@ -459,7 +472,18 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
                                                       DISPLAY_DEV.fillRect(
                                                             0, maxYi , 
                                                             5,  minYi, RED );                                
-                                                }
+                                                } 
+                                                    //draw level
+                                                     
+                                                DISPLAY_DEV.drawLine(  
+                                                ( Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A / 3)
+                                                , (i * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A) - 1,  (( Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A / 3) + 10 ) //maxXi
+                                                , (i * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A) - 1 ,DISPLAY_DEV.Color24To565(0x444400) );
+                                    
+                                   
+                                    
+                                                
+                                                
                                                 
                                                 /*if(maxYi == 0 )  {
                                                    Serial.print(" 404[maxYi]==0 for i[");Serial.print(i);Serial.print(" ] ");
@@ -480,19 +504,32 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
                                                   next_tab_pos = 1 ; //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A * 6
                                                   
                                                   
+                                                  //MESSAGE BEGIN
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  //EOF MESSAGE
+                                                  
                                                   
-                                                             
+                                                  #include "_DISPLAY_func_PRINT_PORT_ELEMENT.h"
+                                                            
                                                             for (int iA = 0; iA < 24; iA++) {
                                                                     if(iA % DISPLAY_char24_TAB_SIZE == 0) next_tab_pos++ ;
                                                                     
-                                                                    if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char24_A[iA] == TAB) {
+                                                                    //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char24_A[iA] == TAB) {
+                                                                    if(String(message[iA]) == TAB_S) {
                                                                     //move cursor to optimal tab pos
                                                                     DISPLAY_DEV.setCursor( (next_tab_pos * DISPLAY_char24_TAB_SIZE * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A ) , maxYi );
                                                                     } else  {
-                                                                      DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char24_A[iA]);
+                                                                      //DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char24_A[iA]);
+                                                                      DISPLAY_DEV.print(message[iA]);
                                                                     }
                                                             }
                                                  
+                                                 // DISPLAY_DEV.print("test 123");
                                                           
                                                 
                                             } 

+ 66 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/_DISPLAY_func_PRINT_PORT_ELEMENT.h

@@ -0,0 +1,66 @@
+message = "";
+
+
+
+          message.concat(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A);
+          message.concat(".");
+          message.concat(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Port_ID )  ; 
+          message.concat(TAB_S);
+          
+          
+            
+                       if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].PortTypes & PortTypes_SERVO ) {
+                            message.concat("S");
+                       }
+                       if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].PortTypes & PortTypes_SERVO_360 ) {
+                            message.concat("3");
+                       }
+                      
+                       message.concat(TAB_S);
+                       
+                         if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].IS_gone_A == IS_gone_TRUE) {
+                             message.concat(" [---] ");
+                         } else {
+                             
+                             
+                               
+                                   message.concat(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_ttl/10 )  ;
+                      
+                                              message.concat(TAB_S);// B:
+                                               message.concat(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Broadcast_state/10 )  ;
+                                           if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].IS_Local_A == IS_Local_TRUE) {
+                                               message.concat("L");// B:
+                                          } else if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].IS_Local_A == IS_Local_FALSE) {
+                                               message.concat("R");// B:
+                                          } 
+                                      //      message.concat(TAB_S);
+                                      //  if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state & Exp_state_ON_USE_LEVEL ) {
+                                       //  message.concat("["); 
+                                        // int LVL;
+                                         //LVL = Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A + 10 ;
+                                       //  message.concat(String(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A, DEC));
+                                       //   message.concat("]");
+                                          
+                                        //  message.concat(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A) ;
+                                          
+                                           /*if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A < 10 ) message2.concat(" [___] ");//E:
+                                           else if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A < 100 )  message2.concat("  [#___] ");//E:
+                                           else if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A < 1000 ) message2.concat("  [##__] ");//E:
+                                           else if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A < 2000 ) message2.concat("  [###_] ");//E:
+                                           else if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A >= 2000 ) message2.concat(" [####] ");//E:
+                                           */
+                                        // }
+                                         
+                                         message.concat(TAB_S);
+                                         
+                                       if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state & Exp_state_SET_REQ_SEND ) {
+                                        message.concat(">*");//E:
+                                       } else if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state & Exp_state_SET ) {
+                                        message.concat("*");//E:  
+                                       } else  if (!( ( Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state & Exp_state_SET ) ^ Exp_state_SET ))  {
+                                          message.concat(" ** ");//E:
+                                       } else {
+                                           message.concat(" ?");//E: 
+                                       }
+                                       
+                            }

+ 37 - 5
SE/stuff/P5_Automation_can-dev-res-working-1930/_DISPLAY_struct.h

@@ -122,12 +122,12 @@ struct DISPLAY_MENU_SELECTOR_S {
 typedef struct DISPLAY_MENU_SELECTOR_S DISPLAY_MENU_SELECTOR_T ;
 
 typedef byte DISPLAY_MENU_ITEM_Exp_state_level_T ;
-
+const byte DISPLAY_char24_T_SIZE = 24 ;
 
 typedef char DISPLAY_char_T ;
-typedef DISPLAY_char_T DISPLAY_char24_T[24] ;
-
+typedef DISPLAY_char_T DISPLAY_char24_T[DISPLAY_char24_T_SIZE] ;
 
+//typedef int DISPLAY_char_PT ;
 
 struct DISPLAY_MENU_ITEM_S { //elementy menu
      DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_EMPTY ;
@@ -143,7 +143,10 @@ struct DISPLAY_MENU_ITEM_S { //elementy menu
      time_min_run_T time_min_run_A ;  //to controll latency
      DISPLAY_MENU_ITEM_Exp_state_level_T  Exp_state_level_A ;
      ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ; //index do czegos - portu
-     //int *DISPLAY_char_P ; //pointer do wiadomosci
+     //DISPLAY_char_PT  DISPLAY_char_PA ; //pointer do wiadomosci
+     #if defined(USE_DISPLAY_char_PA)
+     DISPLAY_char24_T  *DISPLAY_char_PA ; //pointer do wiadomosci
+     #endif
      DISPLAY_char24_T DISPLAY_char24_A;
 } ;
 
@@ -246,6 +249,35 @@ typedef byte DISPLAY__print_loop_ACTION_T ;
 const DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_ADD = B00000001 ;
 const DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_POP = B00000010 ;
 
-const DISPLAY_CURSOR_T DISPLAY_char24_TAB_SIZE =    2 ;
+const DISPLAY_CURSOR_T DISPLAY_char24_TAB_SIZE =    3 ;
     
+    #if defined(USE_DISPLAY_char_PA)
+        void DISPLAY_char_P(  String message ,  DISPLAY_char24_T  &DISPLAY_char_PA  ) {//DISPLAY_char24_T DISPLAY_char24_A
+            //DISPLAY_char24_PT
+            //DISPLAY_char24_T temp_P;
+            DISPLAY_char24_T temp ;
+           // int temp_P = *DISPLAY_char_PA;
+            message.toCharArray(temp, message.length());
+            //temp = *DISPLAY_char24_A;
+           //return *DISPLAY_char24_A;
+            //return *temp ;
+            //temp_P = *temp;
+            *DISPLAY_char_PA = *temp;
+        }
+
+#endif
+ /*   
+DISPLAY_char_PT DISPLAY_char_P(  String message ) {//DISPLAY_char24_T DISPLAY_char24_A
+    //DISPLAY_char24_PT
+    DISPLAY_char24_T temp ;
+    message.toCharArray(temp, message.length());
+    //temp = *DISPLAY_char24_A;
+   //return *DISPLAY_char24_A;
+   return *temp ;
+}
+
+*/
+//DISPLAY_char24_T DISPLAY_char_PV(  DISPLAY_char_PT DISPLAY_char_PA ) {//DISPLAY_char24_T DISPLAY_char24_A
+   //return DISPLAY_char_PA;
+//}
     

+ 36 - 15
SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_Status_func.h

@@ -146,12 +146,13 @@
                  String message ;
                  title = "Ports:" ;
                  title.concat(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
+                 DISPLAY_char24_T DISPLAY_char24_A ;
                  
-                  
-                 title.concat(TAB);
+                 
+                 title.concat(TAB_S);
                  title.concat("Dev:0x") ;
                 title.concat(String(Active_ControllerID_HEX , HEX));          
-                   title.concat(TAB);
+                   title.concat(TAB_S);
                              
                     int i;
                       
@@ -170,7 +171,16 @@
           #endif
           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_INITIALIZED ;
-          title.toCharArray(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_char24_A, title.length());
+          //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_char_PA = 
+          #if defined(USE_DISPLAY_char_PA)
+          //DISPLAY_char_P(title,*DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_char_PA );
+          /*for(int s = 1; s<= DISPLAY_char24_T_SIZE; s++) {
+            DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_char24_A[s] = title[s] ;
+          }*/
+          #endif
+          //title.toCharArray(DISPLAY_char24_A, title.length());
+          //memcpy(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_char24_A, DISPLAY_char24_A, title.length());
+          //title.toCharArray(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_char24_A, title.length());
                     // DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_string_A = "NULL_SHB" ;// "Ports"; //DISPLAY_string_A ;
        
          
@@ -184,11 +194,11 @@
             
              if(Slave_Ports_Status_A[i].Port_ID > 0 ) {
             
-                   
+                  #if defined(USE_MESSAGE_OLD)
                       message.concat(i);
                       message.concat(".");
                       message.concat(Slave_Ports_Status_A[i].Port_ID )  ; 
-                      message.concat(TAB);
+                      message.concat(TAB_S);
                       
                        if(Slave_Ports_Status_A[i].PortTypes & PortTypes_SERVO ) {
                             message.concat("S");
@@ -197,24 +207,25 @@
                             message.concat("3");
                        }
                       
-                       message.concat(TAB);
-                       
+                       message.concat(TAB_S);
+                         #endif   
                          if(Slave_Ports_Status_A[i].IS_gone_A == IS_gone_TRUE) {
                              message.concat(" [---] ");
+                            
                          } else {
                              
                              
-                               
+                                #if defined(USE_MESSAGE_OLD)
                                    message.concat(Slave_Ports_Status_A[i].Exp_state_ttl/10 )  ;
                       
-                                              message.concat(TAB);// B:
+                                              message.concat(TAB_S);// B:
                                                message.concat(Slave_Ports_Status_A[i].Broadcast_state/10 )  ;
                                            if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) {
                                                message.concat("L");// B:
                                           } else if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_FALSE) {
                                                message.concat("R");// B:
                                           } 
-                                            message.concat(TAB);
+                                            message.concat(TAB_S);
                                         if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON_USE_LEVEL ) {
                                          message.concat("["); 
                                         // int LVL;
@@ -232,7 +243,7 @@
                                            */
                                          }
                                          
-                                         message.concat(TAB);
+                                         message.concat(TAB_S);
                                          
                                        if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET_REQ_SEND ) {
                                         message.concat(">*");//E:
@@ -243,7 +254,7 @@
                                        } else {
                                            message.concat(" ?");//E: 
                                        }
-                           
+                       #endif
              // String message = "P ";  message.concat(Slave_Ports_Status_A[i].Port_ID)  ;  message.concat(" ");
              
                 if(i >= (ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A - 1)) {
@@ -257,13 +268,23 @@
                 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 ;
                 #if defined(USE_DISPLAY_string_T)
+                 #if defined(USE_MESSAGE_OLD)
                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_string_A = message ;
+                  #endif
                 #endif
                 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_INITIALIZED  ;
                 DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].ARDUINO_ARRAY_INDEX_A = i  ;
-                                
-                 message.toCharArray( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_char24_A, message.length() );
+                           #if defined(USE_MESSAGE_OLD)
+                message.toCharArray(DISPLAY_char24_A, message.length());
+                 memcpy(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_char24_A, DISPLAY_char24_A, message.length());
+                  #endif
+                 /*            
+                     for(int s = 1; s<= message.length() ; s++) {//DISPLAY_char24_T_SIZE
+                       DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_char24_A[s] = message[s] ;
+                     }
+                   */                        
+                 //message.toCharArray( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_char24_A, message.length() );
                  //message.toCharArray(DISPLAY_char_A, message.length() ); //+ 1
                  //strcpy(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_char_A,DISPLAY_char_A  ); //
                  

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

@@ -16,7 +16,7 @@ const IS_gone_T IS_gone_FALSE = false ;
 #define I2C_port_DEFAULT 0x01
 
 
-typedef int Exp_state_level_T ;
+typedef byte Exp_state_level_T ;
 const Exp_state_level_T Exp_state_level_INIT = 0;
 const Exp_state_level_T Exp_state_level_DO_NOT_CHANGE = -1;
 

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

@@ -111,7 +111,7 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END(ARDUINO_LOOP_LATENCY__MAIN_END_A, ARDU
                     "PORTS [" ,
                     DISPLAY_TARGET_DISPLAY128,
                    time,
-                    time + ARDUINO_time_seq_id_A_INCREMENT
+                    time + ARDUINO_time_seq_id_A_INCREMENT //ARDUINO_LOOP_LATENCY_DISPLAY_MENU
                      //queue
                     ,Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
                     TASK_TYPE_T__EMPTY__JUST_PASSED_ARG__,
@@ -124,7 +124,8 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END(ARDUINO_LOOP_LATENCY__MAIN_END_A, ARDU
                             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,time + ARDUINO_LOOP_LATENCY_DISPLAY_MENU//time_seq_id_A, (time_seq_id_A + 5000) 
-                                      ,Slave_Ports_Status_A  );
+                                      ,Slave_Ports_Status_A 
+                                       );
                     #endif
                     
               #else 

+ 4 - 1
SE/stuff/P5_Automation_can-dev-res-working-1930/___main/__main_struct.h

@@ -255,9 +255,12 @@ const ARDUINO_ARRAY_INDEX_T ARDUINO_ATTR_ARRAY_S_INDEX = ARDUINO_ARRAY_INDEX_FIR
 
 
 
-typedef char ARDUINO_CHAR_T;
+typedef char ARDUINO_CHAR_T[1];
+typedef String ARDUINO_CHAR_STRING_T;
 
 const ARDUINO_CHAR_T TAB =  "|" ;
+const ARDUINO_CHAR_STRING_T TAB_S =  "|" ;
+//const ARDUINO_CHAR_T TAB_S =  "|" ;
 
 
 #define ArrayElementSize(x) (sizeof()/sizeof(x[0]))

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___main/__main_struct_funct.h

@@ -633,3 +633,6 @@ void INT_SAFE_DECREMENT_TO_LIMIT(int limit_min_with, int &curr_value, int try_de
          }
 }
 
+
+
+

+ 10 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/__icon/__icon.h

@@ -0,0 +1,10 @@
+/*
+typedef String PORT_IT String;
+
+
+
+PORT_IT PORT_I( Slave_Ports_Status_T* Slave_Ports_Status_A, ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ) {
+    return {ARDUINO_ARRAY_INDEX_A, ".", Slave_Ports_Status_A[ARDUINO_ARRAY_INDEX_A].Port_ID};
+    
+    }
+    */