Jelajahi Sumber

dramat z arrayani,,, help

arkadiusz binder 5 tahun lalu
induk
melakukan
4f839891b9

+ 0 - 17
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___CONFIG/0x20/config.h

@@ -93,23 +93,6 @@ void p5__config__individual__init(
 
     #include "config__assert.h"
 
-    P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A ;
-    P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__TYPE__ASSERT_A = P5__TASK__TYPE__ASSERT__EQUALS_REFERENCE__ELEMENT__SUM__SEQUENCE_A ; //just testing
-    P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[3] ;
-    
-        P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[2].P5__TASK__CONFIG__NAME__INDEX_A  = P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A;
-        P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[3].P5__TASK__CONFIG__NAME__INDEX_A  = P5__TASK__CONFIG__NAME__ATTRIBUTE__SWING__FREQUENCY_A  ;
-        P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__TYPE__SEQUENCE__ARRAY__ASSOC__INDEX_A = P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A + 1; //next
-    
-    P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A  ++;
-         P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX_A = 0 ; // to znaczy ze child ? P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A ;
-           P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__TYPE__ASSERT_A = P5__TASK__TYPE__ASSERT__EQUALS_REFERENCE__ELEMENT__DIV__SEQUENCE_A ; //just testing
-           P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[2] ;
-           P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[2].P5__TASK__CONFIG__NAME__INDEX_A  = P5__TASK__CONFIG__NAME__ATTRIBUTE__LATENCY_TASK_EXEC_TIME_A;  //todo przyklad
-           P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__TYPE__SEQUENCE__ARRAY__ASSOC__INDEX_A = 0 ;
-           
-    
-
 //    U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2; u8g2.setCursor(7,20);u8g2.print("AT5");u8g2.sendBuffer();		
      
     //    P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A = P5__TASK__CONFIG__INDEX__CURRENT_A; //TODO DIFF CURSOR FOR SET?

+ 17 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___CONFIG/0x20/config__assert.h

@@ -0,0 +1,17 @@
+
+    P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A ;
+    P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__TYPE__ASSERT_A = P5__TASK__TYPE__ASSERT__EQUALS_REFERENCE__ELEMENT__SUM__SEQUENCE_A ; //just testing
+    P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[3] ;
+    
+        P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[2].P5__TASK__CONFIG__NAME__INDEX_A  = P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A;
+        P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[3].P5__TASK__CONFIG__NAME__INDEX_A  = P5__TASK__CONFIG__NAME__ATTRIBUTE__SWING__FREQUENCY_A  ;
+        P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__TYPE__SEQUENCE__ARRAY__ASSOC__INDEX_A = P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A + 1; //next
+    
+    P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A  ++;
+         P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX_A = 0 ; // to znaczy ze child ? P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A ;
+           P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__TYPE__ASSERT_A = P5__TASK__TYPE__ASSERT__EQUALS_REFERENCE__ELEMENT__DIV__SEQUENCE_A ; //just testing
+           P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[2] ;
+           P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[2].P5__TASK__CONFIG__NAME__INDEX_A  = P5__TASK__CONFIG__NAME__ATTRIBUTE__LATENCY_TASK_EXEC_TIME_A;  //todo przyklad
+           P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A].P5__TASK__TYPE__SEQUENCE__ARRAY__ASSOC__INDEX_A = 0 ; //jak dajemy self
+           
+     P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A  ++;

+ 7 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__progmem.h

@@ -54,6 +54,10 @@ FT(TASK_config__set, "## T+" );
 FT(TASK_p5__task__loop__run, "## TX" );         
 
 FT(TASK_ATTR, " #@ ");         
+FT(TODO_INDEX__REQUESTED, "IND REQ");         
+FT(TODO_LOOP__BREAK, "BREAK");         
+
+
 FT(TODO_ATTR__NOT_EXISTS, "NOT_EXISTS");         
 FT(TODO_ATTR__EXISTS, "EXISTS");         
 
@@ -61,6 +65,7 @@ FT(TODO_ATTR__ERROR__LIMITS, " ERROR LIMIT ELEMENTS ");
 FT(TODO_ATTR__ERROR__NOT_FOUND, " ERROR NOT FOUND ");         
 FT(TODO_ATTR__OK__SAVED, " OK SAVED ");         
 FT(TODO_ATTR__OK__SAVED__INIT, " OK SAVED_INI ");         
