arkadiusz binder 5 yıl önce
ebeveyn
işleme
229b984045

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

@@ -13,27 +13,108 @@
 
 
 void p5__config__individual__init( 
-    //U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2,
-    //U8G2LOG u8g2log, 
-    P5__TASK__CONFIG_T* P5__TASK__CONFIG_A) {
+    
+     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,
+     P5__TASK__ATTR__INDEX__CURRENT_T  &P5__TASK__ATTR__INDEX__CURRENT_A ,
+     P5__TASK__ATTR__INDEX__CURRENT__EXEC_T  &P5__TASK__ATTR__INDEX__CURRENT__EXEC_A 
+
+    ) {
          Serial.print(" CC ");
 
+   
+    // P5__ARRAY__INDEX_T P5__ARRAY__INDEX_A = 2;
+     P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__CLASS_A ;
      
-     P5__ARRAY__INDEX_T P5__ARRAY__INDEX_A = 2;
-     P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__CLASS_A = P5__TASK__TYPE__ROOT;
      P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX_A ;
-     P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__INDEX__PW ;
+     P5__TASK__TYPE__ASSOC_T P5__TASK__TYPE__ASSOC_A ;
+     
+      P5__TASK__ATTR_INT_T  P5__TASK__ATTR_INT_A ;
+        
+        
+       P5__TASK__TYPE__CLASS_A = P5__TASK__TYPE__ROOT;
+
+     
+     P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__INDEX__PWM ;
     // P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__INDEX_A + P5__TASK__CONFIG__NAME__INDEX__SW
-     P5__TASK__TYPE__ASSOC_T P5__TASK__TYPE__ASSOC_A = 0;
-   p5__task__config__set( P5__TASK__CONFIG_A, P5__ARRAY__INDEX_A, P5__TASK__TYPE__CLASS_A ,P5__TASK__CONFIG__NAME__INDEX_A , P5__TASK__TYPE__ASSOC_A  ) ;
+      P5__TASK__TYPE__ASSOC_A = P5__TASK__TYPE__ASSOC__UNDEFINED_A;
+      P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A = P5__TASK__CONFIG__INDEX__CURRENT_A; //TODO DIFF CURSOR FOR SET?
+
+        p5__task__config__set( P5__TASK__CONFIG_A, P5__TASK__CONFIG__INDEX__CURRENT_A, P5__TASK__TYPE__CLASS_A ,P5__TASK__CONFIG__NAME__INDEX_A , P5__TASK__TYPE__ASSOC_A  ) ;
+                 P5__TASK__CONFIG__INDEX__CURRENT_A ++ ;
+
+        
+        //BEGIN SWING ###^^^### ###^^^######^^^######^^^######^^^###
+         P5__TASK__TYPE__ASSOC_A = P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A; //P5__TASK__CONFIG__INDEX__CURRENT_A - 1;
+         P5__TASK__TYPE__CLASS_A = P5__TASK__TYPE__ATTRIBUTE_A;
+         P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__INDEX__SWING ;
+         P5__TASK__ATTR_INT_A = 5 ; //TODO SEC?
+         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__INDEX__SWING,   
+                     P5__TASK__CONFIG__INDEX__CURRENT_A - 1 , //P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A , //9 ref
+                     P5__TASK__ATTR_INT_A  , // 10 val P5__TASK__ATTR_INT_A 
+                     P5__TASK__ATTR_ACCTION__SET__INIT_A//11 acction
+                ) ;
+                
+        //SWING ###^^^######^^^######^^^######^^^######^^^######^^^###
+        
      
+        //BEGIN DISOPLAY  #---#---#-#---#---#-#---#---#-#---#---#-#---#---#- 
+   
+    
+    
+    
+    //P5__ARRAY__INDEX_A = 3;
+      P5__TASK__TYPE__CLASS_A = P5__TASK__TYPE__ROOT; //  P5__TASK__TYPE__ELEMENT_A;
+      P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__INDEX__DISPLAY_A;
+      P5__TASK__TYPE__ASSOC_A = P5__TASK__TYPE__ASSOC__UNDEFINED_A; //P5__TASK__CONFIG__INDEX__CURRENT_A - 1;
+    p5__task__config__set( P5__TASK__CONFIG_A, P5__TASK__CONFIG__INDEX__CURRENT_A, P5__TASK__TYPE__CLASS_A ,P5__TASK__CONFIG__NAME__INDEX_A , P5__TASK__TYPE__ASSOC_A  ) ;
+//    U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2; u8g2.setCursor(7,20);u8g2.print("AT5");u8g2.sendBuffer();		
      
-      P5__ARRAY__INDEX_A = 3;
-      P5__TASK__TYPE__CLASS_A =  P5__TASK__TYPE__TYPE;
-      P5__TASK__CONFIG__NAME__INDEX_A = P5__TASK__CONFIG__NAME__INDEX__SW ;
-      P5__TASK__TYPE__ASSOC_A = 2;
-    p5__task__config__set( P5__TASK__CONFIG_A, P5__ARRAY__INDEX_A, P5__TASK__TYPE__CLASS_A ,P5__TASK__CONFIG__NAME__INDEX_A , P5__TASK__TYPE__ASSOC_A  ) ;
+        P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A = P5__TASK__CONFIG__INDEX__CURRENT_A; //TODO DIFF CURSOR FOR SET?
+        P5__TASK__CONFIG__INDEX__CURRENT_A ++ ;
+        P5__TASK__TYPE__ASSOC_A = P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A; //P5__TASK__CONFIG__INDEX__CURRENT_A - 1;
 
+      
+       P5__TASK__ATTR_INT_A = 2  ; //todso detect
      
