a.binder %!s(int64=5) %!d(string=hai) anos
pai
achega
7d29383000

+ 2 - 2
SE/stuff/P5_Automation_can-dev-res/_DISPLAY_add_record_func.h

@@ -89,10 +89,10 @@
                 #endif*/
                /* DISPLAY_A[i]._queue_id  = 0; //current queue task
                 DISPLAY_A[i].DISPLAY_pos_seq_A = DISPLAY_pos_seq_A ;
-                DISPLAY_A[i].DISPLAY_pos_id_A = 0 ;
+                DISPLAY_A[i].DISPLAY_pos_id_A = 0 ;     
                 strcpy( DISPLAY_A[i].DISPLAY_array16_A , DISPLAY_array16_A);
                 */
-                //memcpy( DISPLAY_A[i].DISPLAY_array16_A , DISPLAY_array16_A, 16);
+                memcpy( DISPLAY_A[i].DISPLAY_array16_A , DISPLAY_array16_A, 16);
                 
                 //strcpy( DISPLAY_array16_A, DISPLAY_A[i].DISPLAY_array16_A );
                 //DISPLAY_A[i].DISPLAY_array16_A = DISPLAY_array16_AAAA ; // DISPLAY_array16_AAAA ;//"012345678901234" ;

+ 24 - 15
SE/stuff/P5_Automation_can-dev-res/_I2C_driver_Adafruit_PWMServoDriver/_I2C_driver_Adafruit_PWMServoDriver_func.h

@@ -95,12 +95,19 @@ int Adafruit_PWMServoDriver_setPWM(Adafruit_PWMServoDriver_T* Adafruit_PWMServoD
 
 
 
-ARDUINO_ARRAY_PRIMARY_KET_T Adafruit_PWMServoDriver__get_PRIMARY_KET_T(Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A,  I2C_ADDRESS_T I2C_ADDRESS_A) {
+ARDUINO_ARRAY_PRIMARY_KET_T Adafruit_PWMServoDriver__get_PRIMARY_KET_T(Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A, 
+Adafruit_PWMServoDriver_ATTR_ARRAY_T  &Adafruit_PWMServoDriver_ATTR_ARRAY_A,
+ I2C_ADDRESS_T I2C_ADDRESS_A) {
  ARDUINO_ARRAY_PRIMARY_KET_T i;
-    for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C ; i++) {
+    for(i=ARDUINO_ARRAY_INDEX_FIRST;i<=Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ; i++) {
         if(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == I2C_ADDRESS_A ) {
+            if(Adafruit_PWMServoDriver_A[i].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A  == ARDUINO_ARRAY_INDEX_DRIVER_STATUS_ERROR ) {
+             Serial.print("#83E I2C PWMServoDriver    ID["); Serial.print(i);  Serial.print(" ] STATUS ERR["); Serial.print(Adafruit_PWMServoDriver_A[i].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A, BIN);  Serial.println("] ");
+            } else {
+            Serial.print("#83E I2C PWMServoDriver    ID["); Serial.print(i);  Serial.print(" ] STATUS ["); Serial.print(Adafruit_PWMServoDriver_A[i].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A, BIN);  Serial.println("] ");
            return i;
             break;
+            }
         }
     }
     return 0;
@@ -133,29 +140,31 @@ I2C_ADDRESS_T I2C_ADDRESS_A) {
         ) {
         
         
-        return ARDUINO_ARRAY_INDEX_DRIVER_STATUS_ERROR;
+        //return ARDUINO_ARRAY_INDEX_DRIVER_STATUS_ERROR;
         
         if(ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_ADD == Adafruit_PWMServoDriver__get_DRIVER_STATUS_T(
                                 Adafruit_PWMServoDriver_A, Adafruit_PWMServoDriver_ATTR_ARRAY_A, I2C_ADDRESS_A))  {
                     Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A].I2C_ADDRESS_A = I2C_ADDRESS_A;
                     Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A = ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETUP_A;
-                     Serial.print("#138 PWMServoDriver__add I2C_ADDRESS_A[");  Serial.print(I2C_ADDRESS_A);   Serial.println("]  ");   Serial.print(" i[");  Serial.print(Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);   Serial.print("]  REQUEST ?["); Serial.print(ARDUINO_ARRAY_INDEX_DRIVER_REQUEST_A, BIN);   Serial.print("]  Result?[");
                     
-                    Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A].Adafruit_PWMServoDriver_V = Adafruit_PWMServoDriver(I2C_ADDRESS_A) ;
+                     Serial.print("#138 PWMServoDriver__add I2C_ADDRESS_A[");  Serial.print(I2C_ADDRESS_A);   Serial.println("]  ");   Serial.print(" INDEX_NEXT_A[");  Serial.print(Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);   Serial.print("]  REQUEST ?["); Serial.print(ARDUINO_ARRAY_INDEX_DRIVER_REQUEST_A, BIN);   Serial.print("]  Result?[");
+                    ARDUINO_ATTR_ARRAY_S__commit_added_element(Adafruit_PWMServoDriver_ATTR_ARRAY_A , Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A) ;
+                     Serial.print(" COMMIT() now INDEX_CURR_A[");  Serial.print(Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A); 
+                    Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A].Adafruit_PWMServoDriver_V = Adafruit_PWMServoDriver(I2C_ADDRESS_A) ;
                      
                             Serial.print("     [init OK? ]   "); 
                          
-                    Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A].Adafruit_PWMServoDriver_V.begin()      ;
+                    Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A].Adafruit_PWMServoDriver_V.begin()      ;
                          Serial.print(" [begin OK? ]    "); 
                          
