Преглед изворни кода

something wrong with not refreshing display 0x11 forcing test string

a.binder пре 5 година
родитељ
комит
a325610043

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

@@ -59,7 +59,7 @@ void CAN_READ(
                    
                     #endif
                     
-                    if(CAN_MSG8_BIT_2_A == _CAN_REMOTE_ID ) {
+                    if(1==1) { //(CAN_MSG8_BIT_2_A == _CAN_REMOTE_ID ) {
                     
                             if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_Slave_Ports_broadcast____) {
                              #if not defined(DISABLE_ANY_PRINT)
@@ -81,10 +81,44 @@ void CAN_READ(
                                                                        CAN_MSG8_BIT_7_A, //Broadcast_state_TO_REFRESH, //int  Broadcast_state,
                                                                        0 , //int I2C_port,
                                                                        0 ,//int I2C_driver
-                                                                       IS_Local_FALSE 
-                                                                       ,
+                                                                       IS_Local_FALSE , Exp_state_level_INIT,
                                                                        0, 0
                                                                        );
+                                } else if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_request_confirm_Exp_state ) { // if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_Slave_Ports_broadcast____)
+                                   /*CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_confirm_Exp_state_T
+                                       1 _Slave_Ports_Protocol_CAN_A._CAN_REMOTE_ID = _CAN_REMOTE_ID_BROADCAST ; 
+                                       2  = _Slave_Ports_Protocol_CAN_A._CAN_SENDER_ID; // 0xFF;
+                                       3 =_Slave_Ports_Protocol_CAN_A.Port_ID ; //0xFF;
+                                       4 = _Slave_Ports_Protocol_CAN_A.PortTypes ;//0xFF;
+                                       5 = _Slave_Ports_Protocol_CAN_A.Exp_state; // 0xFF;
+                                       6   _Slave_Ports_Protocol_CAN_A.Exp_state_ttl ;// 0xFF;
+                                       7=  _Slave_Ports_Protocol_CAN_A.Exp_state_level_A;// 0xFF;
+                                        8 =  _Slave_Ports_Protocol_CAN_A._CAN_8; // 0xFF;
+                                   */
+                                   
+                                    #if not defined(DISABLE_ANY_PRINT)
+                                      Serial.println("[CAN_MSG8_BIT_8_A]==[request_confirm_Exp_state]->[UPDATE][PORTS]")   ;
+                                      #endif      
+                                       Slave_Ports_Status_add_port(
+                                                                       Slave_Ports_Status_A ,
+                                                                       Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
+                                                                           Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_A,
+                                                                           Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A,
+                                                                           Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_A,
+                                                                       CAN_MSG8_BIT_3_A,  // int  Port_ID,
+                                                                       CANrxId ,  //int  _Slave_ID,
+                                                                       CAN_MSG8_BIT_4_A , //int  PortTypes,
+                                                                       0 ,  //int  Address,
+                                                                       0 , //int  LocalPort,
+                                                                       CAN_MSG8_BIT_5_A , //Exp_state_BLINK, //int  Exp_state,
+                                                                       CAN_MSG8_BIT_6_A, //Exp_state_ttl_TO_REFRESH, //int  Exp_state_ttl,
+                                                                       Broadcast_state_FULL_FRESH, //Broadcast_state_TO_REFRESH, //int  Broadcast_state,
+                                                                       0 , //int I2C_port,
+                                                                       0 ,//int I2C_driver
+                                                                       IS_Local_FALSE ,CAN_MSG8_BIT_7_A,
+                                                                       0, 0
+                                                                       );
+                                
                                 } else if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_request_set_new_Exp_state) { // if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_Slave_Ports_broadcast____)
                                    /*CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_set_new_Exp_state_T
                                        1 _Slave_Ports_Protocol_CAN_A._CAN_REMOTE_ID; // 0xFF;
@@ -108,8 +142,6 @@ void CAN_READ(
                                        Slave_Ports_action_func(Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_A , Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
                                          TASK_TYPE_T_request_set_new_Exp_state , TASK_PORT_ASSOC_A,  time, time, ARDUINO_ARRAY_INDEX_NOT_SET ,  
                                          CAN_MSG8_BIT_5_A , CAN_MSG8_BIT_7_A);
-                                    
-                                
                                 } else {
                                  #if not defined(DISABLE_ANY_PRINT)
                                     Serial.println("81[CAN][RECV][UNKNOWN][CAN_MSG8_BIT_8_A][")   ;

+ 42 - 5
SE/stuff/P5_Automation_can-dev-res-working-1930/_CAN/_Slave_Ports_Protocol_CAN_struct.h

@@ -76,6 +76,25 @@ typedef struct _Slave_Ports_Protocol_CAN_broadcast_S _Slave_Ports_Protocol_CAN_b
 
 
  
+ struct Slave_Ports_Protocol_CAN_request_confirm_Exp_state_S {
+  const _CAN_REMOTE_ID_T  _CAN_REMOTE_ID = _CAN_REMOTE_ID_BROADCAST ; 
+  const _CAN_SENDER_ID_T  _CAN_SENDER_ID = Active_ControllerID_HEX ; //2 sender //Device which orginated port 
+  int  Port_ID ; //3 global id for device //const char * const _Protocol;
+  PortTypes_T  PortTypes;  //4 0xFF  =  1111 1111 s
+  Exp_state_T  Exp_state;    //5
+  int  Exp_state_ttl;  //6
+  Exp_state_level_T  Exp_state_level_A;  //6
+  const int _CAN_8 = 0x02; // TASK_TYPE_T_request_confirm_Exp_state = 0x02 ; // _CAN_8_EMPTY; //0x07 ; //8 - nbot used
+} ;
+
+typedef struct Slave_Ports_Protocol_CAN_request_confirm_Exp_state_S Slave_Ports_Protocol_CAN_request_confirm_Exp_state_T ;
+
+
+
+
+
+
+ 
  struct _Slave_Ports_Protocol_CAN_request_set_new_Exp_state_S {
   _CAN_REMOTE_ID_T  _CAN_REMOTE_ID ;   // 1remote id - use FF for broadcast
   const _CAN_SENDER_ID_T  _CAN_SENDER_ID = Active_ControllerID_HEX ; //2 sender //Device which orginated port 
@@ -191,15 +210,33 @@ void CAN_MSG8_A_ptr(_Slave_Ports_Protocol_CAN_broadcast_T
 
 
 
-void CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_set_new_Exp_state_T(_Slave_Ports_Protocol_CAN_request_set_new_Exp_state_T 
+
+
+
+void CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_confirm_Exp_state_T(Slave_Ports_Protocol_CAN_request_confirm_Exp_state_T 
             &_Slave_Ports_Protocol_CAN_A ,
             byte* CAN_MSG8_A
             ) {
-        //_Slave_Ports_Protocol_CAN_broadcast_AS
         
-            //CAN_MSG8_BIT_1_T
-          
-        //#ifdef DEBUG_CAN
+        
+         CAN_MSG8_A[0] = _Slave_Ports_Protocol_CAN_A._CAN_REMOTE_ID; // 0xFF;
+         CAN_MSG8_A[1] = _Slave_Ports_Protocol_CAN_A._CAN_SENDER_ID; // 0xFF;
+         CAN_MSG8_A[2] =_Slave_Ports_Protocol_CAN_A.Port_ID ; //0xFF;
+          CAN_MSG8_A[3] = _Slave_Ports_Protocol_CAN_A.PortTypes ;//0xFF;
+         CAN_MSG8_A[4] = _Slave_Ports_Protocol_CAN_A.Exp_state; // 0xFF;
+          CAN_MSG8_A[5] =  _Slave_Ports_Protocol_CAN_A.Exp_state_ttl ;// 0xFF;
+         CAN_MSG8_A[6] =  _Slave_Ports_Protocol_CAN_A.Exp_state_level_A;// 0xFF;
+          CAN_MSG8_A[7] =  _Slave_Ports_Protocol_CAN_A._CAN_8; // 0xFF;
+        
+}
+
+
+
+
+void CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_set_new_Exp_state_T(_Slave_Ports_Protocol_CAN_request_set_new_Exp_state_T 
+            &_Slave_Ports_Protocol_CAN_A ,
+            byte* CAN_MSG8_A
+            ) {
          #if not defined(DISABLE_ANY_PRINT)
                 Serial.print("#155 CAN_broadcast_to_data_ptr   [  ");
                    Serial.print(" "); Serial.print("1["); Serial.print(_Slave_Ports_Protocol_CAN_A._CAN_REMOTE_ID); Serial.print("] ");

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

@@ -325,7 +325,8 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_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 
+        time_min_run_T time_min_run_A , 
+        Slave_Ports_Status_T* Slave_Ports_Status_A 
        ) {
         int i;
         int maxX ;
@@ -342,16 +343,6 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
         int next_tab_pos;
        // int tab_pos_size = DISPLAY_char24_TAB_SIZE;
         
-        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_MENU_FLAG)  {
-            minXselector_context = 1 ;
-           // Serial.print(" [minXselector_context] [MENU SEL] ");
-         } else { minXselector_context = 0 ; }
-        
-        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A == 0) maxX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_PX_A ;
-        else maxX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A ;
-        
-        if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A == 0) maxY = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_PX_A ;
-        else maxY = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ;
         
                         // DISPLAY_DEV.setCursor((DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A),
                          //(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A)); //[ARDUINO_ATTR_ARRAY_S_INDEX]
@@ -374,6 +365,31 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
                 
            
                         if(DISPLAY_LATENCY_PASS__POP(time_seq_id_A, time_min_run_A )) {
+                        
+                        
+                        
+                          if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_MENU_FLAG)  {
+                               minXselector_context = 1 ;
+                              // Serial.print(" [minXselector_context] [MENU SEL] ");
+                            } else { minXselector_context = 0 ; }
+                           
+                           if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A == 0) maxX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_PX_A ;
+                           else maxX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A ;
+                           
+                           if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A == 0) maxY = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_PX_A ;
+                           else maxY = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ;
+                         
+                        
+                        
+                        //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_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);
+                         #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] 
                                       
@@ -462,17 +478,21 @@ void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
                                                   //DISPLAY_DEV.print("test 123");
                                                   //DISPLAY_DEV.print("test 123");
                                                   next_tab_pos = 1 ; //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A * 6
-                                                  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) {
-                                                          //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]);
-                                                          }
-                                                  }
                                                   
+                                                  
+                                                  
+                                                             
+                                                            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) {
+                                                                    //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]);
+                                                                    }
+                                                            }
+                                                 
                                                           
                                                 
                                             } 
@@ -655,6 +675,7 @@ void DISPLAY_MENU_SELECTOR(DISPLAY_T* DISPLAY_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].Exp_state_level_A +=5 ; //+;
                                     if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A >254) DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = 254;
                                     TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={0,0,DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A};
+                                    Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A ;
                                     Slave_Ports_action_func(Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_A ,
                                                     Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_request_set_new_Exp_state ,
                                                     TASK_PORT_ASSOC_A,

+ 7 - 4
SE/stuff/P5_Automation_can-dev-res-working-1930/_DISPLAY_struct.h

@@ -134,7 +134,9 @@ struct DISPLAY_MENU_ITEM_S { //elementy menu
      //czy nie jest do usuniecia itp ...
      DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A; //gdzie sie wyswietla
      DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ;//gdzie sie wyswietla
-//     DISPLAY_string_T DISPLAY_string_A;
+     #if defined(USE_DISPLAY_string_T)
+        DISPLAY_string_T DISPLAY_string_A;
+     #endif
      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
@@ -193,7 +195,8 @@ typedef struct DISPLAY_MENU_ITEM_S DISPLAY_MENU_ITEM_T ;
            DISPLAY_MENU_SELECTOR_T DISPLAY_MENU_SELECTOR_A[1] ;
  } ;
  
- 
+  typedef  struct DISPLAY_PHYSICAL_CHAR_S DISPLAY_PHYSICAL_CHAR_T  ;
+
  const DISPLAY_TARGET_T  DISPLAY_TARGET_CONSOLE      = B00000001 ;
  const DISPLAY_TARGET_T  DISPLAY_TARGET_LCD16        = B00000010 ;
  static const DISPLAY_TARGET_T  DISPLAY_TARGET_DISPLAY128   = B00000100 ;
@@ -219,7 +222,7 @@ typedef struct ARDUINO_ARRAY_INDEX_T_TO_DELETE_S   DISPLAY_ARDUINO_ARRAY_INDEX_T
  
 
 static    DISPLAY_T  DISPLAY_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY] = {} ;
- static   DISPLAY_T_ARDUINO_ATTR_ARRAY_T DISPLAY_T_ARDUINO_ATTR_ARRAY_A = { // 
+static    DISPLAY_T_ARDUINO_ATTR_ARRAY_T DISPLAY_T_ARDUINO_ATTR_ARRAY_A = { // 
            ARDUINO_ARRAY_INDEX_CURRENT_INIT ,
              ARDUINO_ARRAY_INDEX_LAST_INIT ,
              ARDUINO_ARRAY_COUNT_T_INIT ,
@@ -243,6 +246,6 @@ 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 =    3 ;
+const DISPLAY_CURSOR_T DISPLAY_char24_TAB_SIZE =    2 ;
     
     

+ 26 - 12
SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_Status_func.h

@@ -17,6 +17,7 @@
                 //int I2C_driver
                 I2C_driver_T I2C_driver, 
                 IS_Local_T IS_Local_A,
+                 Exp_state_level_T Exp_state_level_A ,
                 time_seq_id_T time_seq_id, 
                 time_min_run_T time_min_run 
                 )
@@ -89,6 +90,7 @@
                     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[i].Exp_state_level_A = Exp_state_level_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 , 
@@ -109,7 +111,7 @@
                      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;
-                 
+                     if(Exp_state_level_A != Exp_state_level_DO_NOT_CHANGE) Slave_Ports_Status_A[found_id].Exp_state_level_A = Exp_state_level_A ;
                }
 }
 
@@ -137,17 +139,18 @@
         //tasks
         TASK_TYPE_T TASK_TYPE_A,
         TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A
+        //,DISPLAY_PHYSICAL_CHAR_T* DISPLAY_PHYSICAL_CHAR_AA
   )
    {
                  String   title ;
                  String message ;
-                 title = "Ports: " ;
+                 title = "Ports:" ;
                  title.concat(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
                  
                   
                  title.concat(TAB);
-                 title.concat("Device: 0x") ;
-                title.concat(Active_ControllerID_HEX);          
+                 title.concat("Dev:0x") ;
+                title.concat(String(Active_ControllerID_HEX , HEX));          
                    title.concat(TAB);
                              
                     int i;
@@ -162,7 +165,9 @@
                    
           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 = title ;
+          #if defined(USE_DISPLAY_string_T)
+          DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_string_A = title ;
+          #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());
@@ -212,8 +217,13 @@
                                             message.concat(TAB);
                                         if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON_USE_LEVEL ) {
                                          message.concat("["); 
-                                         message.concat(Slave_Ports_Status_A[i].Exp_state_level_A);
-                                          message.concat("] ");
+                                        // int LVL;
+                                         //LVL = Slave_Ports_Status_A[i].Exp_state_level_A + 10 ;
+                                         message.concat(String(Slave_Ports_Status_A[i].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[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:
@@ -246,7 +256,9 @@
              
                 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 = message ;
+                #if defined(USE_DISPLAY_string_T)
+                DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_string_A = message ;
+                #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  ;
@@ -276,17 +288,19 @@
             
         }
         
-        /*
-          #if defined(HAS_TFT_ILI9163C)
+        
+        /*  #if defined(HAS_TFT_ILI9163C)
            
                DISPLAY__print_menu( DISPLAY_A ,DISPLAY_T_ARDUINO_ATTR_ARRAY_A , DISPLAY_PHYSICAL_CHAR_A, 
                          1,  //DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A
-                         0,0//time_seq_id_A, (time_seq_id_A + 5000) 
+                         time_seq_id_A,time_min_run_A
+                         //0,0
+                         //time_seq_id_A, (time_seq_id_A + 5000) 
                           );
            
               #endif
+           */   
               
-              */
         
    }  
    

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

