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

+ 1 - 0
SE/stuff/P5_Automation_can-dev-res/_CAN/_CAN_func.h

@@ -58,6 +58,7 @@ void CAN_READ(
                          }
                    
                     if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_Slave_Ports_broadcast____) {
+                        Serial.println("[CAN_MSG8_BIT_8_A]==[T_BCAST]->[ADD][PORTS]")   ;      
                                 Slave_Ports_Status_add_port(
                                                                Slave_Ports_Status_A ,
                                                                Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,

+ 6 - 2
SE/stuff/P5_Automation_can-dev-res/_Port_Broadcast_state_struct.h

@@ -1,7 +1,11 @@
 
 typedef int Broadcast_state_T ; 
 
-const Broadcast_state_T  Broadcast_state_TO_REFRESH = 0x01 ;
+const Broadcast_state_T  Broadcast_state_TO_REFRESH = 1; //0x01 ;
 
-const Broadcast_state_T  Broadcast_state_FULL_FRESH = 0xFF ;
+
+const Broadcast_state_T  Broadcast_state_FRESH = 30 ;// 0x30 ;
+
+
+const Broadcast_state_T  Broadcast_state_FULL_FRESH = 254; //0xFF ;
 

+ 4 - 2
SE/stuff/P5_Automation_can-dev-res/_Port_Exp_state_ttl_struct.h

@@ -1,5 +1,7 @@
 
 typedef int Exp_state_ttl_T ; 
 
-const Exp_state_ttl_T  Exp_state_ttl_TO_REFRESH = 0x01 ;
-const Exp_state_ttl_T  Exp_state_ttl_IS_ACTIVE = 0xFF ; //will countdown
+const Exp_state_ttl_T  Exp_state_ttl_TO_REFRESH = 1 ; //0x01 ;
+const Exp_state_ttl_T  Exp_state_ttl_FRESH = 30 ;//0x30 ;
+const Exp_state_ttl_T  Exp_state_ttl_FULL_FRESH = 254 ;
+const Exp_state_ttl_T  Exp_state_ttl_IS_ACTIVE = 200; // 0xFF ; //will countdown

+ 51 - 34
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_I2C_func.h

@@ -17,7 +17,7 @@
         ,TASK_TYPE_T TASK_TYPE_A,
         TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A   , 
         Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A
-    ) {     
+    ) {     //{1
     
     
     #if defined(DISABLE_LOOP) ||  defined(DEBUG) ||  defined(DEBUG_I2C)
@@ -64,41 +64,55 @@
                            
                
     int i;
+    int res;
     for(i=ARDUINO_ARRAY_INDEX_FIRST;i <= (ARDUINO_ARRAY_INDEX_FIRST + Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A) ;i++) {
-      if(Slave_Ports_Status_A[i].PortTypes & PortTypes_I2C) { //BIN TEST
-            if(Slave_Ports_Status_A[i].Exp_state_ttl == Exp_state_ttl_TO_REFRESH ) {
+     #if defined(DEBUG) || defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
+                Serial.print("#69PWC[");  Serial.print(Slave_Ports_Status_A[i].I2C_port);   Serial.print("]TTL[");  Serial.print(Slave_Ports_Status_A[i].Exp_state_ttl);  Serial.println("] "); 
+                    if(Slave_Ports_Status_A[i].Exp_state_ttl > 30) Serial.print(" [>30] ");
+                    if(Slave_Ports_Status_A[i].Exp_state_ttl > Exp_state_ttl_FRESH) Serial.print(" [>FRESH] ");
+                    if(Slave_Ports_Status_A[i].Exp_state_ttl <= Exp_state_ttl_FRESH) Serial.print(" [<=FRESH]  [-30 = ");
+                     res = Slave_Ports_Status_A[i].Exp_state_ttl - 30 ;
+                    Serial.print(res); Serial.print("] ");                
+            #endif
+      if(Slave_Ports_Status_A[i].PortTypes & PortTypes_I2C) { //{2 BIN TEST
+            if(Slave_Ports_Status_A[i].Exp_state_ttl >= Exp_state_ttl_FRESH ) {
+            #if defined(DEBUG) || defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
+                Serial.print("#71PWC[");  Serial.print(Slave_Ports_Status_A[i].I2C_port);   Serial.print("]TTL--[");  Serial.print(Slave_Ports_Status_A[i].Exp_state_ttl);
+            #endif
+            Slave_Ports_Status_A[i].Exp_state_ttl = Slave_Ports_Status_A[i].Exp_state_ttl - 20 ; 
+            } else if(Slave_Ports_Status_A[i].Exp_state_ttl <= Exp_state_ttl_FRESH ) { //{3
              #if defined(DEBUG) || defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
-                if(DEBUG > 4) {
+                if(DEBUG > 4) { //{4
                Serial.print("#311 ttl min i2c for: I2C_port[");  Serial.print(Slave_Ports_Status_A[i].I2C_port);   Serial.print("] ttl[");  Serial.print(Slave_Ports_Status_A[i].Exp_state_ttl);
                  Serial.print(" Port_ID[");  Serial.print(Slave_Ports_Status_A[i].Port_ID);   Serial.println("]  ");   Serial.print(" #[");  Serial.print(i);   Serial.println("]  "); 
-                 }
+                 } //{4
              #endif
                
                     if(Slave_Ports_Status_A[i].I2C_driver == I2C_driver_Adafruit_PWMServoDriver) {
                           //ARDUINO_ARRAY_PRIMARY_KET_T  Adafruit_PWMServoDriver__get_PRIMARY_KET_A = Adafruit_PWMServoDriver__get_PRIMARY_KET_T(
                       
                       //find port status
-                      if(ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_ADD == Adafruit_PWMServoDriver__get_DRIVER_STATUS_T(
-                                Adafruit_PWMServoDriver_A, Adafruit_PWMServoDriver_ATTR_ARRAY_A, Slave_Ports_Status_A[i].Address)) {
-                               #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
-                                 Serial.println("#80 I2C  [ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_ADD]   "); 
-                                 #endif
-                                 ARDUINO_ARRAY_INDEX_DRIVER_STATUS_T Adafruit_PWMServoDriver__add_A = Adafruit_PWMServoDriver__add(Adafruit_PWMServoDriver_A,Adafruit_PWMServoDriver_ATTR_ARRAY_A,Slave_Ports_Status_A[i].Address,  ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A) ;
-                                 
-                              if(ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A == Adafruit_PWMServoDriver__add_A) {
-                               #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
-                                       Serial.println("#83 I2C [ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A]   ");
-                                   #endif    
-                                  //   ARDUINO_ARRAY_PRIMARY_KET_T I2C_INDEX_DRIVER_A =   Adafruit_PWMServoDriver__get_PRIMARY_KET_T(Adafruit_PWMServoDriver_A,Adafruit_PWMServoDriver_ATTR_ARRAY_A,Slave_Ports_Status_A[i].Address);
-                                       
-                                       
-                              } else {
-                                #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
-                                    Serial.print("#83E I2C ADD   else ");  Serial.print(Adafruit_PWMServoDriver__add_A, BIN);  Serial.println(" ] ");
-                                #endif
-                              }
-                                 
-                        }
+                                if(ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_ADD == Adafruit_PWMServoDriver__get_DRIVER_STATUS_T(
+                                          Adafruit_PWMServoDriver_A, Adafruit_PWMServoDriver_ATTR_ARRAY_A, Slave_Ports_Status_A[i].Address)) {
+                                         #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
+                                           Serial.println("#80 I2C  [ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_ADD]   "); 
+                                           #endif
+                                           ARDUINO_ARRAY_INDEX_DRIVER_STATUS_T Adafruit_PWMServoDriver__add_A = Adafruit_PWMServoDriver__add(Adafruit_PWMServoDriver_A,Adafruit_PWMServoDriver_ATTR_ARRAY_A,Slave_Ports_Status_A[i].Address,  ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A) ;
+                                           
+                                                 if(ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A == Adafruit_PWMServoDriver__add_A) {
+                                                  #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
+                                                          Serial.println("#83 I2C [ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A]   ");
+                                                      #endif    
+                                                     //   ARDUINO_ARRAY_PRIMARY_KET_T I2C_INDEX_DRIVER_A =   Adafruit_PWMServoDriver__get_PRIMARY_KET_T(Adafruit_PWMServoDriver_A,Adafruit_PWMServoDriver_ATTR_ARRAY_A,Slave_Ports_Status_A[i].Address);
+                                                          
+                                                          
+                                                 } else {
+                                                   #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
+                                                       Serial.print("#83E I2C ADD   else ");  Serial.print(Adafruit_PWMServoDriver__add_A, BIN);  Serial.println(" ] ");
+                                                   #endif
+                                                 }
+                                           
+                                    }
                       
                       
                       
@@ -274,18 +288,21 @@
                     }
                 
                
-            }  else {
-                    #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive) 
-                    Serial.print("    #249  #i["); Serial.print(i); Serial.println("]     ");
-                    #endif
+                }  else {
+                        #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive) 
+                        Serial.print("    #249  #i["); Serial.print(i); Serial.println("]     ");
+                        #endif
                 }
         
       } else {
+      
+      
          #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDrive)
-            Serial.print("    #242  #i["); Serial.print(i); Serial.println("]     ");
+            Serial.print("#242  #i["); Serial.print(i); Serial.println("]     ");
+            Serial.print("Exp_state_ttl"); Serial.print(Slave_Ports_Status_A[i].Exp_state_ttl);Serial.print("] ");
          #endif
-       }
-    } 
+       }//if 3
+    } //for 2
 
- } 
+ } //func 1
 //#endif