-                    Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A].Adafruit_PWMServoDriver_V.setPWMFreq(PortTypes_PWM_FREQ_DEFAULT) ;
-                         Serial.print(" [setPWMFreq OK? ]    "); 
-                      Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A].Adafruit_PWMServoDriver_V.setPWM(2, 0, 0) ;
-                      Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A].Adafruit_PWMServoDriver_V.setPWM(3, 0, 0) ;
-                      Serial.print(" [setPWM   OK? ]    ");
-                      
-                      
-                  Serial.println("   ]    ");        
+                    Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A].Adafruit_PWMServoDriver_V.setPWMFreq(PortTypes_PWM_FREQ_DEFAULT) ;
+                     /*    Serial.print(" [setPWMFreq OFF ]    "); 
+                      Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A].Adafruit_PWMServoDriver_V.setPWM(2, 0, 0) ;
+                      Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A].Adafruit_PWMServoDriver_V.setPWM(3, 0, 0) ;
+                     */
+                  Serial.println("    [setPWMfreq  ON OK? ]    ");        
+                  Adafruit_PWMServoDriver_A[Adafruit_PWMServoDriver_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A = ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A;
+                  return ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A ;
         } else {
         
         
@@ -185,7 +194,7 @@ void Adafruit_PWMServoDriver__print_status(Adafruit_PWMServoDriver_T* Adafruit_P
     for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C ; i++) {
        Serial.print(" i["); Serial.print(i); 
        Serial.print("] I2C_ADDRESS_A[");  Serial.print(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A);
-       Serial.print("] ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A[");  Serial.print(Adafruit_PWMServoDriver_A[i].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A);
+       Serial.print("] ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A[");  Serial.print(Adafruit_PWMServoDriver_A[i].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A, BIN);
        Serial.println("] ");  
     }
     //return 1;

+ 1 - 1
SE/stuff/P5_Automation_can-dev-res/_I2C_driver_Adafruit_PWMServoDriver/_I2C_driver_Adafruit_PWMServoDriver_init.h

@@ -1,7 +1,7 @@
 //I2C_driver_Adafruit_PWMServoDriver
 
 
-Adafruit_PWMServoDriver  Adafruit_PWMServoDriver_0X40 = Adafruit_PWMServoDriver(0x40);
+//Adafruit_PWMServoDriver  Adafruit_PWMServoDriver_0X40 = Adafruit_PWMServoDriver(0x40);
 //Adafruit_PWMServoDriver  Adafruit_PWMServoDriver_0X41 = Adafruit_PWMServoDriver(0x41);
 
  

+ 2 - 2
SE/stuff/P5_Automation_can-dev-res/_I2C_driver_Adafruit_PWMServoDriver/_I2C_driver_Adafruit_PWMServoDriver_setup.h

@@ -8,14 +8,14 @@
         Adafruit_PWMServoDriver__print_status(Adafruit_PWMServoDriver_A);
 #endif
 
-
+/*
 Adafruit_PWMServoDriver_0X40.begin(); 
 Adafruit_PWMServoDriver_0X40.setPWMFreq(PortTypes_PWM_FREQ_DEFAULT);
  Adafruit_PWMServoDriver_0X40.setPWM(3, 0, 0);
   
   
    Adafruit_PWMServoDriver_0X40.setPWM(2, 0, 0);
-   
+   */
 
 /* Adafruit_PWMServoDriver__add(Adafruit_PWMServoDriver_A,Adafruit_PWMServoDriver_ATTR_ARRAY_A);
 

+ 11 - 5
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_I2C_func.h

@@ -81,18 +81,21 @@
                                  
                                  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_INIT_A == Adafruit_PWMServoDriver__add_A) {
-                                       Serial.println("#83 I2C ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_INIT_A   ");
+                              if(ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A == Adafruit_PWMServoDriver__add_A) {
+                                       Serial.println("#83 I2C ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETVAL_A   ");
+                                       
+                                  //   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 {
-                                Serial.println("#83E I2C ADD   else ");  Serial.println(Adafruit_PWMServoDriver__add_A, BIN);  Serial.println(" ] ");
+                                Serial.print("#83E I2C ADD   else ");  Serial.print(Adafruit_PWMServoDriver__add_A, BIN);  Serial.println(" ] ");
                               }
                                  
                         }
                       
                       
                       
-                       I2C_INDEX_DRIVER_T   I2C_INDEX_DRIVER_A = Adafruit_PWMServoDriver__get_PRIMARY_KET_T(
-                                Adafruit_PWMServoDriver_A, Slave_Ports_Status_A[i].Address);
+                       I2C_INDEX_DRIVER_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);
                                 
                             if(I2C_INDEX_DRIVER_A > 0 ) {//Slave_Ports_Status_A[i].Address == I2C_ADDRESS_0x40 ) {
                                   /*  if(I2C_ADDRESS_0x40_A == ARDUINO_DRIVER_UNDEFINED) {
@@ -105,6 +108,9 @@
                                        
                                     }
                                     */
+                                    
+                                    Serial.print("#112 I2C ADD    OK   id:");  Serial.print(I2C_INDEX_DRIVER_A);  Serial.println(" ] ");
+                                    
                                     if(Slave_Ports_Status_A[i].PortTypes | PortTypes_SERVO) {
                                                 if(Slave_Ports_Status_A[i].Exp_state | Exp_state_ON) {
                                     

+ 29 - 9
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_func.h

@@ -1,4 +1,4 @@
-
+#include <limits.h>
  void Slave_Ports_Status_add_port(
  Slave_Ports_Status_T* Slave_Ports_Status_A , 
  Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
@@ -177,27 +177,40 @@
                    delay(100);
                   // DISPLAY_array16_AA = 0 ;*/
                    message2 = message  ; message2.concat(" ");//E:
-                   
+                   String Exp_state_s ="";    
+                    
+                    for ( size_t mask = 1 << ((sizeof(Slave_Ports_Status_A[i].Exp_state) * CHAR_BIT) - 1); mask; mask >>= 1 )
+                            {
+                            Exp_state_s.concat(Slave_Ports_Status_A[i].Exp_state & mask ? "1" : "0");//message2.concat(Slave_Ports_Status_A[i].Exp_state & mask ? "1" : "0");
+                            }
+                    message2.concat(Exp_state_s.substring(5,8));
+                   /*
                    if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ERROR ) {
                     message2 = message  ;  message2.concat(" ERR ");//E:
+                   
                     } else {
                    if(Slave_Ports_Status_A[i].Exp_state | Exp_state_ON ) message2 = message  ;     message2.concat(" ON  ");//E:
                    if(Slave_Ports_Status_A[i].Exp_state | Exp_state_OFF ) message2 = message  ;    message2.concat(" OFF ");//E:
                    }
-                   
+                   */
+                   message2.concat(" ");// B:
                      if(Slave_Ports_Status_A[i].Exp_state_ttl & Exp_state_ttl_TO_REFRESH ) {
-                         message2.concat(" R ");// B:
+                         message2.concat("R");// B:
                       } else {
-                        message2.concat(" "); //T:
+                        message2.concat(""); //T:
                         message2.concat(Slave_Ports_Status_A[i].Exp_state_ttl )  ;
-                        message2.concat(" "); //T:
+                        message2.concat(""); //T:
                     }
+                    
+                    
+                    
                     if(Slave_Ports_Status_A[i].Broadcast_state & Broadcast_state_TO_REFRESH ) {
-                         message2.concat(" R ");// B:
+                         //message2.concat(" R ");// B:
+                         message2.concat("B");
                     } else {
-                        message2.concat(" ");// B:
+                       // message2.concat(" ");// B:
                          message2.concat(Slave_Ports_Status_A[i].Broadcast_state )  ;
-                         message2.concat(" ");// B:
+                         //message2.concat(" ");// B:
                     }
                     
                      if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) {
@@ -206,6 +219,13 @@
                          message2.concat(" R ");// B:
                     } 
                  //message2.concat(" ");
+                 
+                 if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) {
+                     message2.concat(" * ");//E:
+                   
+                    }
+                 
+                 
                  message2.toCharArray(DISPLAY_array16_AB, message2.length());             
                 
                  DISPLAY__print(