@@ -16,7 +16,11 @@ const IS_gone_T IS_gone_FALSE = false ;
 #define I2C_port_DEFAULT 0x01
 
 
-typedef byte Exp_state_level_T ;
+typedef int 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;
+
+
 
  struct Slave_Ports_Status_S {
   Port_ID_T  Port_ID ; //global id for device //const char * const _Protocol;
@@ -59,7 +63,7 @@ typedef byte Exp_state_level_T ;
   I2C_driver_T I2C_driver; //0x00 - not driver, 0x01 Adafruit_PWMServoDriver.h
   IS_Local_T IS_Local_A; // Define if port is local or remote added
   IS_gone_T IS_gone_A; // Define port is gone timoiuted
-  Exp_state_level_T Exp_state_level_A ;
+  Exp_state_level_T Exp_state_level_A = Exp_state_level_INIT ;
 } ;
 
 typedef struct Slave_Ports_Status_S Slave_Ports_Status_T;
@@ -81,9 +85,9 @@ typedef struct ARDUINO_ARRAY_ASSOC_TABLE_S         Slave_Ports_Status_T_ARDUINO_
 //);
 
 
-static    Slave_Ports_Status_T  Slave_Ports_Status_A[ARDUINO_ARRAY_INDEX_LIMIT_PORTS] = {};
+ static   Slave_Ports_Status_T  Slave_Ports_Status_A[ARDUINO_ARRAY_INDEX_LIMIT_PORTS] = {};
     