+       P5__TASK___ATTR (
+                P5__TASK__CONFIG_A,
+                P5__TASK__CONFIG__INDEX__CURRENT_A ,
+                 P5__TASK__CONFIG__INDEX__CURRENT__EXEC_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  ,//7 //P5__TASK__ATTR__INDEX__CURRENT__EXEC_A ,
+                     //P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A , //5 , //P5__TASK__CONFIG__NAME__INDEX_A,  // P5__TASK__TYPE__ATTRIBUTE_A ,
+                    
+                     P5__TASK__TYPE__ATTRIBUTE_A , //7 class
+                     P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED_X_MAX_A,   //8 name
+                     P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A , //9 ref
+                     P5__TASK__ATTR_INT_A  , // 10 val P5__TASK__ATTR_INT_A 
+                     P5__TASK__ATTR_ACCTION__SET__INIT_A//11 acction
+                ) ;
+                
+         P5__TASK__ATTR_INT_A = 30 ;          
+       P5__TASK___ATTR (
+                P5__TASK__CONFIG_A,
+                P5__TASK__CONFIG__INDEX__CURRENT_A ,
+                 P5__TASK__CONFIG__INDEX__CURRENT__EXEC_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  ,//7 //P5__TASK__ATTR__INDEX__CURRENT__EXEC_A ,
+                     //P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A , //5 , //P5__TASK__CONFIG__NAME__INDEX_A,  // P5__TASK__TYPE__ATTRIBUTE_A ,
+                    
+                     P5__TASK__TYPE__ATTRIBUTE_A , //7 class
+                     P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED_Y_MAX_A,   //8 name
+                     P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A , //9 ref
+                     P5__TASK__ATTR_INT_A  , // 10 val P5__TASK__ATTR_INT_A 
+                     P5__TASK__ATTR_ACCTION__SET__INIT_A//11 acction
+                ) ;
+       
+        
+          //EOF DISOPLAY  #---#---#-#---#---#-#---#---#-#---#---#-#---#---#-
 
 }

+ 20 - 149
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__display.h

@@ -1,160 +1,31 @@
 
  #include <U8g2lib.h>
- #include <Print.h>
 
 
-typedef P5__ROUTER_STRING_T P5__DISPLAY__SCREEN__LAST_T ;
+void P5__TASK__DISPLAY(
+    P5__TASK__CONFIG_T* P5__TASK__CONFIG_A,
+    P5__TASK__CONFIG__INDEX__CURRENT_T &P5__TASK__CONFIG__INDEX__CURRENT_A ,
 
-/*
-
- P5__DISPLAY__SCREEN__LAST_T p5__display__last( P5__ROUTER_STRING_T P5__ROUTER_STRING_A) {
-    static P5__DISPLAY__SCREEN__LAST_T P5__DISPLAY__SCREEN__LAST_A = P5__ROUTER_STRING_A;
-    
-    P5__ROUTER_STRING_T P5__ROUTER_STRING_A_R = P5__DISPLAY__SCREEN__LAST_A ;
-     P5__DISPLAY__SCREEN__LAST_A = P5__ROUTER_STRING_A ;
-        
-    return P5__ROUTER_STRING_A_R ;
+     P5__TASK__ATTR_T* P5__TASK__ATTR_A,
+     P5__TASK__ATTR__INDEX__CURRENT_T  &P5__TASK__ATTR__INDEX__CURRENT_A 
     
- }
-*/
-
-/*
-class p5__display__class : public U8G2LOG  { //
-    private: 
-        //U8X8_SH1106_128X64_NONAME_HW_I2C u8x8;
-        U8G2LOG u8g2log_A;
-        
-        //int    U8LOG_WIDTH_A  ;
-        //int U8LOG_HEIGHT_A;
-        //uint8_t u8log_buffer_A;
-        //int dupa_A;
-        //U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2_A;
-       
-    public: 
-           p5__display__class() :  //U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2, int U8LOG_WIDTH,int U8LOG_HEIGHT, uint8_t u8log_buffer
-           U8G2LOG{u8g2log_A} { 
-               // u8g2log_A ;
-             //   U8G2LOG u8g2log_A;
-               // begin(U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C, 
-               //     int , int , uint8_t );
-           }
-           
-           
-           bool begin(U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2, 
-                uint8_t U8LOG_WIDTH,
-                    uint8_t U8LOG_HEIGHT, 
-                        uint8_t u8log_buffer) {
-
-           
-          // begin(U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2, int U8LOG_WIDTH,int U8LOG_HEIGHT, uint8_t u8log_buffer) {
-            u8g2.begin();
-            u8g2.setFont(u8g2_font_tom_thumb_4x6_mf);	// set the font for the terminal window
-
-         //     Serial.println("PDB");
-             u8g2log_A.begin(u8g2,  U8LOG_WIDTH, U8LOG_HEIGHT, u8log_buffer); 
-             //u8g2log.begin(); 
-        //x     u8g2log_A.setLineHeightOffset(0);	// set extra space between lines in pixel, this can be negative
-        //x     u8g2log_A.setRedrawMode(0);	
-           //  u8g2log_A.print("millis=");
-//             u8g2log.print(millis());
-         //    u8g2log_A.print("\n");
-             
-              //             Serial.println("CCA");
-
-           }
+    ) {
+        //P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A
+        /* analogWrite(P5__PWM__PIN__CONF, 
+            P5__TASK___ATTR (
+                P5__TASK__CONFIG_A,
+                P5__TASK__CONFIG__INDEX__CURRENT_A ,
+                P5__TASK__ATTR_A,
+                P5__TASK__ATTR__INDEX__CURRENT_A ,
+                    P5__TASK__TYPE__ATTRIBUTE_A ,
+                    P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A
+                ) 
+           ); 
+           */
+         Serial.println("");Serial.print("PW");
 
-     //   print(char* char_A) {
-     //       u8g2log_A.print(char_A);
-     //   }
-      //  print( P5__ROUTER_STRING_T P5__ROUTER_STRING_A) : u8g2log.print(P5__ROUTER_STRING_A);
-       // void print_clock([...]); 
-     // print( P5__ROUTER_STRING_T P5__ROUTER_STRING_A) {u8g2log.print(P5__ROUTER_STRING_A);}
-     
-     // print(Print char_a ) {p5__display__class.print(char_a);}
+  }
 
-};
 
-*/
-
-void p5__display__print( 
-    U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2,
-    U8G2LOG u8g2log, 
-   /// p5__display__class p5__display__class_A,
-    P5__ROUTER_STRING_T P5__ROUTER_STRING_A
-    //char* P5__ROUTER_STRING_A
-    ) 
-    {
-    
- //   p5__display__class p5__display__class_A;
-    // p5__display__class_A.print(P5__ROUTER_STRING_A);
-  /*  u8g2.clearBuffer();         // clear the internal memory
-    u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f);  // choose a suitable font
-    u8g2.setCursor(4,29);
-    u8g2.print(P5__ROUTER_STRING_A);  // write something to the internal memory
-    u8g2.sendBuffer();
-    */
-     u8g2log.print(P5__ROUTER_STRING_A);
-    
-    }
-    
-    
 