+FT(TODO_ASSERT__EXISTS, "ASSERT EXISTS");         
 
 
 FT(TASK_LOOP, " ###L1 ");         
@@ -78,6 +83,8 @@ FT(ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION,"[act]")
 FT(ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION__REPLY,"repl");
 FT(ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION__SET__INIT,"ini");
 FT(ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION__SET,"set");
+FT(ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION__REPLY_LIST,"list");
+
 FT(ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION__IF_EXISTS,"if");
 
 FT(ATTRIBUTE__P5__TASK__TYPE__SEQUENCE__ARRAY__INDEX," #.");

+ 5 - 1
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__struct.h

@@ -98,10 +98,14 @@
   
   typedef P5__TASK__CONFIG__NAME__INDEX__ARRAY_S P5__TASK__CONFIG__NAME__INDEX__ARRAY_T ;
 
+
+        const P5__LIMITS_T P5__TASK__CONFIG__NAME__INDEX__ARRAY__LIMIT = 10;
+
+
   struct P5__TASK__TYPE__SEQUENCE__ARRAY_S {
         P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX_A; //todo assert  refs
         P5__TASK__TYPE__ASSERT_T P5__TASK__TYPE__ASSERT_A; //
-        P5__TASK__CONFIG__NAME__INDEX__ARRAY_T P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[10] ; //todo manage
+        P5__TASK__CONFIG__NAME__INDEX__ARRAY_T P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[P5__TASK__CONFIG__NAME__INDEX__ARRAY__LIMIT] ; //todo manage
         P5__TASK__TYPE__SEQUENCE__ARRAY__ASSOC__INDEX_T P5__TASK__TYPE__SEQUENCE__ARRAY__ASSOC__INDEX_A ; //REKORD WZAJ REL
    };
   typedef P5__TASK__TYPE__SEQUENCE__ARRAY_S P5__TASK__TYPE__SEQUENCE__ARRAY_T;

+ 65 - 3
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__swing.h