+ 1 - 1
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_func.h

@@ -247,7 +247,7 @@
                     
                     
                     
-                    if(Slave_Ports_Status_A[i].Broadcast_state & Broadcast_state_TO_REFRESH ) {
+                    if(Slave_Ports_Status_A[i].Broadcast_state > Broadcast_state_FRESH ) {
                          //message2.concat(" R ");// B:
                          message2.concat("B");
                     } else {

+ 293 - 302
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_broadcast_func.h

@@ -32,315 +32,306 @@
         #endif 
           int i;
           for(i=ARDUINO_ARRAY_INDEX_FIRST;i<= ARDUINO_ARRAY_INDEX_LIMIT_PORTS ;i++) { //Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
-            if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) { //Slave_Ports_Status_A[i].Broadcast_state == Broadcast_state_TO_REFRESH and 
-            #if defined(DEBUG) || defined(DEBUG_CAN) ||  defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
-                //if(DEBUG > 4) {
-                    Serial.print(" ind:"); Serial.print(i);  Serial.print("] IS_Local_A:");
-                    Serial.print(Slave_Ports_Status_A[i].IS_Local_A);
-                    Serial.print(" , ID:"); 
-                    Serial.print(Slave_Ports_Status_A[i].Port_ID, HEX); Serial.print(" , PortTypes:");
-                    Serial.print(Slave_Ports_Status_A[i].PortTypes, HEX); Serial.print(" , Addr:"); Serial.print(Slave_Ports_Status_A[i].Address, HEX);
-                    Serial.print(" , Local:"); Serial.print(Slave_Ports_Status_A[i].LocalPort);
-                    Serial.print(" , Exp state:"); Serial.print(Slave_Ports_Status_A[i].Exp_state);
-                    Serial.print(" , Exp_state_ttl"); Serial.println(Slave_Ports_Status_A[i].Exp_state_ttl);  
-                    //Serial.print("#2111 *_TEST_GLOBAL["); Serial.print(*_TEST_GLOBAL); Serial.println("] ");
-                   // Serial.print(" #2111B &_TEST_GLOBAL"); Serial.print(_TEST_GLOBAL); Serial.println("] ");
-               //    }
-            #endif
-             
-             
-             
-                 
-                            
-                           #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
-                             #else
-                             #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                             
-                                         String message = "1CAN BCAST "; message.concat(i); message.concat(".");  message.concat( Slave_Ports_Status_A[i].Port_ID );  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_array16_I( "#53 BCAST  " + char( Slave_Ports_Status_A[i].Port_ID  ) , 2), //message,
-                                                           DISPLAY_TARGET_DISPLAY128,
-                                                          time , // time_seq_id_T time_seq_id_A;
-                                                          time+ARDUINO_time_seq_id_A_INCREMENT, //time_min_run_T time_min_run_A;
-                                                         //queue
-                                                        Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                                        TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
-                                                        { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
-                                                        
-                                                        ); 
-                                #else
-                                  String message = "1CAN BCAST "; message.concat(i); message.concat(".");  message.concat( Slave_Ports_Status_A[i].Port_ID );  message.concat(" >>>                        "); 
-                                       DISPLAY_array16_T  DISPLAY_array16_AA="" ;
-                                           message.toCharArray(DISPLAY_array16_AA, 16);
-                                
-                                     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
-                                               DISPLAY_array16_AA , // DISPLAY_array16_I( "#53 BCAST  " + char( Slave_Ports_Status_A[i].Port_ID  ) , 2), //message,
-                                               DISPLAY_TARGET_DISPLAY128,
-                                              time , // time_seq_id_T time_seq_id_A;
-                                              time+ARDUINO_time_seq_id_A_INCREMENT, //time_min_run_T time_min_run_A;
-                                             //queue
-                                            Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                            TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
-                                            { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
-                                            
-                                            ); 
-                             #endif      
-                              
-                                 
-                             #endif
-                  
-                  #if defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
-                     Serial.println("#66A Prepared data");
-                  #endif
+            if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) {  
+            
+            
+            if(Slave_Ports_Status_A[i].Broadcast_state <= Broadcast_state_FRESH) {
                     
-                  #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
-                             #else
-                             DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_A, 
-                                             DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG);
-                     #endif
-                       DISPLAY_array16_T  DISPLAY_array16_AAA="" ;
-                       //( "OUT I2C 0X40[2]" + encoderPos * 5 , 2), //message,          
-                                  _Slave_Ports_Protocol_CAN_broadcast_T CAN_broadcast_A={};
-                                       // CAN_broadcast_A._CAN_REMOTE_ID = _CAN_REMOTE_ID_BROADCAST ;
-                                      //  CAN_broadcast_A._CAN_SENDER_ID = Active_ControllerID_HEX ;
-                                        CAN_broadcast_A.Port_ID = Slave_Ports_Status_A[i].Port_ID ;
-                                        CAN_broadcast_A.PortTypes = Slave_Ports_Status_A[i].PortTypes ; 
-                                        CAN_broadcast_A.Exp_state = Slave_Ports_Status_A[i].Exp_state ;  
-                                        CAN_broadcast_A.Exp_state_ttl = Slave_Ports_Status_A[i].Exp_state_ttl ;
-                                        CAN_broadcast_A.Broadcast_state = Slave_Ports_Status_A[i].Broadcast_state ;
-                                       // CAN_broadcast_A._CAN_8 = TASK_TYPE_T_Slave_Ports_broadcast____ ;
-                           
-                             // CAN_broadcast_A._CAN_8 = _CAN_8_EMPTY ;
-                             
-                  /* byte CAN_broadcast_A[8] = {_CAN_REMOTE_ID_BROADCAST, 
-                                                Active_ControllerID_HEX, 
-                                                Slave_Ports_Status_A[i].Port_ID, 
-                                                Slave_Ports_Status_A[i].PortTypes, 
-                                                Slave_Ports_Status_A[i].Exp_state , 
-                                                Slave_Ports_Status_A[i].Exp_state_ttl,
-                                                Slave_Ports_Status_A[i].Broadcast_state,
-                                                TASK_TYPE_T_Slave_Ports_broadcast____ };
-                */
-                  
-                    #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
-                             #else
-                             
-                              #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                                    message = "2CAN BCAST "; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>");
-                                        DISPLAY__print(
-                                        DISPLAY_A ,
-                                        DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                                        DISPLAY_PHYSICAL_CHAR_A, 
-                                         DISPLAY_pos_seq_A_NEXT | DISPLAY_pos_seq_A_IMMEDIATE,
-                                          message,
-                                          DISPLAY_TARGET_DISPLAY128,
-                                         time , // time_seq_id_T time_seq_id_A;
-                                         time+5000, //time_min_run_T time_min_run_A;
-                                        //queue
-                                       Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
-                                       TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
-                                       {  } //TASK_PORT_ASSOC_A Slave_Ports_Status_A[i].Port_ID
-                                       
-                                       ); 
-                              #else
-                                message = "2CAN BCAST "; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>                        "); 
-              
-                                     message.toCharArray(DISPLAY_array16_AAA, 16);
-                          DISPLAY__print(
-                               DISPLAY_A ,
-                               DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-                               DISPLAY_PHYSICAL_CHAR_A, 
-                                DISPLAY_pos_seq_A_NEXT | DISPLAY_pos_seq_A_IMMEDIATE,
-                                 DISPLAY_array16_AAA,
-                                 DISPLAY_TARGET_DISPLAY128,
-                                time , // time_seq_id_T time_seq_id_A;
-                                time+5000, //time_min_run_T time_min_run_A;
-                               //queue
-                              Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
-                              TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
-                              {  } //TASK_PORT_ASSOC_A Slave_Ports_Status_A[i].Port_ID
-                              
-                              ); 
-                              #endif
-                             
-                           
-                        #endif
-                
-                
-                
-                
-                
-                
-                
-             //    byte sndStat = CAN0.sendMsgBuf(Slave_Ports_Status_A[i].Port_ID, 0, 8, data);
-                 //byte CAN_broadcast_A8[8];
-                  
-                                     
-                byte CAN_MSG8_A[8];
-               CAN_MSG8_A_ptr(CAN_broadcast_A,CAN_MSG8_A);
-                
-                 // #if defined(DEBUG_CAN) || defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
-                   Serial.println("#139 deb CAN_MSG8_A_ptr");    
-                //  #endif
-                 
+                    
+                    #if defined(DEBUG) || defined(DEBUG_CAN) ||  defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
+                        //if(DEBUG > 4) {
+                            Serial.print(" ind:"); Serial.print(i);  Serial.print("] IS_Local_A:");
+                            Serial.print(Slave_Ports_Status_A[i].IS_Local_A);
+                            Serial.print(" , ID:"); 
+                            Serial.print(Slave_Ports_Status_A[i].Port_ID, HEX); Serial.print(" , PortTypes:");
+                            Serial.print(Slave_Ports_Status_A[i].PortTypes, HEX); Serial.print(" , Addr:"); Serial.print(Slave_Ports_Status_A[i].Address, HEX);
+                            Serial.print(" , Local:"); Serial.print(Slave_Ports_Status_A[i].LocalPort);
+                            Serial.print(" , Exp state:"); Serial.print(Slave_Ports_Status_A[i].Exp_state);
+                            Serial.print(" , Exp_state_ttl"); Serial.println(Slave_Ports_Status_A[i].Exp_state_ttl);  
+                            //Serial.print("#2111 *_TEST_GLOBAL["); Serial.print(*_TEST_GLOBAL); Serial.println("] ");
+                           // Serial.print(" #2111B &_TEST_GLOBAL"); Serial.print(_TEST_GLOBAL); Serial.println("] ");
+                       //    }
+                    #endif
                      
-                                         //Serial.println("#135 deb CAN_broadcast_A9");
-                                        // {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}
-                                      //   byte CAN_broadcast_A9[8] = {0xFF, 0x101, 0x02, 0x03, 0x04, 0x05, 0x07,  0x08};
-               //  CAN_data_debug(CAN_broadcast_A9);
-                 byte sndStat = CAN0.sendMsgBuf(Active_ControllerID, 0, 8, CAN_MSG8_A);  CAN_data_debug(CAN_MSG8_A);   //CAN_MSG8_A
-                 delay(200);
-              //    byte sndStat ;
-                          if(sndStat == CAN_OK){
-                          #if defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
-                            Serial.println("#921 Message Sent Successfully!");
-                          #endif   
-                             //String LCDarray1 = "Message Sent";
-                             //String LCDarray2 = "Successfully";
-                             
-                             
-                                 #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
-                                          #else
-                                                         #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                                                         message = "3CAN SEND " ; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  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, //message,
-                                                                                  DISPLAY_TARGET_DISPLAY128,
-                                                                                 time , // time_seq_id_T time_seq_id_A;
-                                                                                 time + 5000, //time_min_run_T time_min_run_A;
-                                                                                //queue
-                                                                               Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                                                               TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
-                                                                               { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
-                                                                               ); 
-                                                         #else
-                                                              DISPLAY_array16_T  DISPLAY_array16_AAAA="" ;
-                                                              message = "3CAN SEND " ; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>                        "); 
+                     
+                     
+                         
                                     
-                                                                 message.toCharArray(DISPLAY_array16_AAAA, 16);
-                                                               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
-                                                                                  DISPLAY_array16_AAAA, //message,
-                                                                                  DISPLAY_TARGET_DISPLAY128,
-                                                                                 time , // time_seq_id_T time_seq_id_A;
-                                                                                 time + 5000, //time_min_run_T time_min_run_A;
-                                                                                //queue
-                                                                               Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                                                               TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
-                                                                               { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
-                                                                               ); 
-                                                         #endif
+                                   #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
+                                     #else
+                                     #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
+                                     
+                                                 String message = "1CAN BCAST "; message.concat(i); message.concat(".");  message.concat( Slave_Ports_Status_A[i].Port_ID );  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_array16_I( "#53 BCAST  " + char( Slave_Ports_Status_A[i].Port_ID  ) , 2), //message,
+                                                                   DISPLAY_TARGET_DISPLAY128,
+                                                                  time , // time_seq_id_T time_seq_id_A;
+                                                                  time+ARDUINO_time_seq_id_A_INCREMENT, //time_min_run_T time_min_run_A;
+                                                                 //queue
+                                                                Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
+                                                                TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
+                                                                { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
+                                                                
+                                                                ); 
+                                        #else
+                                          String message = "1CAN BCAST "; message.concat(i); message.concat(".");  message.concat( Slave_Ports_Status_A[i].Port_ID );  message.concat(" >>>                        "); 
+                                               DISPLAY_array16_T  DISPLAY_array16_AA="" ;
+                                                   message.toCharArray(DISPLAY_array16_AA, 16);
+                                        
+                                             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
+                                                       DISPLAY_array16_AA , // DISPLAY_array16_I( "#53 BCAST  " + char( Slave_Ports_Status_A[i].Port_ID  ) , 2), //message,
+                                                       DISPLAY_TARGET_DISPLAY128,
+                                                      time , // time_seq_id_T time_seq_id_A;
+                                                      time+ARDUINO_time_seq_id_A_INCREMENT, //time_min_run_T time_min_run_A;
+                                                     //queue
+                                                    Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
+                                                    TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
+                                                    { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
+                                                    
+                                                    ); 
+                                     #endif      
                                       
-                                             #endif 
-                                     #ifdef DEBUG_CAN || defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
-                                        Serial.print("#155 after CAN_SEND update  [Broadcast_state_FULL_FRESH]   for i[");
-                                        Serial.print(i);  Serial.println("] "); 
-                                        Serial.print("#154   before   Exp_state_ttl[");
-                                        //Serial.print(BIN8_to_STRING(Slave_Ports_Status_A[i].Exp_state_ttl)); Serial.print("]  Broadcast_state[");
-                                        //Serial.print(BIN8_to_STRING(Slave_Ports_Status_A[i].Broadcast_state)); Serial.println("] ");
-                                      #endif          
-                      
-                             //   Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl_IS_ACTIVE ;
-                                    Slave_Ports_Status_A[i].Broadcast_state =  Broadcast_state_FULL_FRESH ; 
-                                         #if  defined(DEBUG_CAN) || defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
-                                          Serial.print("#164   after    Exp_state_ttl[");
-                                            //Serial.print(BIN8_to_STRING(Slave_Ports_Status_A[i].Exp_state_ttl)); Serial.print("]  Broadcast_state[");
-                                            //Serial.print(BIN8_to_STRING(Slave_Ports_Status_A[i].Broadcast_state)); Serial.println("] ");
                                          
-                                         #endif
-                                       
-                                              
-                                              
-                          } else {
+                                     #endif
+                          
                           #if defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
-                            Serial.print("Error Sending Message...  [");    Serial.print(sndStat);  Serial.println("]   ");
-                            #endif  
-                             #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
-                                          #else
-                                           #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
-                                            message =     "4CAN ERR " ; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>");
-                                            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_array16_I( "#107MSG ERROR " + char( Slave_Ports_Status_A[i].Port_ID  ) , 2), //message,
-                                                                       DISPLAY_TARGET_DISPLAY128,
-                                                                      time , // time_seq_id_T time_seq_id_A;
-                                                                      time +5000, //time_min_run_T time_min_run_A;
-                                                                     //queue
-                                                                    Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                                                    TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
-                                                                    { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
-                                                                    ); 
-                                           #else
-                                                      DISPLAY_array16_T  DISPLAY_array16_AAAAA="" ;
-                                                  message =     "4CAN ERR " ; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>                        "); 
-                                                  message.toCharArray(DISPLAY_array16_AAAAA, 16);
-                                                 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
-                                                                      DISPLAY_array16_AAAAA,//DISPLAY_array16_I( "#107MSG ERROR " + char( Slave_Ports_Status_A[i].Port_ID  ) , 2), //message,
-                                                                      DISPLAY_TARGET_DISPLAY128,
-                                                                     time , // time_seq_id_T time_seq_id_A;
-                                                                     time +5000, //time_min_run_T time_min_run_A;
-                                                                    //queue
-                                                                   Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
-                                                                   TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
-                                                                   { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
-                                                                   ); 
-                                           #endif
-                                       
-                            #endif
-                            //String LCDarray1 = "Error Sending";
-                            //String LCDarray2 = "Message...";
-                          }
-
-                            #if defined(HAS_LCD1602)
-                                  //  LCD_print(LCDarray1,LCDarray2,LCDtim);
-                                  /*
-                                   delay(LCDtim * 5);  
-                                    //lcd.setCursor(0,1); 
-                                    lcd.print(lcdPattern);
-                                    //lcd.print(lcdPos % 10);
-                                  if(lcdPos >= 16) { 
-                                    //lcd.print("N");
-                                    lcd.setCursor(0,1); 
-                                    lcdPos = 0;
-                                    if(lcdPattern=="s") lcdPattern = "S" ;
-                                    else lcdPattern = "s" ;
+                             Serial.println("#66A Prepared data");
+                          #endif
+                            
+                          #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
+                                     #else
+                                     DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_A, 
+                                                     DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG);
+                             #endif
+                               DISPLAY_array16_T  DISPLAY_array16_AAA="" ;
+                               //( "OUT I2C 0X40[2]" + encoderPos * 5 , 2), //message,          
+                                          _Slave_Ports_Protocol_CAN_broadcast_T CAN_broadcast_A={};
+                                               // CAN_broadcast_A._CAN_REMOTE_ID = _CAN_REMOTE_ID_BROADCAST ;
+                                              //  CAN_broadcast_A._CAN_SENDER_ID = Active_ControllerID_HEX ;
+                                                CAN_broadcast_A.Port_ID = Slave_Ports_Status_A[i].Port_ID ;
+                                                CAN_broadcast_A.PortTypes = Slave_Ports_Status_A[i].PortTypes ; 
+                                                CAN_broadcast_A.Exp_state = Slave_Ports_Status_A[i].Exp_state ;  
+                                                CAN_broadcast_A.Exp_state_ttl = Slave_Ports_Status_A[i].Exp_state_ttl ;
+                                                CAN_broadcast_A.Broadcast_state = Slave_Ports_Status_A[i].Broadcast_state ;
+                                               // CAN_broadcast_A._CAN_8 = TASK_TYPE_T_Slave_Ports_broadcast____ ;
+                                   
+                                     // CAN_broadcast_A._CAN_8 = _CAN_8_EMPTY ;
+                                     
+                          /* byte CAN_broadcast_A[8] = {_CAN_REMOTE_ID_BROADCAST, 
+                                                        Active_ControllerID_HEX, 
+                                                        Slave_Ports_Status_A[i].Port_ID, 
+                                                        Slave_Ports_Status_A[i].PortTypes, 
+                                                        Slave_Ports_Status_A[i].Exp_state , 
+                                                        Slave_Ports_Status_A[i].Exp_state_ttl,
+                                                        Slave_Ports_Status_A[i].Broadcast_state,
+                                                        TASK_TYPE_T_Slave_Ports_broadcast____ };
+                        */
+                          
+                            #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
+                                     #else
+                                     
+                                      #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
+                                            message = "2CAN BCAST "; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>");
+                                                DISPLAY__print(
+                                                DISPLAY_A ,
+                                                DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
+                                                DISPLAY_PHYSICAL_CHAR_A, 
+                                                 DISPLAY_pos_seq_A_NEXT | DISPLAY_pos_seq_A_IMMEDIATE,
+                                                  message,
+                                                  DISPLAY_TARGET_DISPLAY128,
+                                                 time , // time_seq_id_T time_seq_id_A;
+                                                 time+5000, //time_min_run_T time_min_run_A;
+                                                //queue
+                                               Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
+                                               TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
+                                               {  } //TASK_PORT_ASSOC_A Slave_Ports_Status_A[i].Port_ID
+                                               
+                                               ); 
+                                      #else
+                                        message = "2CAN BCAST "; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>                        "); 
+                      
+                                             message.toCharArray(DISPLAY_array16_AAA, 16);
+                                  DISPLAY__print(
+                                       DISPLAY_A ,
+                                       DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
+                                       DISPLAY_PHYSICAL_CHAR_A, 
+                                        DISPLAY_pos_seq_A_NEXT | DISPLAY_pos_seq_A_IMMEDIATE,
+                                         DISPLAY_array16_AAA,
+                                         DISPLAY_TARGET_DISPLAY128,
+                                        time , // time_seq_id_T time_seq_id_A;
+                                        time+5000, //time_min_run_T time_min_run_A;
+                                       //queue
+                                      Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
+                                      TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
+                                      {  } //TASK_PORT_ASSOC_A Slave_Ports_Status_A[i].Port_ID
+                                      
+                                      ); 
+                                      #endif
+                                     
+                                   
+                                #endif
+                        
+                        
+                        
+                        
+                        
+                        
+                        
+                     //    byte sndStat = CAN0.sendMsgBuf(Slave_Ports_Status_A[i].Port_ID, 0, 8, data);
+                         //byte CAN_broadcast_A8[8];
+                          
+                                             
+                        byte CAN_MSG8_A[8];
+                       CAN_MSG8_A_ptr(CAN_broadcast_A,CAN_MSG8_A);
+                        
+                         // #if defined(DEBUG_CAN) || defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
+                           Serial.println("#139 deb CAN_MSG8_A_ptr");    
+                        //  #endif
+                         
+                             
+                                                 //Serial.println("#135 deb CAN_broadcast_A9");
+                                                // {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}
+                                              //   byte CAN_broadcast_A9[8] = {0xFF, 0x101, 0x02, 0x03, 0x04, 0x05, 0x07,  0x08};
+                       //  CAN_data_debug(CAN_broadcast_A9);
+                         byte sndStat = CAN0.sendMsgBuf(Active_ControllerID, 0, 8, CAN_MSG8_A);  CAN_data_debug(CAN_MSG8_A);   //CAN_MSG8_A
+                         delay(200);
+                      //    byte sndStat ;
+                                  if(sndStat == CAN_OK){
+                                  #if defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
+                                    Serial.println("#921 Message Sent Successfully!");
+                                  #endif   
+                                     //String LCDarray1 = "Message Sent";
+                                     //String LCDarray2 = "Successfully";
+                                     
+                                     
+                                         #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
+                                                  #else
+                                                                 #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
+                                                                 message = "3CAN SEND " ; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  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, //message,
+                                                                                          DISPLAY_TARGET_DISPLAY128,
+                                                                                         time , // time_seq_id_T time_seq_id_A;
+                                                                                         time + 5000, //time_min_run_T time_min_run_A;
+                                                                                        //queue
+                                                                                       Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
+                                                                                       TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
+                                                                                       { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
+                                                                                       ); 
+                                                                 #else
+                                                                      DISPLAY_array16_T  DISPLAY_array16_AAAA="" ;
+                                                                      message = "3CAN SEND " ; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>                        "); 
+                                            
+                                                                         message.toCharArray(DISPLAY_array16_AAAA, 16);
+                                                                       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
+                                                                                          DISPLAY_array16_AAAA, //message,
+                                                                                          DISPLAY_TARGET_DISPLAY128,
+                                                                                         time , // time_seq_id_T time_seq_id_A;
+                                                                                         time + 5000, //time_min_run_T time_min_run_A;
+                                                                                        //queue
+                                                                                       Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
+                                                                                       TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
+                                                                                       { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
+                                                                                       ); 
+                                                                 #endif
+                                              
+                                                     #endif 
+                                             #ifdef DEBUG_CAN || defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
+                                                Serial.print("#155 after CAN_SEND update  [Broadcast_state_FULL_FRESH]   for i[");
+                                                Serial.print(i);  Serial.println("] "); 
+                                                Serial.print("#154   before   Exp_state_ttl[");
+                                                //Serial.print(BIN8_to_STRING(Slave_Ports_Status_A[i].Exp_state_ttl)); Serial.print("]  Broadcast_state[");
+                                                //Serial.print(BIN8_to_STRING(Slave_Ports_Status_A[i].Broadcast_state)); Serial.println("] ");
+                                              #endif          
+                              
+                                     //   Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl_IS_ACTIVE ;
+                                            Slave_Ports_Status_A[i].Broadcast_state =  Broadcast_state_FULL_FRESH ; 
+                                                 #if  defined(DEBUG_CAN) || defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
+                                                  Serial.print("#164   after    Exp_state_ttl[");
+                                                    //Serial.print(BIN8_to_STRING(Slave_Ports_Status_A[i].Exp_state_ttl)); Serial.print("]  Broadcast_state[");
+                                                    //Serial.print(BIN8_to_STRING(Slave_Ports_Status_A[i].Broadcast_state)); Serial.println("] ");
+                                                 
+                                                 #endif
+                                               
+                                                      
+                                                      
+                                  } else {
+                                  #if defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
+                                    Serial.print("Error Sending Message...  [");    Serial.print(sndStat);  Serial.println("]   ");
+                                    #endif  
+                                     #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
+                                                  #else
+                                                   #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
+                                                    message =     "4CAN ERR " ; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>");
+                                                    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_array16_I( "#107MSG ERROR " + char( Slave_Ports_Status_A[i].Port_ID  ) , 2), //message,
+                                                                               DISPLAY_TARGET_DISPLAY128,
+                                                                              time , // time_seq_id_T time_seq_id_A;
+                                                                              time +5000, //time_min_run_T time_min_run_A;
+                                                                             //queue
+                                                                            Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
+                                                                            TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
+                                                                            { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
+                                                                            ); 
+                                                   #else
+                                                              DISPLAY_array16_T  DISPLAY_array16_AAAAA="" ;
+                                                          message =     "4CAN ERR " ; message.concat(i); message.concat(".");  message.concat(Slave_Ports_Status_A[i].Port_ID);  message.concat(" >>>                        "); 
+                                                          message.toCharArray(DISPLAY_array16_AAAAA, 16);
+                                                         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
+                                                                              DISPLAY_array16_AAAAA,//DISPLAY_array16_I( "#107MSG ERROR " + char( Slave_Ports_Status_A[i].Port_ID  ) , 2), //message,
+                                                                              DISPLAY_TARGET_DISPLAY128,
+                                                                             time , // time_seq_id_T time_seq_id_A;
+                                                                             time +5000, //time_min_run_T time_min_run_A;
+                                                                            //queue
+                                                                           Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
+                                                                           TASK_TYPE_T_Slave_Ports_broadcast____  ,  //TASK_TYPE_A,
+                                                                           { Slave_Ports_Status_A[i].Port_ID } //TASK_PORT_ASSOC_A
+                                                                           ); 
+                                                   #endif
+                                               
+                                    #endif
+                                    //String LCDarray1 = "Error Sending";
+                                    //String LCDarray2 = "Message...";
                                   }
-                                    lcdPos ++;
-                                    |*/
-                                 #endif
-                                //  #if defined(HAS_TFT_ILI9163C)
-                                //    delay(LCDtim);  
-                                //    DISPLAY_DEV.setCursor(0,60); 
-                               //     DISPLAY_DEV.print(LCDarray1); DISPLAY_DEV.print(" "); DISPLAY_DEV.print(LCDarray2);
-                               //   #endif
-
-                                  //    delay(5000);   // send data per 100ms
+        
+                                    
+                        } else if(Slave_Ports_Status_A[i].Broadcast_state > Broadcast_state_TO_REFRESH)  { //if Bcast to refresh
+                                 
+                                Serial.print("#238[BCAST]--"); 
+                                
+                                Slave_Ports_Status_A[i].Broadcast_state =  Slave_Ports_Status_A[i].Broadcast_state - 30 ;
+                        
+                        }
+                        
+                               
                 } else {
                  #if defined(DEBUG) //|| defined(DEBUG_CAN) || defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
                 //if(DEBUG > 4) {

+ 2 - 2
SE/stuff/P5_Automation_can-dev-res/___CONFIG/0x101/config_Slave_Ports_LOCAL_0x101_init.h

@@ -49,8 +49,8 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 0x40 ,  //int  Address,
                                 2 , //int  LocalPort,
                                 Exp_state_OFF, //int  Exp_state,
-                                Exp_state_ttl_TO_REFRESH, //int  Exp_state_ttl,
-                                Broadcast_state_TO_REFRESH, //int  Broadcast_state,
+                                Broadcast_state_FULL_FRESH , //Exp_state_ttl_TO_REFRESH, //int  Exp_state_ttl,
+                                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 

+ 4 - 1
SE/stuff/P5_Automation_can-dev-res/___loop/___loop_init.h

@@ -18,4 +18,7 @@ register ARDUINO_FUNCT_INIT_RESULT_T ARDUINO_LOOP_INITIALIZED_A = 0;
 
 
 
-static ARDUINO_ARRAY_time_min_run_MIN_T TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A = 30000 ;
+static ARDUINO_ARRAY_time_min_run_MIN_T TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A = 30000 ;
+
+static ARDUINO_ARRAY_time_min_run_MIN_T TASK_TYPE_T_Slave_Ports_set_I2C______time_min_run_MIN_A = 20000 ;
+

+ 15 - 3
SE/stuff/P5_Automation_can-dev-res/___loop/__main_loop_top.h

@@ -89,14 +89,26 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN(ARDUINO_LOOP_LATENCY__MAIN_A) <= ARDUINO_L
             #endif
             
             if(time > TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A) {
-                    Serial.print("[ #777 time > TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A][");Serial.print(TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A);Serial.print(print_SEP_RT);
-                    Serial.print("time[");Serial.print(time);Serial.print(print_SEP_RT); 
-                TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A = time + 60000 ;
+                    #if defined(DEBUG)
+                        Serial.print("[ #777 time > TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A][");Serial.print(TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A);Serial.print(print_SEP_RT);
+                        Serial.print("time[");Serial.print(time);Serial.print(print_SEP_RT);
+                    #endif 
+                TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A = time + 30000 ;
                     ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add = _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
                      TASK_TYPE_T_Slave_Ports_broadcast____ ,TASK_PORT_ASSOC_EMPTY ,time, time  , ARDUINO_ARRAY_INDEX_NOT_SET ) ;  //        "_Slave_Ports_broadcast", //4
             
             }
             
+            if(time > TASK_TYPE_T_Slave_Ports_set_I2C______time_min_run_MIN_A) {
+                #if defined(DEBUG)
+                        Serial.print(" [ #104 time > TASK_TYPE_T_Slave_Ports_set_I2C______time_min_run_MIN_A][");Serial.print(TASK_TYPE_T_Slave_Ports_set_I2C______time_min_run_MIN_A);Serial.print(print_SEP_RT);
+                        Serial.print("time[");Serial.print(time);Serial.print(print_SEP_RT);
+                    #endif 
+                TASK_TYPE_T_Slave_Ports_set_I2C______time_min_run_MIN_A = time + 20000 ;
+                ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add = _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_EMPTY ,time, time  , ARDUINO_ARRAY_INDEX_NOT_SET ) ;  //        "_Slave_Ports_broadcast", //4
+            }
+            
 
 
 }