-void p5__display__log( 
-    U8G2LOG u8g2log, 
-    char PARAM_N[3],
-    char* PARAM_V,
-    bool NEW_LINE = 0
-    ) 
-    {
-    
-    #if defined(P5__DISPLAY__DISABLE)
-    #else
-    
-          u8g2log.print(PARAM_N);
-         u8g2log.print(" ![");
-         u8g2log.print(PARAM_V);
-           u8g2log.print("] ");
-           if( NEW_LINE == 1)   u8g2log.print("\n");
-     #endif   
-    
-    }
-    
-    
-    void p5__display__log__beg( 
-    U8G2LOG u8g2log
-    ) 
-    {
-     #if defined(P5__DISPLAY__DISABLE)
-     #else
-         u8g2log.print(" [");
-     #endif
-    
-    }
-    
-    void p5__display__log__part( 
-    U8G2LOG u8g2log, 
-    String PARAM_N
-    ) 
-    {
-         #if defined(P5__DISPLAY__DISABLE)
-             #else
-            u8g2log.print("   ");
-              u8g2log.print(PARAM_N);
-             u8g2log.print(" [");
-         #endif
-    }
-    
-    
-    
-void p5__display__log__last( 
-    U8G2LOG u8g2log, 
-    bool NEW_LINE = 0
-    ) 
-    {
-         #if defined(P5__DISPLAY__DISABLE)
-         #else
-             u8g2log.print("]");
-             if( NEW_LINE == 1)   u8g2log.print(" \n");
-         #endif
-    }
     

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

@@ -1,21 +1,20 @@
 #ifndef P5__PINS__SETUP
  #define P5__PINS__SETUP
-   #include <U8g2lib.h>
+ 
 
    // typedef int P5__STATUS_T ;
 
     
     //P5__STATUS_T
      void p5__pins__setup(
-   //  U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2,
-   // U8G2LOG u8g2log, 
+   
       // p5__display__class p5__display__class_A,
      P5__STATUS_T &P5__STATUS_A
      
      ) {
         //P5__STATUS_T P5__STATUS_A ;
         #if defined(P5__PWM__PIN__CONF)
-          //     pinMode(P5__PWM__PIN__CONF, OUTPUT);  // sets the pin as output
+              pinMode(P5__PWM__PIN__CONF, OUTPUT);  // sets the pin as output
           //     analogWrite(P5__PWM__PIN__CONF, 0); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
 
         #endif

+ 103 - 14
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__pwm.h

@@ -22,30 +22,119 @@
 
 }
 */