- static   Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T  Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A =  //[ARDUINO_ATTR_ARRAY_S_INDEX] 
+static    Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T  Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A =  //[ARDUINO_ATTR_ARRAY_S_INDEX] 
         {    ARDUINO_ARRAY_INDEX_CURRENT_INIT ,
              ARDUINO_ARRAY_INDEX_LAST_INIT ,
              ARDUINO_ARRAY_COUNT_T_INIT ,

+ 52 - 4
SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_action_func.h

@@ -20,8 +20,10 @@ Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A,
     Exp_state_level_T Exp_state_level_A 
     )  {
     int i;
-    int flag_sent_CAN = 0;
-    int flag_set_LOCAL = 0 ;
+    int flag_sent_CAN ;
+    int flag_set_LOCAL ;
+    flag_sent_CAN = 0;
+    flag_set_LOCAL = 0 ;
     
     if(TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX > 0 ) {
         if(Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Port_ID > 0 ) {
@@ -53,7 +55,12 @@ Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A,
       Serial.println("25[ACTION][ERR]");
     }
     
-    if(flag_sent_CAN > 0 ) {
+    
+    if(flag_sent_CAN > 1 or flag_set_LOCAL > 1 ) {
+      #if not defined(DISABLE_ANY_PRINT)
+        Serial.print(" 61ERR L["); Serial.print(flag_set_LOCAL); Serial.print("]");
+      #endif
+    } else if(flag_sent_CAN > 0  and flag_set_LOCAL == 0) {
         Serial.println("51[ACTION][CAN][todo]");
     
     
@@ -83,6 +90,7 @@ Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A,
                      if(sndStat == CAN_OK){
                      
                       Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Exp_state = Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Exp_state |  Exp_state_SET_REQ_SEND ;
+                     
                      message = "SND CAN REQ "; message.concat(Exp_state_level_A) ; message.concat(" ");
                       DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_A, DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG);
                        DISPLAY__print( DISPLAY_A ,DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,  DISPLAY_PHYSICAL_CHAR_A,  DISPLAY_pos_seq_A_NEXT | DISPLAY_pos_seq_A_IMMEDIATE, //TODO BITTEST
@@ -99,7 +107,47 @@ Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A,
     } else if(flag_set_LOCAL > 0 ) {
         Serial.println("51[ACTION][LOCAL][ADD][TASK_TYPE_T_Slave_Ports_set_I2C______]");
          _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                     TASK_TYPE_T_Slave_Ports_set_I2C______  ,TASK_PORT_ASSOC_A ,time_seq_id, time_min_run  , ARDUINO_ARRAY_INDEX_NOT_SET ) ; 
+                     TASK_TYPE_T_Slave_Ports_set_I2C______  ,TASK_PORT_ASSOC_A ,time_seq_id, time_min_run  , ARDUINO_ARRAY_INDEX_NOT_SET ) ;
+                     
+                     
+                     
+                                 Slave_Ports_Protocol_CAN_request_confirm_Exp_state_T CAN_request_confirm_Exp_state_A={};
+                                    //CAN_request_confirm_Exp_state_A._CAN_REMOTE_ID = Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX]._Slave_ID;
+                                  //  CAN_broadcast_A._CAN_SENDER_ID = Active_ControllerID_HEX ;
+                                    CAN_request_confirm_Exp_state_A.Port_ID = Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Port_ID ;
+                                    CAN_request_confirm_Exp_state_A.PortTypes = Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].PortTypes ; 
+                                    CAN_request_confirm_Exp_state_A.Exp_state = Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Exp_state ;
+                                    CAN_request_confirm_Exp_state_A.Exp_state_ttl = Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Exp_state_ttl ;
+                                    CAN_request_confirm_Exp_state_A.Exp_state_level_A = Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Exp_state_level_A ;
+                                   // CAN_broadcast_A._CAN_8 = TASK_TYPE_T_Slave_Ports_broadcast____ ;
+                                           
+    
+                       byte CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_confirm_Exp_state_A[8];
+                       CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_confirm_Exp_state_T(CAN_request_confirm_Exp_state_A,CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_confirm_Exp_state_A);
+                       CAN_data_debug(CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_confirm_Exp_state_A);
+    
+    
+                    String message ; 
+                    byte sndStat = CAN0.sendMsgBuf(Active_ControllerID_HEX, 0, 8, CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_confirm_Exp_state_A); 
+                    delay(200);
+                     if(sndStat == CAN_OK){
+                     
+                     // Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Exp_state = Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Exp_state |  Exp_state_SET_REQ_SEND ;
+                     
+                     message = "SND2 CAN REQ "; message.concat(Exp_state_level_A) ; message.concat(" ");
+                      DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_A, DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG);
+                       DISPLAY__print( DISPLAY_A ,DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,  DISPLAY_PHYSICAL_CHAR_A,  DISPLAY_pos_seq_A_NEXT | DISPLAY_pos_seq_A_IMMEDIATE, //TODO BITTEST
+                          message, DISPLAY_TARGET_DISPLAY128, time_seq_id , time_min_run, Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_request_set_new_Exp_state  , TASK_PORT_ASSOC_A); 
+                      } else {
+                      message = "ERR2 SND CAN REQ "; message.concat(Exp_state_level_A) ; message.concat(" ");
+                      DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_A, DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG);
+                       DISPLAY__print( DISPLAY_A ,DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,  DISPLAY_PHYSICAL_CHAR_A,  DISPLAY_pos_seq_A_NEXT | DISPLAY_pos_seq_A_IMMEDIATE, //TODO BITTEST
+                          message, DISPLAY_TARGET_DISPLAY128, time_seq_id , time_min_run, Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_request_set_new_Exp_state  , TASK_PORT_ASSOC_A);
+                      }
+                     
+                     
+                     
+                      
     }
            
    

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

