a.binder 5 лет назад
Родитель
Сommit
1f36587edb
20 измененных файлов с 271 добавлено и 387 удалено
  1. 6 4
      SE/stuff/P5_Automation_can-dev-res-working-1930/P5_Automation_can-dev-res-working-1930.ino
  2. 37 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/TASK_TYPE_T_Set_Port_Smooth_forward__.h
  3. 2 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/_CAN/_CAN_func.h
  4. 38 21
      SE/stuff/P5_Automation_can-dev-res-working-1930/_DISPLAY_func.h
  5. 20 259
      SE/stuff/P5_Automation_can-dev-res-working-1930/_LCD1602_func.h
  6. 17 85
      SE/stuff/P5_Automation_can-dev-res-working-1930/_LCD1602_struct.h
  7. 10 4
      SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_I2C_func.h
  8. 48 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_I2C_func_PHYSICAL_PORT_SERVO.h
  9. 5 3
      SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_Status_QUEUE_add_func.h
  10. 24 1
      SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_Status_QUEUE_func.h
  11. 12 1
      SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_Status_func.h
  12. 6 1
      SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_Status_struct.h
  13. 5 3
      SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_broadcast_func.h
  14. 5 3
      SE/stuff/P5_Automation_can-dev-res-working-1930/_TASK_TYPES_func.h
  15. 4 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/_TASK_TYPES_struct.h
  16. 1 1
      SE/stuff/P5_Automation_can-dev-res-working-1930/___CONFIG/0x35/config_Active_ControllerID_0x35.h
  17. 26 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___CONFIG/0x35/config_Slave_Ports_LOCAL_0x35_init.h
  18. 1 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___loop/__main_loop_end.h
  19. 3 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___main/__main_struct.h
  20. 1 1
      SE/stuff/P5_Automation_can-dev-res-working-1930/___main/__main_struct_limits.h

+ 6 - 4
SE/stuff/P5_Automation_can-dev-res-working-1930/P5_Automation_can-dev-res-working-1930.ino

@@ -151,6 +151,8 @@ etc. To deactivate the Serial printing, define the macro empty:
 
 */
 
+const int DISPLAY_MENU_A__PROGMEM_CONSOLE_PRINT = 3 ;
+
 
 #include "progmem.h"
 
@@ -359,6 +361,7 @@ etc. To deactivate the Serial printing, define the macro empty:
 
 #include "_Slave_Ports_ttl_decrement_func.h"
 #include "_Slave_Ports_broadcast_func.h"
+#include "TASK_TYPE_T_Set_Port_Smooth_forward__.h"
 #include "_Slave_Ports_I2C_func.h"
 #include "_Slave_Ports_action_func.h"
 
@@ -371,6 +374,7 @@ etc. To deactivate the Serial printing, define the macro empty:
 #include "_CAN/_CAN_func.h"
 
 
+
   #include "_Slave_Ports.h"
  // #include "_Slave_Ports_ttl_decrement_POP.h"
   // #define _CAN_P_0x102_PWM0x00_0 { _Slave1_ID , "PWM", 0x00, 0 } 
@@ -436,16 +440,14 @@ etc. To deactivate the Serial printing, define the macro empty:
 
 
 
+
+
 #include "___main/__main_init.h"
 
  #ifdef DISABLE_LOOP 
         #include "___DEBUG/___DEBUG_DISABLE_INIT.h"
     #endif
 