-void P5__TASK__PW(
+void P5__TASK__PWM(
     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,
-     P5__TASK__ATTR__INDEX__CURRENT_T  &P5__TASK__ATTR__INDEX__CURRENT_A 
-      //  P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__CLASS_A,
+     P5__TASK__ATTR__INDEX__CURRENT_T  &P5__TASK__ATTR__INDEX__CURRENT_A ,
+     P5__TASK__ATTR__INDEX__CURRENT__EXEC_T  &P5__TASK__ATTR__INDEX__CURRENT__EXEC_A ,
+     P5__LATENCY_TASK_EXEC_TIME_T &P5__LATENCY_TASK_EXEC_TIME_A
+
+      // P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__CLASS_A,
       //  P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX_A,
       //  P5__TASK__TYPE__ASSOC_T P5__TASK__TYPE__ASSOC_A
     ) {
-        //P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A
-        /* analogWrite(P5__PWM__PIN__CONF, 
-            P5__TASK___ATTR (
+       // P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A
+       int P5__TASK___ATTR_R = P5__TASK___ATTR (
                 P5__TASK__CONFIG_A,
-                P5__TASK__CONFIG__INDEX__CURRENT_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__TYPE__ATTRIBUTE_A ,
-                    P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A
-                ) 
-           ); 
-           */
-         Serial.println("");Serial.print("PW");
+                P5__TASK__ATTR__INDEX__CURRENT_A , //5
+                     P5__TASK__ATTR__INDEX__CURRENT__EXEC_A ,//6
+                     P5__TASK__TYPE__ATTRIBUTE_A , //7
+                     P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A , //8 , //P5__TASK__CONFIG__NAME__INDEX_A,  // P5__TASK__TYPE__ATTRIBUTE_A ,
+
+                     P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A ,//9.5P5__TASK__TYPE__ASSOC_A// 
+                     P5__TASK__ATTR_INT__UNDEF_A , // 10 P5__TASK__ATTR_INT_A 
+                     P5__TASK__ATTR_ACCTION__SET__INIT_A//11
+                ) ;
+         int P5__TASK___ATTR_R_NEW = P5__TASK___ATTR_R ;
+         
+
+        P5__TASK__ATTR_INT_T  P5__TASK__ATTR_INT_A_SWING_R;
+        P5__TASK__ATTR_INT_A_SWING_R = 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 , //5
+                     P5__TASK__ATTR__INDEX__CURRENT__EXEC_A ,//6
+                     P5__TASK__TYPE__ATTRIBUTE_A , //7
+                       P5__TASK__CONFIG__NAME__INDEX__SWING , //8 , //P5__TASK__CONFIG__NAME__INDEX_A,  // P5__TASK__TYPE__ATTRIBUTE_A ,
+
+                     P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A ,//9.5P5__TASK__TYPE__ASSOC_A// 
+                     P5__TASK__ATTR_INT__UNDEF_A , // 10 P5__TASK__ATTR_INT_A 
+                    P5__TASK__ATTR_ACCTION__REPLY_A // P5__TASK__ATTR_ACCTION__SET__INIT_A//11
+                ) ;
+        
+            Serial.print(P5__TASK__ATTR_INT_A_SWING_R);
+            Serial.print("] ");
+            
+            //P5__TASK__ATTR_INT_A_SWING_R = P5__TASK__ATTR_INT_A_SWING_R * P5__LATENCY_TASK_EXEC_TIME_A;
+            if(P5__TASK__ATTR_INT_A_SWING_R != 0) {
+                if(( P5__TASK___ATTR_R_NEW + (P5__TASK__ATTR_INT_A_SWING_R *  P5__LATENCY_TASK_EXEC_TIME_A)) > 255) {
+                    //P5__TASK__ATTR_INT_A_SWING_R = 1;
+                    //set -
+                     Serial.print("["); Serial.print(P5__TASK__ATTR_INT_A_SWING_R); Serial.print(">-]");
+                     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__INDEX__SWING ,   
+                     P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A , //9 ref
+                     ( P5__TASK__ATTR_INT_A_SWING_R * - 1  ), //P5__TASK__ATTR_INT_A  , // 10 val P5__TASK__ATTR_INT_A 
+                        P5__TASK__ATTR_ACCTION__SET_A//11 acction
+                      ) ;
+                        //P5__TASK__ATTR_INT_A_SWING_R = P5__TASK___ATTR_R ;
+                       //  P5__TASK___ATTR_R_NEW = P5__TASK___ATTR_R ;
+                } else if(( P5__TASK___ATTR_R_NEW + (P5__TASK__ATTR_INT_A_SWING_R *  P5__LATENCY_TASK_EXEC_TIME_A)) < 1) {
+                   //set -
+                    Serial.print("[<-]");
+                    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__INDEX__SWING ,   
+                     P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A , //9 ref
+                     ( P5__TASK__ATTR_INT_A_SWING_R * - 1  ), //P5__TASK__ATTR_INT_A  , // 10 val P5__TASK__ATTR_INT_A 
+                        P5__TASK__ATTR_ACCTION__SET_A//11 acction
+                      ) ;
+                      //P5__TASK__ATTR_INT_A_SWING_R = P5__TASK___ATTR_R ;
+                      // P5__TASK___ATTR_R_NEW = P5__TASK___ATTR_R ;
+                }  else {
+                    Serial.print("[");  Serial.print(P5__TASK___ATTR_R_NEW ); 
+                       P5__TASK___ATTR_R_NEW = round((P5__TASK__ATTR_INT_A_SWING_R  *  P5__LATENCY_TASK_EXEC_TIME_A ) + P5__TASK___ATTR_R_NEW) ;
+                      Serial.print(">");   Serial.print(P5__TASK__ATTR_INT_A_SWING_R);   Serial.print(">");
+                      Serial.print(P5__TASK___ATTR_R_NEW);   Serial.print(">.");
+                        Serial.print(P5__LATENCY_TASK_EXEC_TIME_A);  Serial.print(">]");
+                      
+
+                } 
+                             //P5__TASK___ATTR_R =
+                              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 , //5
+                                  P5__TASK__ATTR__INDEX__CURRENT__EXEC_A ,//6
+                                  P5__TASK__TYPE__ATTRIBUTE_A , //7
+                                  P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A , //8 , //P5__TASK__CONFIG__NAME__INDEX_A,  // P5__TASK__TYPE__ATTRIBUTE_A ,
+             
+                                  P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A ,//9.5P5__TASK__TYPE__ASSOC_A// 
+                                  P5__TASK___ATTR_R_NEW , //P5__TASK___ATTR_R + P5__TASK__ATTR_INT_A_SWING , // 10 P5__TASK__ATTR_INT_A 
+                                  P5__TASK__ATTR_ACCTION__SET_A//11
+                             ) ;
+                      analogWrite(P5__PWM__PIN__CONF, P5__TASK___ATTR_R_NEW ); 
+                       Serial.print(" ~[");
+                     Serial.print(P5__TASK___ATTR_R_NEW );
+                     Serial.print("] ");
+            } else {
+            //not swing
+            analogWrite(P5__PWM__PIN__CONF, P5__TASK___ATTR_R); 
+             Serial.println("");Serial.print("!~[");
+             Serial.print(P5__TASK___ATTR_R_NEW);Serial.print("](");Serial.print(P5__TASK__ATTR_INT_A_SWING_R);
+             Serial.print(") ");
 
+            }
   }
 
 #endif

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

@@ -7,8 +7,15 @@
   
   typedef int P5__LIMITS_T;
   
-  
-  
+  typedef int P5__LATENCY_T; //FOR TIMESLOTS
+  typedef P5__LATENCY_T P5__LATENCY_TASK_EXEC_TIME_T ;
+  typedef unsigned long P5__LATENCY_TIMESTAMP_T ;
+  typedef P5__LATENCY_T P5__LATENCY_TASK_EXEC_TICKS_T ;
+  typedef P5__LATENCY_T P5__LATENCY_TASK_EXEC_TICK_T ;
+    
+    const P5__LATENCY_TASK_EXEC_TICK_T P5__LATENCY_TASK_EXEC_TICK_A = 100 ;
+    static P5__LATENCY_TASK_EXEC_TICKS_T P5__LATENCY_TASK_EXEC_TICKS_A = 0; //initial
+    static P5__LATENCY_TASK_EXEC_TIME_T P5__LATENCY_TASK_EXEC_TIME_A = 1 ; //initial
   typedef int P5__TASK_T;
   typedef P5__TASK_T P5__TASK__TYPE_T;
   
@@ -20,7 +27,7 @@
   const P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__REFERENCE    = 2;
   const P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__PARENT = 3;
   const P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__SEQUENCE = 4;
-  const P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__ELEMENT = 5;
+  const P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__ELEMENT_A = 5;
   const P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__TYPE = 6;
   const P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__GROUP = 7;
 
@@ -30,13 +37,31 @@
   //typedef char P5__TASK__CONFIG__NAME_T[3] ; //nazwa elementu
   
   typedef P5__ARRAY__INDEX_T P5__TASK__TYPE__ASSOC_T ; //do asscc
+  const P5__TASK__TYPE__ASSOC_T P5__TASK__TYPE__ASSOC__UNDEFINED_A = 0;
   //typedef  P5__TASK__TYPE__ASSOC_T 
   
   
   typedef int P5__TASK__CONFIG__NAME__INDEX_T ; //todo expand
-  const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX__PW = 1 ; //pwm
-  const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX__SW = 2 ; //swing
+  const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX__PWM = 1 ; //pwm
+      const char *P5__TASK__CONFIG__NAME__INDEX__PWM__DISPLAY_NAME  = "PWM" ; //pwm
+
+  const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX__SWING = 2 ; //swing
+        const char *P5__TASK__CONFIG__NAME__INDEX__SWING__DISPLAY_NAME  = "SWING" ; //SWING
+
   const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A = 3 ; //swing