@@ -354,7 +354,7 @@ void TASK_TYPE_T_Broadcast_state_LOW(Slave_Ports_Status_T* Slave_Ports_Status_A,
                     if((Slave_Ports_Status_A[i].Broadcast_state - (TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A_INCREMENT_A / 1000) ) < 0 ) //( TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A_INCREMENT_A / 1000 )
                         Slave_Ports_Status_A[i].IS_gone_A = IS_gone_TRUE ;
                      
-                     INT_SAFE_DECREMENT_TO_LIMIT(Broadcast_state_TO_REFRESH,  Slave_Ports_Status_A[i].Broadcast_state,(TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A_INCREMENT_A / 1000)  );
+                   //  INT_SAFE_DECREMENT_TO_LIMIT(Broadcast_state_TO_REFRESH,  Slave_Ports_Status_A[i].Broadcast_state,(TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A_INCREMENT_A / 1000)  );
                     
                     
                 

+ 2 - 2
SE/stuff/P5_Automation_can-dev-res-working-1930/_TASK_TYPES_struct.h

@@ -4,8 +4,8 @@ typedef int TASK_TYPE_T ;
 
 const TASK_TYPE_T TASK_TYPE_T_NOT_USED_________________ = 0x00 ;
 const TASK_TYPE_T TASK_TYPE_T_Slave_Ports_ttl_decrement = 0x01 ;
-const TASK_TYPE_T TASK_TYPE_T_request_confirm_Exp_state = 0x02 ;
-const TASK_TYPE_T TASK_TYPE_T_request_set_new_Exp_state = 0x03 ;
+const TASK_TYPE_T TASK_TYPE_T_request_confirm_Exp_state = 0x02 ; //send to remote to let hin update port status
+const TASK_TYPE_T TASK_TYPE_T_request_set_new_Exp_state = 0x03 ; //send to remote to let him set local port value
 const TASK_TYPE_T TASK_TYPE_T_Slave_Ports_broadcast____ = 0x04 ;
 const TASK_TYPE_T TASK_TYPE_T_Slave_Ports_set_I2C______ = 0x05 ;
 const TASK_TYPE_T TASK_TYPE_T_DISPLAY_queue_pop________ = 0x06 ;

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

@@ -18,7 +18,6 @@ const    DISPLAY_textsize_y_T DISPLAY_textsize_y_A = 10; //8 nominal
 
   //struct DISPLAY_PHYSICAL_CHAR_T {  DISPLAY_PHYSICAL_CHAR_S ; } DISPLAY_PHYSICAL_CHAR_A  ;
   
- typedef  struct DISPLAY_PHYSICAL_CHAR_S DISPLAY_PHYSICAL_CHAR_T  ;
 
 
 /*
@@ -52,7 +51,7 @@ struct DISPLAY_PHYSICAL_CHAR_S {
           }
           */
          //DISPLAY_PHYSICAL_CHAR_T 
-        DISPLAY_PHYSICAL_CHAR_T   DISPLAY_PHYSICAL_CHAR_A =   { 
+  static      DISPLAY_PHYSICAL_CHAR_T   DISPLAY_PHYSICAL_CHAR_A =   { 
                  DISPLAY_PHYSICAL_X_PX_A ,
                  DISPLAY_PHYSICAL_Y_PX_A ,
                  DISPLAY_PHYSICAL_X_CHARS_A,

+ 3 - 5
SE/stuff/P5_Automation_can-dev-res-working-1930/___CONFIG/0x11/config_Slave_Ports_LOCAL_0x11_init.h

@@ -34,7 +34,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 Broadcast_state_TO_REFRESH, //int  Broadcast_state,
                                 I2C_port_DEFAULT, //int I2C_port,
                                 I2C_driver_Adafruit_PWMServoDriver ,//int I2C_driver
-                                IS_Local_TRUE, 
+                                IS_Local_TRUE, Exp_state_level_INIT,
                                 0,0 //time_seq_id, time_min_run  
                                 );
                                 
@@ -55,8 +55,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 Broadcast_state_FULL_FRESH, //Broadcast_state_TO_REFRESH, //int  Broadcast_state,
                                 I2C_port_DEFAULT, //int I2C_port,
                                 I2C_driver_Adafruit_PWMServoDriver ,//int I2C_driver
-                                IS_Local_TRUE 
-                                ,
+                                IS_Local_TRUE, Exp_state_level_INIT,
                                 0,0// time_seq_id, time_min_run
                                 );
                                 
@@ -76,8 +75,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 Broadcast_state_TO_REFRESH, //int  Broadcast_state,
                                 I2C_port_DEFAULT, //int I2C_port,
                                 I2C_driver_Adafruit_PWMServoDriver ,//int I2C_driver
-                                IS_Local_TRUE 
-                                ,
+                                IS_Local_TRUE ,20,
                                 0, 0
                                 );
                                 

