a.binder 5 лет назад
Родитель
Сommit
d18ae2de21

+ 1 - 0
SE/stuff/P5_Automation_can-dev-res/P5_Automation_can-dev-res.ino

@@ -94,6 +94,7 @@
 //#define DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____
 //#define DEBUG_TASK_TYPE_T_DISPLAY_queue_pop________
 //#define DEBUG_TASK_TYPE_T_Slave_Ports_set_I2C______
+#define DEBUG_TASK_TYPE_T_Debug_Queue_Functions____ //to detect validate queue func - disables loop much
 
 #define HAS__jm_Scheduler //to allow planned actions blink etc
 

+ 35 - 7
SE/stuff/P5_Automation_can-dev-res/_DISPLAY_func.h

@@ -114,19 +114,47 @@ void DISPLAY__print_IMMEDIATE(
         
         
         
-void DISPLAY__print_loop(DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A, 
-    char message,
+void DISPLAY__print_loop(DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A,
+           DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ,
+    String message,
     int message_len, 
     DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_A
 ) { //to print while in loop
+    const int DISPLAY__print_loop_INDEX_LIMIT_A = 5;
+    static int DISPLAY__print_loop_INDEX_CURRENT_A = 0 ;
+    static int DISPLAY__print_loop_QUEUE_PEEK_A = 0 ;
     static  DISPLAY__print_loop_T  DISPLAY__print_loop_A[5]={} ;
-    static int count = 0 ;
+   
     if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_ADD) {
-        count ++ ;
-        DISPLAY__print_loop_A[count].DISPLAY_CURSOR_Y_CHARS_A = DISPLAY_CURSOR_Y_CHARS_A ;
-        DISPLAY__print_loop_A[count].message_len = message_len ;
-        memcpy(DISPLAY__print_loop_A[count].message, message, message_len );
+        if((DISPLAY__print_loop_INDEX_CURRENT_A  + 1) <= DISPLAY__print_loop_INDEX_LIMIT_A) {
+            
+            DISPLAY__print_loop_INDEX_CURRENT_A ++ ;
+            if(DISPLAY__print_loop_QUEUE_PEEK_A == 0 ) {
+             DISPLAY__print_loop_QUEUE_PEEK_A = DISPLAY__print_loop_INDEX_CURRENT_A  ;
+            }
+            DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_X_CHARS_A = DISPLAY_CURSOR_X_CHARS_A ;
+            DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_Y_CHARS_A = DISPLAY_CURSOR_Y_CHARS_A ;
+            DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message_len = message_len ;
+            //strcpy(DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message, message );
+            DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message = message ;
+        }
+          Serial.print("#137[DISPLAY__print_loop][ADD] [i][");Serial.print(DISPLAY__print_loop_INDEX_CURRENT_A); Serial.println("] ");
+    } else if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_POP)  {
+        Serial.print("#137[DISPLAY__print_loop][POP] [i][");Serial.print(DISPLAY__print_loop_INDEX_CURRENT_A); Serial.print("] p[");Serial.print(DISPLAY__print_loop_QUEUE_PEEK_A); Serial.print("] ");
+          if(DISPLAY__print_loop_QUEUE_PEEK_A > 0 ) {
+            DISPLAY_DEV.setCursor(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_X_CHARS_A * DISPLAY_textsize_x_A,
+               DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_textsize_y_A);
+               DISPLAY_DEV.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message);
+               Serial.print(" msg["); Serial.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message); Serial.print("] ");
+               
+               
+               
+           } else {
+            Serial.print(" [PEEK][EMPTY] ");
+           }
+           Serial.println("] ");
     }
+  
 }
 
 

+ 3 - 2
SE/stuff/P5_Automation_can-dev-res/_DISPLAY_struct.h

@@ -109,8 +109,9 @@ static    DISPLAY_T  DISPLAY_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY] = {} ;
    
     
 struct DISPLAY__print_loop_S {
-    DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A;
-    char message;
+   DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A;
+   DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A;
+    String message;
      int message_len ;
 }    ;
 typedef struct DISPLAY__print_loop_S DISPLAY__print_loop_T;

+ 60 - 0
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_QUEUE_func.h