+  const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX__DISPLAY_A = 4 ; //P5__TASK__TYPE__ELEMENT
+            const char *P5__TASK__CONFIG__NAME__INDEX__DISPLAY__DISPLAY_NAME  = "DISPLAY" ; //SWING
+
+    const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED = 5 ;  //TODO ZGLOSZENIE GDZIES CZEGOS
+
+    const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED_X_MIN_A = 6 ;  //TODO ZGLOSZENIE GDZIES CZEGOS
+    const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED_X_MAX_A = 7 ;  //TODO ZGLOSZENIE GDZIES CZEGOS
+    const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED_Y_MIN_A = 8 ;  //TODO ZGLOSZENIE GDZIES CZEGOS
+    const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED_Y_MAX_A = 9 ;  //TODO ZGLOSZENIE GDZIES CZEGOS
+    const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED__CURSOR__X_A = 10;  //TODO ZGLOSZENIE GDZIES CZEGOS
+    const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED__CURSOR__Y_A = 11;  //TODO ZGLOSZENIE GDZIES CZEGOS
+    const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED__CURSOR__X__SIZE_A = 12;  //TODO ZGLOSZENIE GDZIES CZEGOS
+    const P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__ATTRIBUTE__DISPLAY__ASSIGNED__CURSOR__Y__SIZE_A = 13;  //TODO ZGLOSZENIE GDZIES CZEGOS
 
   
   struct P5__TASK__CONFIG_S {
@@ -51,11 +76,19 @@
   const P5__LIMITS_T P5__TASK__CONFIG__LIMIT = 20;
   
    typedef P5__ARRAY__INDEX_T   P5__TASK__CONFIG__INDEX__CURRENT_T ;
+      typedef P5__TASK__CONFIG__INDEX__CURRENT_T P5__TASK__CONFIG__INDEX__CURRENT__EXEC_T ;
+
    static P5__TASK__CONFIG__INDEX__CURRENT_T  P5__TASK__CONFIG__INDEX__CURRENT_A = 2;
- 
- 
- 
+   static P5__TASK__CONFIG__INDEX__CURRENT__EXEC_T  P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A = 2;
+   
+  typedef int P5__TASK__ATTR_ACCTION_T ;
+  const P5__TASK__ATTR_ACCTION_T P5__TASK__ATTR_ACCTION__REPLY_A = 1 ;
+  const P5__TASK__ATTR_ACCTION_T P5__TASK__ATTR_ACCTION__SET__INIT_A   = 2 ;
+  const P5__TASK__ATTR_ACCTION_T P5__TASK__ATTR_ACCTION__SET_A = 3 ;
+  const P5__TASK__ATTR_ACCTION_T P5__TASK__ATTR_ACCTION__REPLY_LIST = 4 ; //todo
+
   typedef int P5__TASK__ATTR_INT_T ;
+  const P5__TASK__ATTR_INT_T P5__TASK__ATTR_INT__UNDEF_A = 0 ;
  // typedef P5__TASK__ATTR_INT_T  P5__TASK__ATTR_INT_STAT_T ;
  
    struct P5__TASK__ATTR_S {
@@ -71,15 +104,36 @@
    static P5__TASK__ATTR_T P5__TASK__ATTR_A[P5__TASK__ATTR__LIMIT];
     
     typedef P5__ARRAY__INDEX_T   P5__TASK__ATTR__INDEX__CURRENT_T ;
-   static P5__TASK__ATTR__INDEX__CURRENT_T  P5__TASK__ATTR__INDEX__CURRENT_A = 2;
+    typedef P5__TASK__ATTR__INDEX__CURRENT_T  P5__TASK__ATTR__INDEX__CURRENT__EXEC_T ;
 
+   static P5__TASK__ATTR__INDEX__CURRENT_T  P5__TASK__ATTR__INDEX__CURRENT_A = 2;
+   static  P5__TASK__ATTR__INDEX__CURRENT__EXEC_T  P5__TASK__ATTR__INDEX__CURRENT__EXEC_A = 2;
   //todo to init
  // P5__TASK__CONFIG_T P5__TASK__CONFIG_A;
   
  // P5__TASK__CONFIG_A[P5__TASK__CONFIG__LIMIT] = {} ;
   
+  
+  typedef unsigned long   P5__TASK__CACHED__VALID__MILLIS_T ;
  static   P5__TASK__CONFIG_T P5__TASK__CONFIG_A[P5__TASK__CONFIG__LIMIT] = {} ;
 
+  struct P5__TASK__CACHED_S { //wycacheowana struktura, odbudowywana -child do parenta?
+     P5__TASK__CONFIG__INDEX__CURRENT_T P5__TASK__CONFIG__INDEX__CURRENT_A ;
+     P5__TASK__ATTR__INDEX__CURRENT_T  P5__TASK__ATTR__INDEX__CURRENT_A ;
+     P5__TASK__CACHED__VALID__MILLIS_T P5__TASK__CACHED__VALID__MILLIS_A ;
+  }; //TODO
+   typedef P5__TASK__CACHED_S P5__TASK__CACHED_T ;
+   
+     const P5__LIMITS_T  P5__TASK__CACHED__LIMIT = 10;
+   
+   static P5__TASK__CACHED_T P5__TASK__CACHED_A[ P5__TASK__CACHED__LIMIT];
+  
+   
+    typedef P5__ARRAY__INDEX_T   P5__TASK__CACHED__INDEX__CURRENT_T ;
+    typedef  P5__TASK__CACHED__INDEX__CURRENT_T   P5__TASK__CACHED__INDEX__CURRENT__EXEC_T ;
+   static P5__TASK__CACHED__INDEX__CURRENT_T  P5__TASK__CACHED__INDEX__CURRENT_A = 2;
+   static P5__TASK__CACHED__INDEX__CURRENT__EXEC_T P5__TASK__CACHED__INDEX__CURRENT__EXEC_A = 2 ; 
+   
  //static   P5__TASK__CONFIG_T P5__TASK__CONFIG_A[10] = {
  //   {"PW" , P5__TASK__TYPE__ROOT }
  //} ;

+ 51 - 30
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/___P5_LIB/p5__task.h

@@ -16,30 +16,29 @@ void p5__task__config__init(P5__TASK__CONFIG_T* P5__TASK__CONFIG_A) {
 
 
 
-void p5__task__config__set(
-   // U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2,
-   // U8G2LOG u8g2log, 
+void p5__task__config__set( //not icrement
+  
     P5__TASK__CONFIG_T* P5__TASK__CONFIG_A,
-    P5__ARRAY__INDEX_T P5__ARRAY__INDEX_A ,
-   
+     P5__TASK__CONFIG__INDEX__CURRENT_T  &P5__TASK__CONFIG__INDEX__CURRENT_A ,
      P5__TASK__TYPE__CLASS_T P5__TASK__TYPE__CLASS_A,
       P5__TASK__CONFIG__NAME__INDEX_T P5__TASK__CONFIG__NAME__INDEX_A ,// P5__TASK__CONFIG__NAME_T P5__TASK__CONFIG__NAME_A,
      P5__TASK__TYPE__ASSOC_T P5__TASK__TYPE__ASSOC_A
      ) {
 
          Serial.println(" SS ");
-         if(P5__ARRAY__INDEX_A == 1) {
+         if(P5__TASK__CONFIG__INDEX__CURRENT_A == 1) {
           //todo err
          } else {
        
          
             // strcpy(  P5__TASK__CONFIG_A[P5__ARRAY__INDEX_A].P5__TASK__CONFIG__NAME_A, P5__TASK__CONFIG__NAME_A );
-                Serial.println(" MC ");
-           
+                Serial.println(""); Serial.print(" MC#[");
+                Serial.print(P5__TASK__CONFIG__INDEX__CURRENT_A);Serial.print(" = ");
+                Serial.print(P5__TASK__TYPE__CLASS_A);Serial.print("]");
       
-               P5__TASK__CONFIG_A[P5__ARRAY__INDEX_A].P5__TASK__TYPE__CLASS_A =   P5__TASK__TYPE__CLASS_A;// P5__TASK__TYPE__CLASS_A ;
-               P5__TASK__CONFIG_A[P5__ARRAY__INDEX_A].P5__TASK__CONFIG__NAME__INDEX_A =   P5__TASK__CONFIG__NAME__INDEX_A;// P5__TASK__TYPE__CLASS_A ;
-               P5__TASK__CONFIG_A[P5__ARRAY__INDEX_A].P5__TASK__TYPE__ASSOC_A = P5__TASK__TYPE__ASSOC_A;// P5__TASK__TYPE__CLASS_A ;
+               P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT_A].P5__TASK__TYPE__CLASS_A =   P5__TASK__TYPE__CLASS_A;// P5__TASK__TYPE__CLASS_A ;
+               P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT_A].P5__TASK__CONFIG__NAME__INDEX_A =   P5__TASK__CONFIG__NAME__INDEX_A;// P5__TASK__TYPE__CLASS_A ;
+               P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT_A].P5__TASK__TYPE__ASSOC_A = P5__TASK__TYPE__ASSOC_A;// P5__TASK__TYPE__CLASS_A ;
 
                    
         
@@ -53,46 +52,68 @@ void p5__task__config__set(
 
 
 void p5__task__loop__run(
-   // U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2,
-   //    U8G2LOG u8g2log,
+  
      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, 
-     P5__TASK__ATTR__INDEX__CURRENT_T  &P5__TASK__ATTR__INDEX__CURRENT_A 
+     P5__TASK__ATTR__INDEX__CURRENT_T  &P5__TASK__ATTR__INDEX__CURRENT_A ,
+      P5__TASK__ATTR__INDEX__CURRENT__EXEC_T  &P5__TASK__ATTR__INDEX__CURRENT__EXEC_A ,
+      P5__LATENCY_TASK_EXEC_TIME_T &P5__LATENCY_TASK_EXEC_TIME_A
     ) {
-        
-         Serial.println("");
-                  Serial.print(" TR[");Serial.print(P5__TASK__CONFIG__INDEX__CURRENT_A );
-                        Serial.print("]");
-        delay(100);
-        
-        
+        #if (P5__DEBUG > 2)
+                 Serial.println("");
+                          Serial.print(" TR[");Serial.print(P5__TASK__CONFIG__INDEX__CURRENT_A );
+                                Serial.print("][");
+                                Serial.print(P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A  );
+                                 Serial.print("]#[");
+                                   Serial.print(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A  ].P5__TASK__CONFIG__NAME__INDEX_A);
+                                 Serial.print("]$[");
+                                Serial.print(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A  ].P5__TASK__TYPE__CLASS_A);
+                                 Serial.print("] ");
+                delay(100);
+                
+        #endif
        //for(P5__ARRAY__INDEX_T i = 1; i++ ; i<P5__TASK__CONFIG__LIMIT) {
        
        //}
        
-       if(P5__TASK__CONFIG__INDEX__CURRENT_A  == 1) {
+       if(P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A   == 1) {
             //ERROR todo
-       }   else  if(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT_A ].P5__TASK__CONFIG__NAME__INDEX_A == P5__TASK__CONFIG__NAME__INDEX__PW  ) {
-                Serial.print("_PW>");
-                P5__TASK__PW(P5__TASK__CONFIG_A,  P5__TASK__CONFIG__INDEX__CURRENT_A , P5__TASK__ATTR_A, P5__TASK__ATTR__INDEX__CURRENT_A );
-       }  else  if(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT_A ].P5__TASK__CONFIG__NAME__INDEX_A == P5__TASK__CONFIG__NAME__INDEX__SW) {
-            Serial.print("_SW>");
+       }   else  if(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A  ].P5__TASK__CONFIG__NAME__INDEX_A == P5__TASK__CONFIG__NAME__INDEX__PWM  ) {
+               Serial.print(String(P5__TASK__CONFIG__NAME__INDEX__PWM__DISPLAY_NAME ));
+                P5__TASK__PWM(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__LATENCY_TASK_EXEC_TIME_A);
+       }   else  if(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A ].P5__TASK__CONFIG__NAME__INDEX_A == P5__TASK__CONFIG__NAME__INDEX__DISPLAY_A ) {
+             Serial.print(String(P5__TASK__CONFIG__NAME__INDEX__DISPLAY__DISPLAY_NAME )); 
+               // P5__TASK__DISPLAY(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 );
+       }   else  if(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A  ].P5__TASK__CONFIG__NAME__INDEX_A == P5__TASK__CONFIG__NAME__INDEX__SWING) {
+            Serial.print(P5__TASK__CONFIG__NAME__INDEX__SWING__DISPLAY_NAME );
        
       }  else {
+      
+              #if (P5__DEBUG > 3)
                    P5__STATUS_T P5__STATUS_A = "TSK ?";
                    Serial.print(" TE ");
                     Serial.print(P5__TASK__CONFIG__INDEX__CURRENT_A );
+                    Serial.print("/");
+                     Serial.print(P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A );
                     Serial.print("C=");
                      
-                      Serial.print(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT_A ].P5__TASK__TYPE__CLASS_A);
+                      Serial.print(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A ].P5__TASK__TYPE__CLASS_A);
                       Serial.print(" N =");