+ 3 - 5
SE/stuff/P5_Automation_can-dev-res-working-1930/___CONFIG/0x13/config_Slave_Ports_LOCAL_0x13_init.h

@@ -34,8 +34,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 Broadcast_state_TO_REFRESH, //int  Broadcast_state,
                                 I2C_port_DEFAULT, //int I2C_port,
                                 I2C_driver_Adafruit_PWMServoDriver ,//int I2C_driver
-                                IS_Local_TRUE 
-                                , 
+                                IS_Local_TRUE ,Exp_state_level_INIT, 
                                 time_seq_id, time_min_run 
                                 );
                                 
@@ -56,7 +55,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 Broadcast_state_TO_REFRESH, //int  Broadcast_state,
                                 I2C_port_DEFAULT, //int I2C_port,
                                 I2C_driver_Adafruit_PWMServoDriver ,//int I2C_driver
-                                IS_Local_TRUE, 
+                                IS_Local_TRUE, Exp_state_level_INIT,
                                 time_seq_id, time_min_run 
                                 );
                                 
@@ -76,8 +75,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 Broadcast_state_TO_REFRESH, //int  Broadcast_state,
                                 I2C_port_DEFAULT, //int I2C_port,
                                 I2C_driver_Adafruit_PWMServoDriver ,//int I2C_driver