@@ -14,12 +14,74 @@ bool P5__TASK__SWING(  //todo czy nie inny typ?
     ) {
 
             //implemenetacja dyn asserts
+                    //szukamy czy jest w danym tasku atrybut do assert
+                    //pierw lista atrybutow 
+                            //todo cache
+                            
+                            
+            //sciagamy liste attr w tasku
+ // #if defined(DISABLE_ASSERT)
+ //         #else    
+            P5__TASK__CONFIG__NAME__INDEX__ARRAY_T P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[P5__TASK__ATTR__LIMIT]; //todo zeby to nie siedzialo w ramie? albo moze cache z id tasku?
+            P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX_A_V ; //tu bedziemy ladowac ostatni element i pytac o next
+                P5__TASK__CONFIG__NAME__INDEX_A_V  = 0;
+            
+          //      P5__TASK__ATTR_INT_T  P5__TASK__CONFIG__NAME__ATTRIBUTE__I2C__ADDRESS_A_V ;
+          //  P5__TASK__CONFIG__NAME__ATTRIBUTE__I2C__ADDRESS_A_V = P5__TASK___ATTR (P5__TASK__CONFIG_A, P5__TASK__CONFIG__INDEX__CURRENT_A, P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, P5__TASK__ATTR_A,P5__TASK__ATTR__INDEX__CURRENT_A, P5__TASK__ATTR__INDEX__CURRENT__EXEC_A, P5__TASK__TYPE__ATTRIBUTE_A , P5__TASK__CONFIG__NAME__ATTRIBUTE__I2C__ADDRESS_A , P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, P5__TASK__ATTR_INT__UNDEF_A, P5__TASK__ATTR_ACCTION__REPLY_A ) ;
+     
+            
              int i;
-          //   for(i=2;i<=P5__TASK__CONFIG__NAME__ASSERT__ARRAY__LIMIT ; i++) {
-          //      P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[i]
+             int i2; 
+              int ia; 
+            for(ia=2;ia<=P5__TASK__ATTR__LIMIT ; ia++) { //P5__TASK__CONFIG__NAME__ASSERT__ARRAY__LIMIT 
+                delay(10);
+ //              SPFT2(TODO_INDEX__REQUESTED,String(P5__TASK__CONFIG__NAME__INDEX_A_V));
+              //if(P5__TASK__CONFIG__NAME__INDEX_A_V > 0) 
+              //SPFT(TODO_INDEX__REQUESTED);//Serial.print(P5__TASK__CONFIG__NAME__INDEX_A_V);
+
+                // SPFT2(TODO_INDEX__REQUESTED,P5__TASK__CONFIG__NAME__INDEX_A_V);
+              //  P5__TASK__CONFIG__NAME__INDEX_A_V = 1 ;
+                
+                //P5__TASK__CONFIG__NAME__INDEX_A_V = 
+               //  SPFT2(TODO_INDEX__REQUESTED , P5__TASK___ATTR__REPLY_LIST (P5__TASK__CONFIG_A, P5__TASK__CONFIG__INDEX__CURRENT_A, P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, P5__TASK__ATTR_A,P5__TASK__ATTR__INDEX__CURRENT_A, P5__TASK__ATTR__INDEX__CURRENT__EXEC_A, P5__TASK__TYPE__ATTRIBUTE_A , P5__TASK__CONFIG__NAME__INDEX_A_V, P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, P5__TASK__ATTR_INT__UNDEF_A, P5__TASK__ATTR_ACCTION__REPLY_LIST_A )) ;
+                
+                  /*  if(P5__TASK__CONFIG__NAME__INDEX_A_V > 0 ) {
+                            P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[ia].P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__INDEX_A_V;
+                            
+                    } else {
+                        SPFT2(TODO_LOOP__BREAK,ia);
+                        break;
+                    }
+                    */
+               //  if(P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[i],)
+                 //   SPFT2(TODO_ASSERT__EXISTS,i); 
+                    //int i2;
+                    //for(i2=2;  i2 <= P5__TASK__CONFIG__NAME__INDEX__ARRAY__LIMIT; i2++)
+                    //P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[i]
              
-            // }
+             }
+            
             //read contexts attrs
+            //analyze if we have  any of list   
+            /* for(i=2;i<=P5__TASK__CONFIG__NAME__ASSERT__ARRAY__LIMIT ; i++) {
+                       for(i2=2;i2<=P5__TASK__CONFIG__NAME__INDEX__ARRAY__LIMIT;i2++) {
+                                   for(ia=2;ia<=P5__TASK__ATTR__LIMIT;ia++) {
+                                      if(P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[ia].P5__TASK__CONFIG__NAME__INDEX_A > 0) {
+                                         //  if(P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[ia].P5__TASK__CONFIG__NAME__INDEX_A  == P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[i].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[i2].P5__TASK__CONFIG__NAME__INDEX_A) {
+                                               SPFTL2(TODO_ASSERT__EXISTS,P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[ia].P5__TASK__CONFIG__NAME__INDEX_A);
+                                               delay(1000);
+                                           //}
+                                       } else {
+                                            SPFT2(TODO_LOOP__BREAK,ia);
+                                           break;
+                                       }
+                                   }
+                       }
+             
+             }
+             */
+
+//    #endif
 
     }
 #endif

+ 91 - 2
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__swing__loop.h