-                      Serial.print(String(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT_A ].P5__TASK__CONFIG__NAME__INDEX_A));
+                      Serial.print(String(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A ].P5__TASK__CONFIG__NAME__INDEX_A));
                     
                  //  P5__STATUS_A.concat(String(P5__ARRAY__INDEX_A ));
                 //   p5__router__status__final__string( u8g2, u8g2log, P5__STATUS_A );
-       
+                #endif
        }
         
+        //now run attrs
+        
+        
+        
 }
 

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

@@ -1,8 +1,62 @@
+   
+  if(P5__LATENCY_TASK_EXEC_TICKS_A == 0) {
+  } else if(P5__LATENCY_TASK_EXEC_TICKS_A < 2)  {
    delay(100);
+   }
+          if(P5__TASK__CONFIG_A[P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A ].P5__TASK__CONFIG__NAME__INDEX_A == P5__TASK__CONFIG__NAME__INDEX__DISPLAY_A  ) {
+                    
+                    
+                             u8g2.setCursor(3,10);
+                             u8g2.print(P5__TASK__CONFIG__NAME__INDEX__DISPLAY__DISPLAY_NAME);
+                               u8g2.sendBuffer();		
+                             Serial.print(P5__TASK__CONFIG__NAME__INDEX__DISPLAY__DISPLAY_NAME);	
+                             int DISPLAY__ASSIGNED_X_MAX_A = 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__DISPLAY__ASSIGNED_X_MAX_A, //P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A , //5 , //P5__TASK__CONFIG__NAME__INDEX_A,  // P5__TASK__TYPE__ATTRIBUTE_A ,
+                                                P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, //6
+                                                P5__TASK__ATTR_INT__UNDEF_A , // 6 P5__TASK__ATTR_INT_A 
+                                                P5__TASK__ATTR_ACCTION__REPLY_A// P5__TASK__ATTR_ACCTION__SET__INIT_A
+                                           ) ;
+                                       Serial.print("X["); 
+                                       Serial.print(String(DISPLAY__ASSIGNED_X_MAX_A) );    Serial.print("] "); 
+                                int DISPLAY__ASSIGNED_Y_MAX_A = 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__DISPLAY__ASSIGNED_Y_MAX_A, //P5__TASK__CONFIG__NAME__ATTRIBUTE__STATUS__OUTPUT__LEVEL_A , //5 , //P5__TASK__CONFIG__NAME__INDEX_A,  // P5__TASK__TYPE__ATTRIBUTE_A ,
+                                                P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A, //6
+                                                P5__TASK__ATTR_INT__UNDEF_A , // 6 P5__TASK__ATTR_INT_A 
+                                                P5__TASK__ATTR_ACCTION__REPLY_A// P5__TASK__ATTR_ACCTION__SET__INIT_A
+                                           ) ;
+                                       Serial.print("Y["); 
+                                       Serial.print(String(DISPLAY__ASSIGNED_Y_MAX_A) );    Serial.print("] ");        
+                                        
+                    #if defined(HAS_u8g2)
+                    
+                    #endif  
+                    // P5__TASK__PW(P5__TASK__CONFIG_A,  P5__TASK__CONFIG__INDEX__CURRENT_A , P5__TASK__ATTR_A, P5__TASK__ATTR__INDEX__CURRENT_A );
+            } 
+    
     p5__task__loop__run(
-    //u8g2,u8g2log,
-    P5__TASK__CONFIG_A , P5__TASK__CONFIG__INDEX__CURRENT_A , P5__TASK__ATTR_A, P5__TASK__ATTR__INDEX__CURRENT_A ) ; //todo ind next
-    P5__TASK__CONFIG__INDEX__CURRENT_A ++ ;
-    if( P5__TASK__CONFIG__INDEX__CURRENT_A > P5__TASK__CONFIG__LIMIT) {
-         P5__TASK__CONFIG__INDEX__CURRENT_A = 2;
+    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__LATENCY_TASK_EXEC_TIME_A
+     ) ; //todo ind next
+   
+   
+    
+   
+    P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A ++ ;
+    if( P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A > P5__TASK__CONFIG__LIMIT) {
+        P5__TASK__CONFIG__INDEX__CURRENT__EXEC_A = 2;
+        P5__LATENCY_TASK_EXEC_TIME_A = round( P5__LATENCY_TASK_EXEC_TICK_A * P5__LATENCY_TASK_EXEC_TICKS_A/100) ;
+        P5__LATENCY_TASK_EXEC_TICKS_A = 1 ;
+          Serial.println();	
+          Serial.print(" NX[£"); Serial.print(P5__LATENCY_TASK_EXEC_TIME_A);Serial.print("] ");	
     }