-
-
-
-
  #include "scan.h"
 
 void setup() {  //REMEMBER NOT INITIALIZE ANY VARIABLES OR ARRAYS

+ 37 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/TASK_TYPE_T_Set_Port_Smooth_forward__.h

@@ -0,0 +1,37 @@
+void TASK_TYPE_T_Set_Port_Smooth_forward__POP( 
+ //maintain tasks
+    Slave_Ports_Status_QUEUE_T*  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
+    int _Slave_Ports_queue_pop ,  
+    Slave_Ports_Status_T* Slave_Ports_Status_A,
+     Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T  &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
+      //display
+        DISPLAY_T* DISPLAY_A ,
+        DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
+        DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, 
+            DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
+            DISPLAY_array16_T DISPLAY_array16_A,
+            DISPLAY_TARGET_T DISPLAY_TARGET_A,
+            time_seq_id_T time_seq_id_A,
+            time_min_run_T time_min_run_A
+        //tasks
+        ,TASK_TYPE_T TASK_TYPE_A,
+        TASK_PORT_ASSOC_T &TASK_PORT_ASSOC_A   , 
+        Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A) {
+        
+        if(TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX) {
+                SPFTFTFT2(task,smooth,delta,TASK_PORT_ASSOC_A.Exp_state_level_NEW_DELTA_A );
+                
+                 Slave_Ports_action_func(Slave_Ports_Status_QUEUE_A,  Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_A ,
+                                                            Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_request_set_new_Exp_state ,
+                                                            TASK_PORT_ASSOC_A,
+                                                            time_seq_id_A, time_min_run_A,  ARDUINO_ARRAY_INDEX_NOT_SET ,  
+                                                            Exp_state_ON_USE_LEVEL ,
+                                                                //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A
+                                                                Slave_Ports_Status_A[TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX].Exp_state_level_A
+                                                                + TASK_PORT_ASSOC_A.Exp_state_level_NEW_DELTA_A   
+                                                           );
+        } else {SPFTFT2(error,smooth,32);}
+        
+        
+        }
+        

+ 2 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/_CAN/_CAN_func.h

@@ -82,6 +82,7 @@ void CAN_READ(
                                                                        0 , //int I2C_port,
                                                                        0 ,//int I2C_driver
                                                                        IS_Local_FALSE , Exp_state_level_INIT,
+                                                                       "", //Port_ID_DESCR_T
                                                                        0, 0
                                                                        );
                                 } else if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_request_confirm_Exp_state ) { // if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_Slave_Ports_broadcast____)
@@ -116,6 +117,7 @@ void CAN_READ(
                                                                        0 , //int I2C_port,
                                                                        0 ,//int I2C_driver
                                                                        IS_Local_FALSE ,CAN_MSG8_BIT_7_A,
+                                                                        "", //Port_ID_DESCR_T
                                                                        0, 0
                                                                        );
                                 

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

@@ -767,28 +767,43 @@ void DISPLAY_MENU_SELECTOR(DISPLAY_T* DISPLAY_A ,
                              if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A < 254) {
                                    int overload;
                                    overload = 1 ;
-                                    SPFTFT2(millis,debug,748);
-                                   if(encoderPos_t < millis() ) {
-                                        encoderPos_t = millis() + 1000 ;
-                                        encoderPos_t1 = millis() + 500 ;
-                                        encoderPos_t2 = millis() + 250 ;
-                                   } else if(encoderPos_t1 < millis()   ) {
-                                    SPL();
-                                    SPFT2(overload,500);
-                                    overload = 2;
-                                   } else if(encoderPos_t2 < millis()  ) {
-                                    SPL();
-                                    SPFT2(overload,250);
-                                    overload = 4 ;
-                                        TASK_PORT_ASSOC_T TASK_PORT_ASSOC_SMOOTH_A ;
+                                    TASK_PORT_ASSOC_T TASK_PORT_ASSOC_SMOOTH_A ;
                                         TASK_PORT_ASSOC_SMOOTH_A.Slave_Ports_Status_T_INDEX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A ;
-                                        _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,  // + ARDUINO_time_seq_id_A_INCREMENT 
-                                        TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 2500, ARDUINO_ARRAY_INDEX_NOT_SET) ;
-                                   } else  { 
-                                     SPFT2(overload, encoderPos_t - millis());
-                                   }
-                                    
-                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A += 5 * abs(DISPLAY_MENU_SELECTOR_oldEncPos_A - DISPLAY_MENU_SELECTOR_encoderPos_A) * overload; //+;
+                                        TASK_PORT_ASSOC_SMOOTH_A.Exp_state_level_NEW_DELTA_A = 5;         
+                                    SPL();SPFTFT2(millis,debug,748);
+                                        if(encoderPos_t < millis() ) {
+                                             SPFT2(overload,1000);SP(encoderPos_t - millis());
+                                             encoderPos_t = millis() + 1000 ;
+                                             encoderPos_t1 = millis() + 500 ;
+                                             encoderPos_t2 = millis() + 250 ;
+                                            _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,  TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 100, ARDUINO_ARRAY_INDEX_NOT_SET) ;
+
+                                        } else if(encoderPos_t1 < millis()   ) {
+                                         SPL();
+                                         SPFT2(overload,500);SP(encoderPos_t - millis());
+                                             encoderPos_t = millis() + 1000 ;
+                                             encoderPos_t1 = millis() + 500 ;
+                                             encoderPos_t2 = millis() + 250 ;
+                                                                              
+                                             _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,  TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 100, ARDUINO_ARRAY_INDEX_NOT_SET) ;
+                                             _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,  TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 200, ARDUINO_ARRAY_INDEX_NOT_SET) ;
+                                        } else if(encoderPos_t2 < millis()  ) {
+                                         SPL();
+                                         SPFT2(overload,250);SP(encoderPos_t - millis());
+                                             encoderPos_t = millis() + 1000 ;
+                                             encoderPos_t1 = millis() + 500 ;
+                                             encoderPos_t2 = millis() + 250 ;
+                                                                                    
+                                             _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 50, ARDUINO_ARRAY_INDEX_NOT_SET) ;
+                                             _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 75, ARDUINO_ARRAY_INDEX_NOT_SET) ;
+                                             _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 100, ARDUINO_ARRAY_INDEX_NOT_SET) ;
+                                             _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 125, ARDUINO_ARRAY_INDEX_NOT_SET) ;
+                                             _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 150, ARDUINO_ARRAY_INDEX_NOT_SET) ;
+                                        } else  { 
+                                          SPFT2(overload,0); SP(encoderPos_t - millis());
+                                        }
+                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A ;
+                                    DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A += 2  ; //+;
                                     if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A >254) DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = 254;
                                     TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={0,0,DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A};
                                     Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A ;