@@ -1,10 +1,99 @@
 
 
-if(P5__TASK___ATTR (P5__TASK__CONFIG_A, P5__TASK__CONFIG__INDEX__CURRENT_A, P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, P5__TASK__ATTR_A,P5__TASK__ATTR__INDEX__CURRENT_A, P5__TASK__ATTR__INDEX__CURRENT__EXEC_A, P5__TASK__TYPE__ATTRIBUTE_A , P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A , P5__TASK__CONFIG__NAME__ATTRIBUTE__SWING__FREQUENCY_A, P5__TASK__ATTR_INT__UNDEF_A, P5__TASK__ATTR_ACCTION__IF_EXISTS_A ) ) { 
+if(P5__TASK___ATTR (P5__TASK__CONFIG_A, P5__TASK__CONFIG__INDEX__CURRENT_A, P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, 
+            P5__TASK__ATTR_A,P5__TASK__ATTR__INDEX__CURRENT_A, P5__TASK__ATTR__INDEX__CURRENT__EXEC_A, 
+            P5__TASK__TYPE__ATTRIBUTE_A , 
+            P5__TASK__CONFIG__NAME__ATTRIBUTE__SWING__FREQUENCY_A, P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A , P5__TASK__ATTR_INT__UNDEF_A, P5__TASK__ATTR_ACCTION__IF_EXISTS_A ) ) { 
         SPFTL(TASK_p5__swing__loop);
-        
+        delay(50);
+     
+     /*
             P5__TASK__SWING(P5__TASK__CONFIG_A , P5__TASK__CONFIG__INDEX__CURRENT_A , P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A   ,
             P5__TASK__ATTR_A, P5__TASK__ATTR__INDEX__CURRENT_A , P5__TASK__ATTR__INDEX__CURRENT__EXEC_A ,
             P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A,   P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A, P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT__EXEC_A,
             P5__LATENCY_TASK_EXEC_TIME_A);
+            */
+            
+            //testing style context no func if
+            
+          
+          
+              P5__TASK__CONFIG__NAME__INDEX__ARRAY_T P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[P5__TASK__ATTR__LIMIT]; //todo zeby to nie siedzialo w ramie? albo moze cache z id tasku?
+               P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[P5__TASK__ATTR__LIMIT] = {}; //todo zeby to nie siedzialo w ramie? albo moze cache z id tasku?
+            P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX_A_V ; //tu bedziemy ladowac ostatni element i pytac o next
+                P5__TASK__CONFIG__NAME__INDEX_A_V  = 0;
+            
+          //      P5__TASK__ATTR_INT_T  P5__TASK__CONFIG__NAME__ATTRIBUTE__I2C__ADDRESS_A_V ;
+          //  P5__TASK__CONFIG__NAME__ATTRIBUTE__I2C__ADDRESS_A_V = P5__TASK___ATTR (P5__TASK__CONFIG_A, P5__TASK__CONFIG__INDEX__CURRENT_A, P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, P5__TASK__ATTR_A,P5__TASK__ATTR__INDEX__CURRENT_A, P5__TASK__ATTR__INDEX__CURRENT__EXEC_A, P5__TASK__TYPE__ATTRIBUTE_A , P5__TASK__CONFIG__NAME__ATTRIBUTE__I2C__ADDRESS_A , P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, P5__TASK__ATTR_INT__UNDEF_A, P5__TASK__ATTR_ACCTION__REPLY_A ) ;
+     
+            
+             int iA;
+             int iA2; 
+              int iAa, iAaF;
+              iAaF = 2; 
+            for(iAa=2;iAa<=P5__TASK__ATTR__LIMIT ; iAa++) { //P5__TASK__CONFIG__NAME__ASSERT__ARRAY__LIMIT 
+                delay(10);
+ //              SPFT2(TODO_INDEX__REQUESTED,String(P5__TASK__CONFIG__NAME__INDEX_A_V));
+              //if(P5__TASK__CONFIG__NAME__INDEX_A_V > 0) 
+              //SPFT(TODO_INDEX__REQUESTED);//Serial.print(P5__TASK__CONFIG__NAME__INDEX_A_V);
+
+                SPFT2(TODO_INDEX__REQUESTED,P5__TASK__CONFIG__NAME__INDEX_A_V);
+              //  P5__TASK__CONFIG__NAME__INDEX_A_V = 1 ;
+                
+                P5__TASK__CONFIG__NAME__INDEX_A_V =  P5__TASK___ATTR__REPLY_LIST (P5__TASK__CONFIG_A, P5__TASK__CONFIG__INDEX__CURRENT_A, P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, P5__TASK__ATTR_A,P5__TASK__ATTR__INDEX__CURRENT_A, P5__TASK__ATTR__INDEX__CURRENT__EXEC_A, P5__TASK__TYPE__ATTRIBUTE_A , P5__TASK__CONFIG__NAME__INDEX_A_V, P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, P5__TASK__ATTR_INT__UNDEF_A, P5__TASK__ATTR_ACCTION__REPLY_LIST_A ) ;
+                
+                    if(P5__TASK__CONFIG__NAME__INDEX_A_V > 0 ) {
+                            P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[iAaF].P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__INDEX_A_V;
+                            iAaF ++;
+                    } else {
+                        SPFT2(TODO_LOOP__BREAK,iAa);
+                        SPFT2(TODO_LOOP__BREAK,iAaF);
+
+                        break;
+                    }
+                    
+                
+             
+             }
+            
+            //read contexts attrs
+            //analyze if we have  any of list
+            int iA2S ;
+             
+             for(iA=2;iA<P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A__CURRENT_A ; iA++) {
+                 iA2S = sizeof(P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[iAa].P5__TASK__CONFIG__NAME__INDEX_A)/sizeof(P5__TASK__CONFIG__NAME__INDEX_T);
+               SPFT2(TASK_ATTR ,iA2S );
+                
+                       for(iA2=2;iA2<=(iA2S + 2) ;iA2++) { //P5__TASK__CONFIG__NAME__INDEX__ARRAY__LIMIT
+                                   for(iAa=2;iAa<(iAaF+2);iAa++) {
+                                                if(P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[iAa].P5__TASK__CONFIG__NAME__INDEX_A > 0) {
+                                                                       // if(P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[iAa].P5__TASK__CONFIG__NAME__INDEX_A  == P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[iA].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[iA2].P5__TASK__CONFIG__NAME__INDEX_A) {
+                                                                            // if(P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[iA].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[iA2].P5__TASK__CONFIG__NAME__INDEX_A > 0 ) {
+                                                                                     SPFTL2(TODO_ASSERT__EXISTS,iA);
+                                                                                     SPFT2(ATTRIBUTE__P5__TASK__TYPE__SEQUENCE__ARRAY__INDEX,iA2);
+                                                                                     SPFT2(ATTRIBUTE__P5__TASK__CONFIG__INDEX__CURRENT,iAa);
+                                                                                      SPFT2(TASK_ATTR,P5__TASK__CONFIG__NAME__INDEX__ARRAY_A_V[iAa].P5__TASK__CONFIG__NAME__INDEX_A);
+                                                                                    //  SPFT2(TASK_ATTR,P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[iA].P5__TASK__CONFIG__NAME__INDEX__ARRAY_A[iA2].P5__TASK__CONFIG__NAME__INDEX_A);
+
+                                                                                     delay(1000);
+                                                                       //  }
+                                                                
+                                                 } else {
+                                                      SPFT2(TODO_LOOP__BREAK,iAa);
+                                                     break;
+                                                 }
+                                   }
+                       }
+                    //if(  P5__TASK__CONFIG__NAME__ASSERT__ARRAY_A[iA].P5__TASK__TYPE__SEQUENCE__ARRAY__ASSOC__INDEX_A > 0) {
+                    //} else {
+                    //    SPFT2(TODO_LOOP__BREAK,"iA");
+                    //    break;
+                    //}
+             
+             }
+             
+
+//    #endif
+            
+            
 }

+ 6 - 6
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__task___attr.h

@@ -112,9 +112,7 @@ int P5__TASK___ATTR( //increment auto
                             Serial.print("[!@+#]");
                           }
                      
-                 } else 
-                 
-                 if(P5__TASK__ATTR_ACCTION ==  P5__TASK__ATTR_ACCTION__SET_A)  { //set new
+                 } else  if(P5__TASK__ATTR_ACCTION ==  P5__TASK__ATTR_ACCTION__SET_A)  { //set new
                        found = 0;
                      //findinf
                       for(int i=2;i<P5__TASK__ATTR__LIMIT ; i++) {
@@ -124,13 +122,15 @@ int P5__TASK___ATTR( //increment auto
                                   ) {
                                     found ++;//= found + P5__TASK__ATTR_A[i].P5__TASK__TYPE__CLASS_A;
                                      P5__TASK__ATTR_A[i].P5__TASK__ATTR_INT_A = P5__TASK__ATTR_INT_A;
-                                      Serial.print("[@>#]");
+                                      //Serial.print("[@>#]");
+                                      SPFT2(ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION__SET,i);
                                      return P5__TASK__ATTR_A[i].P5__TASK__ATTR_INT_A;
                                 }
                        }
                        if(found == 0) {
-                         Serial.print("[@>!#]");
+                            SPFT(ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION__SET);
+                            SPFT(TODO_ATTR__ERROR__NOT_FOUND);
                        }
-                 }
+                 } 
             
  }