+ 28 - 66
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/testing_pwm_amp/testing_pwm_amp.ino

@@ -1,10 +1,11 @@
 
 #include <Arduino.h>
 #include <U8g2lib.h>
+#define HAS_u8g2
 
-#define P5__DISPLAY__DISABLE
-#define P5__DEBUG 
-
+//#define P5__DISPLAY__DISABLE
+#define P5__DEBUG 0
+#define DISABLE_u8g2log
 #define Active_ControllerID 0x20
 
 //#include <StandardCplusplus.h>
@@ -29,7 +30,6 @@
 #include "___P5_LIB/p5__task.h"
 
 
-#define HAS_u8g2
 
 #include <Arduino.h>
 #include <U8g2lib.h>
@@ -46,21 +46,6 @@
 
 #if defined(HAS_u8g2)
 U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); 
-//u8g2_uint_t offset;			// current offset for the scrolling text
-//u8g2_uint_t width;			// pixel width of the scrolling text (must be lesser than 128 unless U8G2_16BIT is defined
-//char *text ;
-//const char *text = "U8g2 ";
-//AA U8G2LOG u8g2log;
-U8G2LOG u8g2log;
-
-#define  U8LOG_WIDTH 32 // 15 //32
-//uint8_t U8LOG_WIDTH = U8LOG_WIDTH_D ;
-
-#define U8LOG_HEIGHT  10  // 4 //10 
-//uint8_t U8LOG_HEIGHT = U8LOG_HEIGHT_D ;
-//uint8_t u8log_buffer[U8LOG_WIDTH_D*U8LOG_HEIGHT_D];
-uint8_t u8log_buffer[U8LOG_WIDTH*U8LOG_HEIGHT];
-
 
 //p5__display__class p5__display__class_A(u8g2,U8LOG_WIDTH, U8LOG_HEIGHT , u8log_buffer ) ;
 //p5__display__class p5__display__class_A ;