-                                IS_Local_TRUE 
-                                ,
+                                IS_Local_TRUE ,Exp_state_level_INIT,
                                 time_seq_id, time_min_run
                                 );
                                 

+ 1 - 1
SE/stuff/P5_Automation_can-dev-res-working-1930/___CONFIG/0x14/config_Slave_Ports_LOCAL_0x14_init.h

@@ -33,7 +33,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 Broadcast_state_TO_REFRESH, //int  Broadcast_state,
                                 I2C_port_DEFAULT, //int I2C_port,
                                 I2C_driver_Adafruit_PWMServoDriver ,//int I2C_driver
-                                IS_Local_TRUE 
+                                IS_Local_TRUE, Exp_state_level_INIT,
                                 );
                                 
                            /*     

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

@@ -116,6 +116,7 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END(ARDUINO_LOOP_LATENCY__MAIN_END_A, ARDU
                     ,Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
                     TASK_TYPE_T__EMPTY__JUST_PASSED_ARG__,
                     TASK_PORT_ASSOC_EMPTY
+                    //,DISPLAY_PHYSICAL_CHAR_A
                  );
                  
                  
@@ -123,8 +124,9 @@ 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  );
                     #endif
+                    
               #else 
                 
                 #include "___DEBUG/___DEBUG_DISABLE_LOOP_MAIN_A.h"