+ 50 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__task___attr__reply_list.h

@@ -0,0 +1,50 @@
+ 
+ 
+P5__TASK__CONFIG__NAME__INDEX_T P5__TASK___ATTR__REPLY_LIST( //increment auto
+    P5__TASK__CONFIG_T* P5__TASK__CONFIG_A, 
+    P5__TASK__CONFIG__INDEX__CURRENT_T &P5__TASK__CONFIG__INDEX__CURRENT_A ,
+     P5__TASK__CONFIG__INDEX__CURRENT__EXEC_T &P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A ,
+
+     P5__TASK__ATTR_T* P5__TASK__ATTR_A,//4
+     P5__TASK__ATTR__INDEX__CURRENT_T  &P5__TASK__ATTR__INDEX__CURRENT_A , //5
+          P5__TASK__ATTR__INDEX__CURRENT__EXEC_T  &P5__TASK__ATTR__INDEX__CURRENT__EXEC_A , //6
+
+     P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__CLASS_A, //7
+    P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX_A, //8 
+    //unknown
+     P5__TASK__TYPE__ASSOC_T P5__TASK__TYPE__ASSOC_A, //9.5id ref elem 
+     P5__TASK__ATTR_INT_T  P5__TASK__ATTR_INT_A , //10 value
+    //int P5__TASK__PW__ATTR_A, 
+    P5__TASK__ATTR_ACCTION_T P5__TASK__ATTR_ACCTION )    //11) 
+    {
+                 int found ;
+ 
+ 
+            
+             if(P5__TASK__ATTR_ACCTION ==  P5__TASK__ATTR_ACCTION__REPLY_LIST_A) {
+                                                        
+           
+              found = 0;
+                                //findinf
+                                 for(int i=2;i<P5__TASK__ATTR__LIMIT ; i++) {
+                                           if(P5__TASK__ATTR_A[i].P5__TASK__TYPE__ASSOC_A ==  P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A
+                                            // and  P5__TASK__ATTR_A[i].P5__TASK__TYPE__CLASS_A == P5__TASK__TYPE__CLASS_A 
+                                             and  P5__TASK__ATTR_A[i].P5__TASK__CONFIG__NAME__INDEX_A > P5__TASK__CONFIG__NAME__INDEX_A //todo odpytywanie po jednym, z podaniem indeksu ostatniego...  // and  P5__TASK__ATTR_A[i].P5__TASK__CONFIG__NAME__INDEX_A == P5__TASK__CONFIG__NAME__INDEX_A
+                                             ) {
+                                               found ++;//= found + P5__TASK__ATTR_A[i].P5__TASK__TYPE__CLASS_A;
+                                               
+                                                SPFT2(ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION__REPLY_LIST,P5__TASK__ATTR_A[i].P5__TASK__CONFIG__NAME__INDEX_A);
+                                                return P5__TASK__ATTR_A[i].P5__TASK__CONFIG__NAME__INDEX_A; // todo oszukujemy, zwracamy klucze atrybotow P5__TASK__ATTR_A[i].P5__TASK__ATTR_INT_A;
+                                           }
+                                  }
+                                  if(found == 0) {
+                                       SPFT( ATTRIBUTE__P5__TASK__CONFIG__NAME__ATTRIBUTE__P5__TASK__ATTR_ACCTION__REPLY_LIST);
+                                       SPFT(TODO_ATTR__NOT_EXISTS);
+                                       return 0;
+                                  }
+                                  
+                                  
+           }
+           
+}
+

+ 5 - 1
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__task__loop.h

@@ -26,7 +26,11 @@
      ) ; //todo ind next
     
     //todo testing run func from context 
-   #include "p5__swing__loop.h" 
+    #if defined(DISABLE_ASSERT)
+                #include "p5__swing__loop.h"
+    #else
+        #include "p5__swing__loop.h"
+    #endif 
 
    #include "p5__i2c__loop.h" 
     

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

@@ -9,6 +9,8 @@
 //#define P5__DISPLAY__DISABLE
 #define P5__DEBUG 0
 #define DISABLE_u8g2log
+#define DISABLE_ASSERT
+
 #define Active_ControllerID 0x20
 #define DEBUG__I2C 5
 //#define DISABLE__P5__TASK__DISPLAY
@@ -24,6 +26,8 @@
   #include "___P5_LIB/p5__pins__setup.h"
 
 #include "___P5_LIB/p5__task___attr.h"
+#include "___P5_LIB/p5__task___attr__reply_list.h"
+
 #include "___P5_LIB/p5__display.h"
 
 #include "___P5_LIB/p5__intro.h"