@@ -877,3 +892,5 @@ void DISPLAY_MENU_SELECTOR(DISPLAY_T* DISPLAY_A ,
         
 
 #endif
+
+

+ 20 - 259
SE/stuff/P5_Automation_can-dev-res-working-1930/_LCD1602_func.h

@@ -1,266 +1,27 @@
 
 
-void LCD_print_background_add(_LCD_print_bufforT* _LCD_print_buffors, int screenID, int cursor1, int cursor2, char character ,long time_seq_id, long time_min_run ) {
-  //time_seq_id - used to maintain single display context
-  //time_max - used to how much time to keep in displayed text
- // Serial.println("  runned LCD_print_background_screen_add bbuf:  ");
-     // Serial.print(sizeof(_LCD_print_buffors));
-       Serial.print("CB:");
-      int curr_buf_ind;
-      int i ;
-       for(i=1;i<=100;i++) {
-          if(_LCD_print_buffors[i].screenID<=0) {
-            Serial.print("i<=0[");   Serial.print(i);   Serial.print("]");  
-            curr_buf_ind = i; 
-            //if(_LCD_print_buffors[i + 1].screenID<=0)
-            break;
-          }
-       }
-              Serial.print(curr_buf_ind);   Serial.print(".  ");
-//char b = character.charAt(0); 
-   Serial.print(" added lcd buf at ind "); Serial.println(curr_buf_ind );
-   int b_ascii_value = character;
-_LCD_print_buffors[curr_buf_ind] = { screenID , cursor1 , cursor2, b_ascii_value, time_seq_id , time_min_run} ;
-/*
-     _LCD_print_buffors[screenID].screenID=screenID ;
-     _LCD_print_buffors[screenID].cursor1=cursor1 ;
-     _LCD_print_buffors[screenID].cursor2=cursor2 ;
-     _LCD_print_buffors[screenID].character=b_ascii_value ;
-     _LCD_print_buffors[screenID].time_seq_id=time_seq_id ;
-     _LCD_print_buffors[screenID].time_min_run=time_min_run ;
-     */
-}
-
-
-void LCD_print_background_screen_add(_LCD_print_screensT* _LCD_print_screens, int screenID,long time_seq_id, long time_min_run, char LCDarray1, char LCDarray2 ) {
-  //time_seq_id - used to maintain single display context
-  //time_max - used to how much time to keep in displayed text
-  
-     _LCD_print_screens[screenID].screenID=screenID ;
-     _LCD_print_screens[screenID].time_seq_id=time_seq_id ;
-     _LCD_print_screens[screenID].time_min_run=time_min_run ;
-     _LCD_print_screens[screenID].LCDarray1=LCDarray1 ;
-     _LCD_print_screens[screenID].LCDarray2=LCDarray2 ;
-   Serial.print(" added to screen a1  "); Serial.println(String(LCDarray1) );
- 
-    //  unsigned char LCDarray2buf[16];
-    //   LCDarray2.toCharArray(LCDarray2buf, 15);
-  /*
-                                     for ( int positionCounter1 = 0;
-                                        positionCounter1 < 24; positionCounter1++)
-                                            {
-                                              LCD_print_background_add( _LCD_print_buffors,            screenID,           positionCounter1,           0,              LCDarray1[positionCounter1],              time_seq_id,              time_min_run);
-                                              Serial.print("A.");
-                                            }
-                                         
-                                     for ( int positionCounter2 = 0;
-                                        positionCounter2 < 24; positionCounter2++)
-                                            {
-                                            LCD_print_background_add( _LCD_print_buffors,            screenID,           positionCounter2,           1,              LCDarray2[positionCounter2],              time_seq_id,              time_min_run);
-                                            }
-         Serial.print(" :");
-        Serial.print(sizeof(_LCD_print_buffors));
-       Serial.print(" :");
-       */
-}
-
-
-//  _LCD_print_bufforT  _LCD_print_bufforss[] = {  0 , 0, "T", 10000, 50000 } ;
-
-
-void LCD_print_background(int cursor1, int cursor2, int character ,long time_seq_id, long time_min_run ) {
-  //time_seq_id - used to maintain single display context
-  //time_max - used to how much time to keep in displayed text
-}
-
-
- 
-
-void _LCD_print_screens_list(_LCD_print_screensT* _LCD_print_screens ) {
- int i;
-
-
-   Serial.print("sizeof(_LCD_print_screens): ");
-    Serial.println(sizeof(_LCD_print_screens));
- for(i=0;i<=10;i++) { //sizeof(_LCD_print_buffors)
-          Serial.print(" $i[");
-          Serial.print(i);
-
-          Serial.print("] screenID: ");
-          Serial.print(_LCD_print_screens[i].screenID);
-
-
-           String str((char*) _LCD_print_screens[i].LCDarray1);
-
-          Serial.print(" LCDarray1 ph: ");
-          Serial.println( str);
-
-
-          Serial.print(" LCDarray1 len: ");
-          Serial.println( sizeof(str));
-         
-         
-          Serial.print(" LCDarray1: ");
-          Serial.println( Serial.println((char*) _LCD_print_screens[i].LCDarray1) );
-     
-           Serial.print(" LCDarray2: ");
-          Serial.write(_LCD_print_screens[i].LCDarray2);
-
-           Serial.print(" time_seq_id: ");
-           
-          Serial.write( _LCD_print_screens[i].time_seq_id );
-          
-
-       
-           Serial.print(" time_seq_id: ");
-          Serial.println(_LCD_print_screens[i].time_seq_id);
-
-        
-
-      
+void LCD_print_DISPLAY_MENU_A(  //DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
+        int DISPLAY_MENU_A //index of
+        ) {
+
+  #if defined(DISABLE_PROGMEM_CONSOLE_PRINT)
+     #else
+    //todo menu
+     for(int i=0 ; i< PROGMEM_CONSOLE_PRINT_LIMIT_A; i++ ) {
+        if(PROGMEM_CONSOLE_PRINT_A[i].DISPLAY_ELEMENT_TO_REFRESH_A == true) {
+          // lcd.print(PROGMEM_CONSOLE_PRINT_A[i].input_F_A);
+          // lcd.print(PROGMEM_CONSOLE_PRINT_A[i].input_C_A);
+          // lcd.print(i); 
+          // PROGMEM_CONSOLE_PRINT_A[i].DISPLAY_ELEMENT_TO_REFRESH_A = false;
+          // PROGMEM_CONSOLE_PRINT_A[i].input_F_A = NULL;
+          // PROGMEM_CONSOLE_PRINT_A[i].input_C_A = {};
         }
-      
-}
-
-
-void _LCD_print_buffors_list(_LCD_print_bufforT* _LCD_print_buffors, int LCDtim ) {
- int i;
-   Serial.print("sizeof(_LCD_print_buffors): ");
-    Serial.println(sizeof(_LCD_print_buffors));
- for(i=0;i<=100;i++) { //sizeof(_LCD_print_buffors)
-          Serial.print(" $i[");
-          Serial.print(i);
-
-          Serial.print("] _LCD_print_buffors screenID: ");
-          Serial.print(_LCD_print_buffors[i].screenID);
-          
-          Serial.print(" cursor1: ");
-          Serial.print(_LCD_print_buffors[i].cursor1);
-           Serial.print(" cursor2: ");
-          Serial.print(_LCD_print_buffors[i].cursor2);
-
-           Serial.print(" character: ");
-           
-          Serial.write( _LCD_print_buffors[i].character );
-          
-
-       
-           Serial.print(" time_seq_id: ");
-          Serial.print(_LCD_print_buffors[i].time_seq_id);
-
-          Serial.print(" time_min_run: ");  
-          Serial.println(_LCD_print_buffors[i].time_min_run);
-
-      
-        }
-        lcd.setCursor(0,0); 
-       lcd.print("print_buffors");  // Print a message to the LCD.
-        lcd.setCursor(0,1); 
-         lcd.print(String( _LCD_print_buffors[0].character)); 
-          lcd.print(" , "); 
-           lcd.print(String( _LCD_print_buffors[1].character)); 
-         delay(LCDtim * 5);
-}
-
-void LCD_print(String LCDarray1, String LCDarray2 ,int LCDtim) {
-
-      delay(LCDtim);   
-      unsigned char LCDarray1buf[16];
-      LCDarray1.toCharArray(LCDarray1buf, 16);
- 
-      unsigned char LCDarray2buf[16];
-       LCDarray2.toCharArray(LCDarray2buf, 16);
-
-     // lcd.setCursor(0,0); 
-     // lcd.print(LCDarray1);
-     // lcd.setCursor(0,1); 
-     // lcd.print(LCDarray1);
-
-                                        lcd.setCursor(16,0); 
- 
-                                         for ( int positionCounter1 = 0;
-                                        positionCounter1 <= 24 ;//LCDarray1.length(); // 24;
-                                        positionCounter1++)
-                                            {
-                                              lcd.scrollDisplayLeft();  //Scrolls the contents of the display one space to the left.
-                                              if(positionCounter1 >= LCDarray1.length())  lcd.print(" ");
-                                              else lcd.print(LCDarray1[positionCounter1]);  // Print a message to the LCD.
-                                              delay(LCDtim);  //wait for 250 microseconds
-                                              if(positionCounter1==10) delay(LCDtim *7 ); 
-                                            }
-                                          //  lcd.clear();  //Clears the LCD screen and positions the cursor in the upper-left corner.
-
-
-
-
-                                          
-                                          lcd.setCursor(16,1); 
-                                         for ( int positionCounter2 = 0;
-                                        positionCounter2 <= 24;//LCDarray2.length();//24; 
-                                        positionCounter2++)
-                                            {
-                                              lcd.scrollDisplayLeft();  //Scrolls the contents of the display one space to the left.
-                                              if(positionCounter2 >= LCDarray2.length())  lcd.print(" "); 
-                                              else lcd.print(LCDarray2[positionCounter2]);  // Print a message to the LCD.
-                                              delay(LCDtim);  //wait for 250 microseconds
-                                               if(positionCounter2==10) delay(LCDtim *7 );
-                                            }
-                                            delay(LCDtim  * 5);  //wait for 250 microseconds
-                                          //  lcd.clear();  //Clears the LCD screen and positions the cursor in the upper-left corner.
-                                           
-
-      
-      delay(LCDtim);   
-
-      
-
-/*
-
-struct record
-{
-   int bookId;
-   int qtyInStock;
-
-};
-typedef struct record Record;
-
-void sold(int id, Record* records) {
-  int i;
-  for(i=0;i<3;i++) {
-    if(records[i].bookId == id) {
-      records[i].qtyInStock--;
-    }
-  }
-}
-*/
-/*
-void updateId(int id, int new_id, Record* records) {
-  int i;
-  for(i=0;i<3;i++) {
-    if(records[i].bookId == id) {
-        records[i].bookid = new_id;
-    }
-  }
-}
-*/
-/*
-void updateQty(int id, int new_qty, Record* records) {
-  int i;
-  for(i=0;i<3;i++) {
-    if(records[i].bookId == id) {
-        records[i].qtyInStock = new_qty;
+        
     }
-  }
-}
-*/
-
+    #endif
+    
 
-}           
-                            
-String make_str16(String str){
-    for(int i = 0; i < (16 - str.length()); i++)
-        str += ' ';  
-    return str;
 }
-                
+
+    
                      

+ 17 - 85
SE/stuff/P5_Automation_can-dev-res-working-1930/_LCD1602_struct.h

@@ -1,86 +1,18 @@
-                            
-
-
- 
- struct _LCD_print_bufforS {
-  int screenID;
-  int cursor1;
-  int cursor2;
- int character ;
- long time_seq_id;
- long time_min_run;
-} ;
-
-typedef struct _LCD_print_bufforS _LCD_print_bufforT;
-
-//struct LCDarray1S {
-//   char LCDarray1[16];
-//}
-
-struct _LCD_print_screenS {
-  int screenID;
-  char LCDarray1;
-  char LCDarray2;
-   long time_seq_id;
-   long time_min_run;
-  // _LCD_print_bufforT ;
-} ;
-
-
-typedef struct _LCD_print_screenS _LCD_print_screensT;
-
-  // int b_ascii_value = character;
-
-
+     
+                                 
+ static      DISPLAY_PHYSICAL_CHAR_T   LCD_DISPLAY_PHYSICAL_CHAR_A =   { 
+                 20*5,//LCD_DISPLAY_PHYSICAL_X_PX_A ,
+                 4*8,////LCD_DISPLAY_PHYSICAL_Y_PX_A ,
+                 20,//LCD_DISPLAY_PHYSICAL_X_CHARS_A,
+                 4,//LCD_DISPLAY_PHYSICAL_Y_CHARS_A ,
+                 0,//LCD_DISPLAY_CURSOR_X_CHARS_A,
+                 0,//LCD_DISPLAY_CURSOR_Y_CHARS_A,
+                 5,//LCD_DISPLAY_textsize_x_A,
+                 8//LCD_DISPLAY_textsize_y_A//, true
+                 //,
+                 //  {} ,
+                 //  {} ,
+                 //   DISPLAY_ELEMENT_TO_REFRESH_A_temp
+                  }
+          ;
       
-
-/*
-
-struct record
-{
-   int bookId;
-   int qtyInStock;
-
-};
-typedef struct record Record;
-
-void sold(int id, Record* records) {
-  int i;
-  for(i=0;i<3;i++) {
-    if(records[i].bookId == id) {
-      records[i].qtyInStock--;
-    }
-  }
-}
-*/
-/*
-void updateId(int id, int new_id, Record* records) {
-  int i;
-  for(i=0;i<3;i++) {
-    if(records[i].bookId == id) {
-        records[i].bookid = new_id;
-    }
-  }
-}
-*/
-/*
-void updateQty(int id, int new_qty, Record* records) {
-  int i;
-  for(i=0;i<3;i++) {
-    if(records[i].bookId == id) {
-        records[i].qtyInStock = new_qty;
-    }
-  }
-}
-*/
-
-
-        
-/*                           
-String make_str16(String str){
-    for(int i = 0; i < (16 - str.length()); i++)
-        str += ' ';  
-    return str;
-}
-                
-*/                                      

+ 10 - 4
SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_I2C_func.h

@@ -1,4 +1,9 @@
 //_Slave_Ports_I2C_func.h
+
+
+void TASK_TYPE_T_Set_Port_Smooth_forward() {
+}
+
  void _Slave_Ports_I2C_POP( //maintain tasks
     Slave_Ports_Status_QUEUE_T*  Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
     int _Slave_Ports_queue_pop ,  
@@ -21,8 +26,8 @@
     
     
     #if defined(DISABLE_LOOP) ||  defined(DEBUG) ||  defined(DEBUG_I2C)
-        
-     Serial.print("#234 _Slave_Ports_I2C_POP  _Slave_Ports_queue_pop["); Serial.print(_Slave_Ports_queue_pop);  Serial.println("]");
+     SPFTFTFT2(port,i2c,queue,234);
+     SPFT2(pop,_Slave_Ports_queue_pop)
     #endif
     
   //  I2C_INDEX_DRIVER_T I2C_INDEX_DRIVER_A ;
@@ -68,7 +73,8 @@
     int i_first;
     int i_max ; 
     if(TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX > 0) {
-        Serial.println("51[ACTION][USE][ASSOC]");
+        SPL();
+        SPFTFTFT2(action,use,assoc,51);
         i_first = TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX ; 
         i_max = TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX ;
     } else {
@@ -174,7 +180,7 @@
                                     
                                     
                                     if(Slave_Ports_Status_A[i].PortTypes & PortTypes_SERVO) {
-                                                Sprintln(F("#147   [PortTypes_SERVO]  [")); Serial.print(Exp_state_ON_USE_LEVEL, BIN); Sprintln(F("] ")); 
+                                                SPFTFTFT2(port,type,servo,147); SPFT2(level,(Exp_state_ON_USE_LEVEL, BIN))
                                                 if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON_USE_LEVEL) {
                                                         #if defined(DEBUG_I2C_driver_Adafruit_PWMServoDriver)
                                                         Sprintln(F("[SERVO] [Exp_state_ON_USE_LEVEL]"));        

+ 48 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_I2C_func_PHYSICAL_PORT_SERVO.h

@@ -0,0 +1,48 @@
+#include <Servo.h>
+                    
+                    
+                     
+       //I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_A
+      // LocalPort
+                      int drvfound = 0;
+                      int drvindex = 0;
+                      int freeindx = -1;
+                      for(int drv = 0 ; drv<2 ; drv++ ) {
+                            
+                            if(I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_A[drv].LocalPort == Slave_Ports_Status_A[i].LocalPort) {
+                                drvfound ++;
+                                drvindex = drv ;
+                                break;
+                            }
+                            if(I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_A[drv].LocalPort == 0) freeindx = drv ;
+                      }
+                      if(drvfound==0) {
+                        I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_A[freeindx].LocalPort = Slave_Ports_Status_A[i].LocalPort ;
+                        //Servo I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_SERVO_A[freeindx] ;
+                        // Servo I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_SERVO_A_TEST ;
+
+                        
+                        
+                        // I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_A[freeindx].Servo_A = (Servo*)malloc(sizeof(Servo)*sizeof(char));
+                        // I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_A[freeindx].Servo_A->attach(Slave_Ports_Status_A[i].LocalPort); 
+                        I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_SERVO_A[freeindx].attach(Slave_Ports_Status_A[i].LocalPort);
+                       // I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_SERVO_A_TEST.attach(Slave_Ports_Status_A[i].LocalPort);
+                        I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_A[freeindx].LocalPort_servo_attach_INITIALIZED_A = true ;
+                        drvindex = freeindx ;
+                      } else {
+                        
+                      }
+                     
+                        if(Slave_Ports_Status_A[i].Exp_state_level_A > 180) {
+                            Slave_Ports_Status_A[i].Exp_state_level_A = 180;
+                            SPFTFT2(error,level,">180");
+                        } 
+                       SPFTFT2(physical,index,drvindex);
+                       SPFT2(port,Slave_Ports_Status_A[i].LocalPort)  ;
+                       SPFT2(level, Slave_Ports_Status_A[i].Exp_state_level_A)  ;  
+                       //I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_A[drvindex].Servo_A->write(Slave_Ports_Status_A[i].Exp_state_level_A); 
+                        I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_SERVO_A[drvindex].write(Slave_Ports_Status_A[i].Exp_state_level_A);
+                         //I2C_driver_PHYSICAL_PORT_SERVO_PORSTATUS_DRIVER_SERVO_A_TEST.write(Slave_Ports_Status_A[i].Exp_state_level_A);
+
+                      //byte write_cmd = PCF8574_PORSTATUS | Slave_Ports_Status_A[i].LocalPort
+                      

+ 5 - 3
SE/stuff/P5_Automation_can-dev-res-working-1930/_Slave_Ports_Status_QUEUE_add_func.h

@@ -8,9 +8,11 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_T*
     ARDUINO_ARRAY_INDEX_T DISPLAY_ARDUINO_ARRAY_INDEX_A //optionally
     //int _Slave_Ports_queue_peek , int _Slave_Ports_queue_push , int _Slave_Ports_queue_peek_new
     ) {
-      Serial.println("ID[");Serial.print(Active_ControllerID_HEX);
-          Serial.print("]#152 _Slave_Ports_queue__add  TASK_TYPE_A[");
-           Serial.print(TASK_TYPE_A); Serial.print(" [");  _Slave_Ports_queue_task_type_DESC(TASK_TYPE_A); Serial.print("] ");
+      SPFTFT2(queue,add,152);
+      SPFTFT2(task,type,TASK_TYPE_A);
+      //SPFTFT(task,description);
+      _Slave_Ports_queue_task_type_DESC(TASK_TYPE_A);
+          
            
            
       

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

@@ -386,7 +386,30 @@ QUEUE_LATENCY_PASS__POP( time_seq_id_T time_seq_id_A,
                                       Slave_Ports_Status_QUEUE_A[ARDUINO_ARRAY_INDEX_POP_LOCK_A].DISPLAY_ARDUINO_ARRAY_INDEX_A
                                     );
                                 } else {
-                                    SPFTFTFT(smooth,run,failed);SPFTFT2(physical,port,Slave_Ports_Status_QUEUE_A[ARDUINO_ARRAY_INDEX_POP_LOCK_A].TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX);
+                                    SPFTFTFT(smooth,run,testing);SPFTFT2(physical,port,Slave_Ports_Status_QUEUE_A[ARDUINO_ARRAY_INDEX_POP_LOCK_A].TASK_PORT_ASSOC_A.Slave_Ports_Status_T_INDEX);
+                                    
+                                    TASK_TYPE_T_Set_Port_Smooth_forward__POP(
+                                        //Slave_Ports_Status_QUEUE_A, _Slave_Ports_queue_pop ,  Slave_Ports_Status_A 
+                                         Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
+                                         ARDUINO_ARRAY_INDEX_POP_LOCK_A ,  
+                                         Slave_Ports_Status_A,
+                                          Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
+                                           //display
+                                             DISPLAY_A ,
+                                             DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
+                                             DISPLAY_PHYSICAL_CHAR_A, 
+                                                 DISPLAY_pos_seq_A_NEXT | DISPLAY_pos_seq_A_IMMEDIATE, //initial set
+                                                 "#233 Setting I2C" , //DISPLAY_array16_A,
+                                                  DISPLAY_TARGET_ANY , //DISPLAY_TARGET_A, - setting
+                                                  Slave_Ports_Status_QUEUE_A[ARDUINO_ARRAY_INDEX_POP_LOCK_A].time_seq_id, 
+                                                  Slave_Ports_Status_QUEUE_A[ARDUINO_ARRAY_INDEX_POP_LOCK_A].time_min_run,
+                                             //tasks
+                                               Slave_Ports_Status_QUEUE_A[ARDUINO_ARRAY_INDEX_POP_LOCK_A].TASK_TYPE_A,
+                                               Slave_Ports_Status_QUEUE_A[ARDUINO_ARRAY_INDEX_POP_LOCK_A].TASK_PORT_ASSOC_A,
+                                                Adafruit_PWMServoDriver_A
+                                        ) ;  
+                                         Slave_Ports_Status_QUEUE_A[ARDUINO_ARRAY_INDEX_POP_LOCK_A]={} ;   //todo storage
+                                      
                                 }
                         
                      }  else {

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

@@ -18,8 +18,10 @@
                 I2C_driver_T I2C_driver, 
                 IS_Local_T IS_Local_A,
                  Exp_state_level_T Exp_state_level_A ,
+                  Port_ID_DESCR_T Port_ID_DESCR_A, 
                 time_seq_id_T time_seq_id, 
-                time_min_run_T time_min_run 
+                time_min_run_T time_min_run  
+               
                 )
 {
 
@@ -178,8 +180,17 @@
           DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_string_A = title ;
           #endif
           DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_COLOR_A =  0x0004 ;
+          if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_MENU_ITEM_FLAG_A & DISPLAY_MENU_ITEM_FLAG_INITIALIZED) {
+          } else {
+            DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_ELEMENT_TO_REFRESH_A = true;
+            DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true;
+          } 
           DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INITIALIZED ;
           DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_MENU_ITEM_CLASS_A = DISPLAY_MENU_ITEM_CLASS_MENU_TITLE ;
+          
+          
+          
+
           //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_char_PA = 
           #if defined(USE_DISPLAY_char_PA)
           //DISPLAY_char_P(title,*DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_char_PA );

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

@@ -15,7 +15,6 @@ const IS_gone_T IS_gone_FALSE = false ;
 
 
 
-typedef byte Exp_state_level_T ;
 const Exp_state_level_T Exp_state_level_INIT = 0;
 const Exp_state_level_T Exp_state_level_DO_NOT_CHANGE = -1;
 
@@ -29,7 +28,13 @@ typedef int Address_T ;
 const Address_T Address_NOT_DEFINED_A = 0x00 ;
 
 
+struct Slave_Ports_Status_DESCR_S {
+     Port_ID_T  Port_ID ;  
+     Port_ID_DESCR_T Port_ID_DESCR_A;
+} ;
 
+typedef Slave_Ports_Status_DESCR_S Slave_Ports_Status_DESCR_T ;
+//Slave_Ports_Status_DESCR_T Slave_Ports_Status_DESCR_A[ARDUINO_ARRAY_INDEX_LIMIT_PORTS];
 
  struct Slave_Ports_Status_S {
   Port_ID_T  Port_ID ; //global id for device //const char * const _Protocol;

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

@@ -50,13 +50,15 @@ void TASK_TYPE_T_Broadcast_state_LOW(Slave_Ports_Status_T* Slave_Ports_Status_A,
   ) {
         #if defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
             Serial.print("#251 _Slave_Ports_broadcast_POP INDEX_CURRENT_A["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A); Serial.println("] "); 
-            
+        #else
+            SPFTFT2(task,broadcast,251);
         #endif 
           int i;
           for(i=ARDUINO_ARRAY_INDEX_FIRST;i<= Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ;i++) { //Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A // ARDUINO_ARRAY_INDEX_LIMIT_PORTS
             if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) {  
-            Serial.print(" Broadcast_state[");Serial.print(Slave_Ports_Status_A[i].Broadcast_state);Serial.print("] Broadcast_state_FRESH["); Serial.print(Broadcast_state_FRESH); Serial.print("] ");
-            
+             #if defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
+             Serial.print(" Broadcast_state[");Serial.print(Slave_Ports_Status_A[i].Broadcast_state);Serial.print("] Broadcast_state_FRESH["); Serial.print(Broadcast_state_FRESH); Serial.print("] ");
+             #endif
             if(Slave_Ports_Status_A[i].Broadcast_state <= Broadcast_state_FRESH) {
                     
                     

+ 5 - 3
SE/stuff/P5_Automation_can-dev-res-working-1930/_TASK_TYPES_func.h

@@ -3,13 +3,15 @@
 void _Slave_Ports_queue_task_type_DESC( int _Slave_Ports_queue_task_type ) {//, int* res        
          switch (_Slave_Ports_queue_task_type) {
                 case TASK_TYPE_T_Slave_Ports_ttl_decrement:   
-                  Serial.println("TASK_TYPE_T_Slave_Ports_ttl_decrement");
+                  SPFTFTFT(task,ttl,decrement);
                   break;
                 case TASK_TYPE_T_request_confirm_Exp_state:   
-                  Serial.println("TASK_TYPE_T_request_confirm_Exp_state");
+                  SPFTFTFTFT(task,request,confirm,exp);
+                  //Serial.println("TASK_TYPE_T_request_confirm_Exp_state");
                   break;
                 case TASK_TYPE_T_request_set_new_Exp_state:  
-                  Serial.println("TASK_TYPE_T_request_set_new_Exp_state");
+                  //Serial.println("TASK_TYPE_T_request_set_new_Exp_state");
+                  SPFTFTFTFT(task,request,set,exp);
                   break;
                 case TASK_TYPE_T_Slave_Ports_broadcast____:  
                   Serial.println("TASK_TYPE_T_Slave_Ports_broadcast____");

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

@@ -24,6 +24,7 @@ const TASK_TYPE_T TASK_TYPE_T_Broadcast_child_CHANGE___ = 0x12 ; //todo to repor
 //todo for massive rottary smooth movement controll
 const TASK_TYPE_T TASK_TYPE_T_Set_Port_Smooth_forward__ = 0x13 ; //todo to report some change of child device like HX711
 
+//const TASK_TYPE_T TASK_TYPE_T_PROGMEM_CONSOLE_PRINT____ = 0x14 ;
 
 
 //const TASK_TYPE_T TASK_TYPE_T_Debug_Queue_Functions____ = 0x09 ;
@@ -35,6 +36,9 @@ struct TASK_PORT_ASSOC_S {
     Port_ID_T  Port_ID;
     int  _Slave_ID;
     ARDUINO_ARRAY_ATTR_T Slave_Ports_Status_T_INDEX; //optional index
+    Exp_state_level_T Exp_state_level_OLD_A;
+    Exp_state_level_T Exp_state_level_NEW_A;
+    Exp_state_level_T Exp_state_level_NEW_DELTA_A;
 } ; //To associate some port to TASK
 
 typedef struct TASK_PORT_ASSOC_S TASK_PORT_ASSOC_T ;

+ 1 - 1
SE/stuff/P5_Automation_can-dev-res-working-1930/___CONFIG/0x35/config_Active_ControllerID_0x35.h

@@ -34,7 +34,7 @@
 
 //#define DEBUG_DISPLAY
 
-#define DEBUG_QUEUE
+//#define DEBUG_QUEUE
 
 //#define DEBUG_QUEUE_ASSERT
 

+ 26 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___CONFIG/0x35/config_Slave_Ports_LOCAL_0x35_init.h

@@ -146,6 +146,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 I2C_port_DEFAULT, //int I2C_port,
                                 I2C_driver_PCF8574 ,//int I2C_driver
                                 IS_Local_TRUE, Exp_state_level_INIT,
+                                "Halog1",
                                 0,0// time_seq_id, time_min_run
                                 );
                          Slave_Ports_Status_add_port(
@@ -165,6 +166,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                  I2C_port_DEFAULT , //int I2C_port,
                                 I2C_driver_PCF8574 ,//int I2C_driver
                                 IS_Local_TRUE, Exp_state_level_INIT,
+                                "Halog2",
                                 0,0// time_seq_id, time_min_run
                                 );
                              //local pwm port
@@ -185,6 +187,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 I2C_port_NOT_I2C_A, //int I2C_port,
                                 I2C_driver_PHYSICAL_PORT_SERVO ,//int I2C_driver
                                 IS_Local_TRUE, Exp_state_level_INIT,
+                                "Halo X",
                                 0,0// time_seq_id, time_min_run
                                 );   
                              Slave_Ports_Status_add_port(
@@ -204,6 +207,29 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
                                 I2C_port_NOT_I2C_A, //int I2C_port,
                                 I2C_driver_PHYSICAL_PORT_SERVO ,//int I2C_driver
                                 IS_Local_TRUE, Exp_state_level_INIT,
+                                "Halo Y",
+                                0,0// time_seq_id, time_min_run
+                                );   
+                                
+                                
+                              Slave_Ports_Status_add_port(
+                                Slave_Ports_Status_A ,
+                                Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
+                                    Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_A,
+                                    Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A,
+                                    Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_A,
+                                5,  // int  Port_ID,
+                                Active_ControllerID_HEX ,  //int  _Slave_ID,
+                                PortTypes_PWM_I2C_SERVO ,// | PortTypes_SERVO  ,// | PortTypes_SERVO //int  PortTypes,
+                                Address_NOT_DEFINED_A ,  //int  Address,
+                                    5 , //int  LocalPort,
+                                Exp_state_OFF, //int  Exp_state,
+                                Exp_state_ttl_TO_REFRESH , //Exp_state_ttl_TO_REFRESH, //int  Exp_state_ttl,
+                                Broadcast_state_FULL_FRESH, //Broadcast_state_TO_REFRESH, //int  Broadcast_state,
+                                I2C_port_NOT_I2C_A, //int I2C_port,
+                                I2C_driver_PHYSICAL_PORT_SERVO ,//int I2C_driver
+                                IS_Local_TRUE, Exp_state_level_INIT,
+                                "Halo Z",
                                 0,0// time_seq_id, time_min_run
                                 );   
                                 

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

@@ -135,6 +135,7 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END(ARDUINO_LOOP_LATENCY__MAIN_END_A, ARDU
                                 
         
                                 DISPLAY_DEV.print("P:"); DISPLAY_DEV.print(Port11); DISPLAY_DEV.print(" "); DISPLAY_DEV.print(digitalRead(Port11)); //DISPLAY_DEV.print(analogRead(Port11));
+                               // LCD_print_DISPLAY_MENU_A(DISPLAY_MENU_A__PROGMEM_CONSOLE_PRINT);
                             }
                     #endif
                     

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___main/__main_struct.h

@@ -300,3 +300,6 @@ class MyObject{
 MyObject anObject;  //create an instance of MyObject 
   
   */
+typedef byte Exp_state_level_T ;
+typedef char Port_ID_DESCR_T[8] ;
+

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

@@ -14,7 +14,7 @@ const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A
 
 
 
-const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_LIMIT_QUEUE = 10 ; // 20 ;
+const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_LIMIT_QUEUE = 15 ; // 20 ;