@@ -79,53 +64,35 @@ uint8_t u8log_buffer[U8LOG_WIDTH*U8LOG_HEIGHT];
 
    
 
-   #if defined(HAS_u8g2)
-    #if defined(HAS_u8g2__ROTATED)
+
+  #if defined(HAS_u8g2)
+  
+     #if defined(HAS_u8g2__ROTATED)
       u8g2.setDisplayRotation(U8G2_R2);
     # elif defined( HAS_NOT_u8g2__ROTATED)
       #else 
         
     #endif
-//B   u8g2.begin();
-  //  u8g2log.begin(u8g2, U8LOG_WIDTH, U8LOG_HEIGHT, u8log_buffer);
- // u8g2log.setLineHeightOffset(0);	// set extra space between lines in pixel, this can be negative
- // u8g2log.setRedrawMode(0);		// 0: Update screen with newline, 1: Update screen for every char  
-   
-   
-   #endif
-
-
-  #if defined(HAS_u8g2)
-  // u8g2.clearBuffer();         // clear the internal memory
-  // u8g2.setFont(u8g2_font_helvR10_tf);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
-   //u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f);  // choose a suitable font
- //B u8g2.setFont(u8g2_font_tom_thumb_4x6_mf);	// set the font for the terminal window
-
-
- // u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f);	// set the target font to calculate the pixel width
-  //width = u8g2.getUTF8Width(text);		// calculate the pixel width of the text
- //p5__display__class_A.begin(u8g2,U8LOG_WIDTH, U8LOG_HEIGHT , u8log_buffer ) ;
     u8g2.begin();  
-  
-    u8g2.setFont(u8g2_font_tom_thumb_4x6_mf  //u8g2_font_amstrad_cpc_extended_8f//u8g2_font_tom_thumb_4x6_mf);	// set the font for the terminal window
-                );
-    u8g2log.begin(u8g2, U8LOG_WIDTH, U8LOG_HEIGHT, u8log_buffer);
-    u8g2log.setLineHeightOffset(0);	// set extra space between lines in pixel, this can be negative
-    u8g2log.setRedrawMode(0);		// 0: Update screen with newline, 1: Update screen for every char  
-  //  u8g2log.print("\f  TEST55 \n");	
+   
+         u8g2.clearBuffer();         
+          u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f//u8g2_font_tom_thumb_4x6_mf);	// set the font for the terminal window
+                     );
+         u8g2.drawStr(4,29," SX");
+         // u8g2.print ("SX");
+         u8g2.sendBuffer();	
+    
+    //  u8g2log.print("\f  TEST55 \n");	
       Serial.print(" SB ");
        
        
-        #if defined(P5__DISPLAY__DISABLE)
-            u8g2log.print("\f 5__DISPLAY__DISABLE \n");	
-         #else
-        #endif
+       
     //   p5__display__log__beg(u8g2log);
     //     u8g2log.print(" SB ");
         
        //  p5__display__log__last(u8g2log,1);
     
-    delay(2000);
+     delay(2000);
    #endif
 
         
@@ -136,7 +103,7 @@ uint8_t u8log_buffer[U8LOG_WIDTH*U8LOG_HEIGHT];
 
            p5__pins__setup( P5__STATUS_A);
              Serial.print("33");
-                 p5__config__individual__init(P5__TASK__CONFIG_A);
+                 p5__config__individual__init(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 );
             Serial.print("44");
 
     }
@@ -145,19 +112,23 @@ uint8_t u8log_buffer[U8LOG_WIDTH*U8LOG_HEIGHT];
     
 unsigned long t = 0;
 unsigned long t_timestamp = 0;
-
+P5__LATENCY_TIMESTAMP_T P5__LATENCY_TASK_EXEC_TIME_TIMESTAMP_A = 0;
     
 void loop(void) {
    
  #include "___P5_LIB/p5__task__loop.h"
 
   // delay(100);
-   
+   if(P5__LATENCY_TASK_EXEC_TIME_TIMESTAMP_A < millis() ) {
+        P5__LATENCY_TASK_EXEC_TIME_TIMESTAMP_A = millis() +  P5__LATENCY_TASK_EXEC_TICK_A ;
+        P5__LATENCY_TASK_EXEC_TICKS_A ++ ;
+   }
  
     if ( t < millis() ) {
     t = millis() + 300000;			// every 15 seconds
    // p5__display__print(u8g2,u8g2log, "\f");			// \f = form feed: clear the screen
-    u8g2log.print("\f");	
+         
+      Serial.println(" T1 ");	
   }
   
   
@@ -167,17 +138,8 @@ void loop(void) {
     // u8g2log.print("t2[");
      //  u8g2log.print(millis()); //todo  type class; p5__display__print(u8g2,u8g2log,millis());
        // u8g2log.print("]\n"); //todo class type \n
-            Serial.println(" Ti");	
-             
-                u8g2log.print(" Ti ");
-                 #if defined(P5__DISPLAY__DISABLE)
-                #else
-                 p5__display__log__beg(u8g2log);
-                #endif
+            Serial.print(" Ti");	
                 
-                u8g2log.print(millis());
-               p5__display__log__last(u8g2log,0);
-                u8g2log.print("\n");
   }