@@ -125,10 +125,70 @@ void _Slave_Ports_queue__list( Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QU
      Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A, long time
  ) {
  
+ #if defined(DEBUG_QUEUE_ASSERT)
+ 
+       /* Serial.println("#5[DEB][F][Q][POP]");
+        Serial.print(" COUNT[");Serial.print(Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_COUNT_A);Serial.print("] ");
+        Serial.print(" LIMIT[");Serial.print(Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_INDEX_LIMIT_A);Serial.print("] ");
+        Serial.print(" NEXT[");Serial.print(Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_INDEX_NEXT_A);Serial.print("] ");
+        Serial.print(" QUEUE#[");Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A);Serial.print("] ");
+        Serial.print(" QPEEK[");Serial.print(ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A);Serial.print("] ");
+        */
+        DEBUG_QUEUE_ASSERT_BEF_POP_COUNT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_COUNT_A ;
+        DEBUG_QUEUE_ASSERT_BEF_POP_INDEX_LIMIT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_INDEX_LIMIT_A ;
+        DEBUG_QUEUE_ASSERT_BEF_POP_INDEX_NEXT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_INDEX_NEXT_A ;
+        DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_COUNT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ;
+        DEBUG_QUEUE_ASSERT_BEF_POP_COUNT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_COUNT_A ;
+        DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_PEEK_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ;
+        
+#endif
+ 
       
   ARDUINO_ARRAY_INDEX_NEXT_LOCK_T ARDUINO_ARRAY_INDEX_POP_LOCK_A = ARDUINO_ARRAY_INDEX_POP_LOCK(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A);
 
 
+
+ #if defined(DEBUG_QUEUE_ASSERT)
+ 
+        DEBUG_QUEUE_ASSERT_AFT_POP_COUNT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_COUNT_A ;
+        DEBUG_QUEUE_ASSERT_AFT_POP_INDEX_LIMIT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_INDEX_LIMIT_A ;
+        DEBUG_QUEUE_ASSERT_AFT_POP_INDEX_NEXT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_INDEX_NEXT_A ;
+        DEBUG_QUEUE_ASSERT_AFT_POP_QUEUE_COUNT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ;
+        DEBUG_QUEUE_ASSERT_AFT_POP_COUNT_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_COUNT_A ;
+        DEBUG_QUEUE_ASSERT_AFT_POP_QUEUE_PEEK_A = Slave_Ports_Status_QUEUE_A.ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ;
+        
+         if(DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_COUNT_A > 0 and (DEBUG_QUEUE_ASSERT_BEF_POP_COUNT_A != DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_COUNT_A)) { 
+                Serial.println("#162[DEBUG_QUEUE_ASSERT][ERR] [BEF_POP_COUNT_A["); Serial.print(DEBUG_QUEUE_ASSERT_BEF_POP_COUNT_A); Serial.print("]]!=[BEF_POP_QUEUE_COUNT_A["); Serial.print(DEBUG_QUEUE_ASSERT_AFT_BEF_QUEUE_COUNT_A); Serial.primt("]]");
+                Delay(1000);
+        }
+        
+        
+        if(DEBUG_QUEUE_ASSERT_AFT_POP_QUEUE_COUNT_A > 0 and (DEBUG_QUEUE_ASSERT_BEF_POP_COUNT_A != DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_COUNT_A)) { 
+                Serial.println("#162[DEBUG_QUEUE_ASSERT][ERR] [AFT_POP_COUNT_A["); Serial.print(DEBUG_QUEUE_ASSERT_AFT_POP_COUNT_A); Serial.print("]]!=[AFT_POP_QUEUE_COUNT_A["); Serial.print(DEBUG_QUEUE_ASSERT_AFT_POP_QUEUE_COUNT_A); Serial.primt("]]");
+                Delay(1000);
+        }
+        
+        
+        
+        if(DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_COUNT_A > 1 and ( DEBUG_QUEUE_ASSERT_AFT_POP_QUEUE_COUNT_A != (DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_COUNT_A - 1))) { 
+                Serial.println("#174[DEBUG_QUEUE_ASSERT][ERR] [AFT_POP_QUEUE_COUNT_A["); Serial.print(DEBUG_QUEUE_ASSERT_AFT_POP_COUNT_A); Serial.print("]]!=[BEF_POP_QUEUE_COUNT_A -1["); Serial.print(DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_COUNT_A); Serial.primt("]]");
+                Delay(1000);
+        }
+        
+        
+        if(DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_COUNT_A > 1 and ( DEBUG_QUEUE_ASSERT_AFT_POP_QUEUE_PEEK_A != (DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_PEEK_A + 1))) { 
+                Serial.println("#180[DEBUG_QUEUE_ASSERT][ERR] [AFT_POP_QUEUE_PEEK_A["); Serial.print(DEBUG_QUEUE_ASSERT_AFT_POP_QUEUE_PEEK_A); Serial.print("]]!=[BEF_POP_QUEUE_PEEK_A + 1["); Serial.print(DEBUG_QUEUE_ASSERT_BEF_POP_QUEUE_PEEK_A); Serial.primt("]]");
+                Delay(1000);
+        }
+        
+        
+        
+        
+#endif
+ 
+
+
+
  // ARDUINO_ARRAY_ATTR_QUEUE_T Slave_Ports_ATTR_QUEUE_A = ARDUINO_ARRAY_ATTR_QUEUE(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A) ;//ARDUINO_ARRAY_INDEX_CURRENT_T Slave_Ports_ATTR_QUEUE_PEEK_A ;// = Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ;
     #if  defined(DEBUG_QUEUE)
         Serial.println("136 after ARDUINO_ARRAY_INDEX_POP_LOCK"); ARDUINO_ATTR_ARRAY_S__display(Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A);

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

@@ -138,7 +138,6 @@
                 
                  // #if defined(DEBUG_CAN) || defined(DEBUG_TASK_TYPE_T_Slave_Ports_broadcast____)
                    Serial.println("#139 deb CAN_MSG8_A_ptr");    
-                    CAN_data_debug(CAN_MSG8_A);      
                 //  #endif
                  
                      

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

@@ -11,6 +11,7 @@ const TASK_TYPE_T TASK_TYPE_T_Slave_Ports_set_I2C______ = 0x05 ;
 const TASK_TYPE_T TASK_TYPE_T_DISPLAY_queue_pop________ = 0x06 ;
 const TASK_TYPE_T TASK_TYPE_T__EMPTY__JUST_PASSED_ARG__ = 0x07 ;
 const TASK_TYPE_T TASK_TYPE_T_Exp_state_BLINK_TOGGLE___ = 0x08 ;
+//const TASK_TYPE_T TASK_TYPE_T_Debug_Queue_Functions____ = 0x09 ;
 
 
 

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

@@ -8,8 +8,8 @@
 DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A = 0;
 DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A = 0;
 
-    DISPLAY_textsize_x_T DISPLAY_textsize_x_A = 6.3; //5 nominal
-    DISPLAY_textsize_y_T DISPLAY_textsize_y_A = 10; //8 nominal
+const    DISPLAY_textsize_x_T DISPLAY_textsize_x_A = 6.3; //5 nominal
+const    DISPLAY_textsize_y_T DISPLAY_textsize_y_A = 10; //8 nominal
 
  DISPLAY_PHYSICAL_X_CHARS_T DISPLAY_PHYSICAL_X_CHARS_A = DISPLAY_PHYSICAL_X_PX_A /  DISPLAY_textsize_x_A ; //todo to test
 

+ 2 - 3
SE/stuff/P5_Automation_can-dev-res/___loop/___loop_init.h

@@ -4,12 +4,11 @@
 //register ARDUINO_LOOP_LATENCY_COUNTER_T  ARDUINO_LOOP_LATENCY_COUNTER__MAIN_END_A = ARDUINO_LOOP_LATENCY_COUNTER_INIT ; //WILL DECREMENT
 
 
-static ARDUINO_LOOP_LATENCY_T      ARDUINO_LOOP_LATENCY__MAIN_A = 100 ; //EVERY 10 LOOPS INIT THIS LATENCY
 
 
 
-
-static ARDUINO_LOOP_LATENCY_T     ARDUINO_LOOP_LATENCY__MAIN_END_A = 500 ; //EVERY 10 LOOPS INIT THIS LATENCY
+    static ARDUINO_LOOP_LATENCY_T      ARDUINO_LOOP_LATENCY__MAIN_A = 100 ; //EVERY 10 LOOPS INIT THIS LATENCY
+    static ARDUINO_LOOP_LATENCY_T     ARDUINO_LOOP_LATENCY__MAIN_END_A = 500 ; //EVERY 10 LOOPS INIT THIS LATENCY
 
 
 

+ 8 - 1
SE/stuff/P5_Automation_can-dev-res/___loop/__main_loop_top.h

@@ -43,6 +43,12 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN(ARDUINO_LOOP_LATENCY__MAIN_A) <= ARDUINO_L
                                             Serial.println(ARDUINO_FUNCT_INIT_RESULT__Slave_Ports_LOCAL_init);
                                             }
                                           #endif
+                                //test
+                                
+                            //    DISPLAY__print_loop(0,8,"t1234567890", 11 , DISPLAY__print_loop_ACTION_ADD);
+                                
+                                
+                                
                                         
                         }
             
@@ -76,7 +82,8 @@ if(ARDUINO_LOOP_LATENCY_COUNTER__MAIN(ARDUINO_LOOP_LATENCY__MAIN_A) <= ARDUINO_L
             //ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add = _Slave_Ports_queue__add(  Slave_Ports_Status_QUEUE_A,   Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_DISPLAY_queue_pop________ ,TASK_PORT_ASSOC_EMPTY ,millis(), millis() + ARDUINO_time_seq_id_A_INCREMENT , ) ;  //"_Slave_Ports_set_I2C" //5  - to set ports associated on PW
             }
             
-            
+          //  DISPLAY__print_loop(0,7,"", 0 , DISPLAY__print_loop_ACTION_POP);
+
             
             if(time > TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A) {
                     Serial.print("[ #777 time > TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A][");Serial.print(TASK_TYPE_T_Slave_Ports_broadcast____time_min_run_MIN_A);Serial.print(print_SEP_RT);