|
|
@@ -49,10 +49,16 @@ void ARDUINO_ATTR_ARRAY_S__commit_added_element(
|
|
|
|
|
|
void ARDUINO_ATTR_ARRAY_S__init( //to init attr list table[1]
|
|
|
ARDUINO_ATTR_ARRAY_T &ARDUINO_ATTR_ARRAY_A,
|
|
|
- ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A //current limit table
|
|
|
+ ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A ,//current limit table
|
|
|
+ ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_A
|
|
|
) {
|
|
|
|
|
|
- if(not(ARDUINO_ATTR_ARRAY_A.ARDUINO_QUEUE_FLAG_A == ARDUINO_QUEUE_FLAG_INIT)) {
|
|
|
+ if(not(ARDUINO_QUEUE_FLAG_A & ARDUINO_QUEUE_FLAG_INIT)) {
|
|
|
+
|
|
|
+ #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT)
|
|
|
+ Serial.print("[#89 ] ARDUINO_ATTR_ARRAY_S__init [ARDUINO_QUEUE_FLAG_INIT["); Serial.print(ARDUINO_QUEUE_FLAG_A, BIN) ; Serial.println("] ");
|
|
|
+ #endif
|
|
|
+
|
|
|
ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ARRAY_INDEX_CURRENT_INIT ;
|
|
|
ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A = ARDUINO_ARRAY_INDEX_LAST_INIT ;
|
|
|
ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A = ARDUINO_ARRAY_COUNT_T_INIT ;
|
|
|
@@ -62,16 +68,23 @@ void ARDUINO_ATTR_ARRAY_S__init( //to init attr list table[1]
|
|
|
ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_time_min_run_MIN_A = ARDUINO_ARRAY_INDEX_time_min_run_MIN_INIT ;
|
|
|
ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A = ARDUINO_ARRAY_ATTR_QUEUE_BACK_INIT ;
|
|
|
ARDUINO_ATTR_ARRAY_A.ARDUINO_QUEUE_FLAG_A = ARDUINO_QUEUE_FLAG_INIT ;
|
|
|
- }
|
|
|
+ } else {
|
|
|
+
|
|
|
+ #if defined(DEBUG) || defined(DISABLE_LOOP) || defined(DEBUG_QUEUE) || defined(DEBUG_STRUCT_INIT)
|
|
|
+ Serial.print("[#89 74] else ARDUINO_ATTR_ARRAY_S__init [ARDUINO_QUEUE_FLAG_INIT] ["); Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_QUEUE_FLAG_A, BIN) ; Serial.println("] ");
|
|
|
+ #endif
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
void ARDUINO_ARRAY_INDEX_TABLE_S__init( //to init table INDEX
|
|
|
ARDUINO_ARRAY_INDEX_TABLE_T* ARDUINO_ARRAY_INDEX_TABLE_A,
|
|
|
ARDUINO_ATTR_ARRAY_T &ARDUINO_ATTR_ARRAY_A,
|
|
|
- ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A //current limit table
|
|
|
+ ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A, //current limit table
|
|
|
+ ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_A
|
|
|
) {
|
|
|
- ARDUINO_ATTR_ARRAY_S__init(ARDUINO_ATTR_ARRAY_A, ARDUINO_ARRAY_INDEX_LIMIT_A) ;
|
|
|
+ ARDUINO_ATTR_ARRAY_S__init(ARDUINO_ATTR_ARRAY_A, ARDUINO_ARRAY_INDEX_LIMIT_A,ARDUINO_QUEUE_FLAG_A) ;
|
|
|
ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A;
|
|
|
if(ARDUINO_ARRAY_INDEX_CURRENT_A == ARDUINO_ARRAY_INDEX_CORRUPT) {
|
|
|
ARDUINO_ARRAY_INDEX_TABLE_A[ARDUINO_ARRAY_INDEX_CURRENT_A].ARDUINO_ARRAY_INDEX_A = ARDUINO_ARRAY_INDEX_CORRUPT;
|
|
|
@@ -98,7 +111,7 @@ ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_TABLE_S__add( //ADD SOME INT E
|
|
|
}
|
|
|
|
|
|
ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A ;
|
|
|
- #ifdef DISABLE_LOOP || DEBUG
|
|
|
+ #if defined(DISABLE_LOOP) || defined(DEBUG)
|
|
|
Serial.print("#8592 ARDUINO_ARRAY_INDEX_TABLE_S__add ARDUINO_ARRAY_INDEX_A=[");
|
|
|
Serial.print(ARDUINO_ARRAY_INDEX_A); Serial.print("] ARDUINO_ARRAY_INDEX_CURRENT_A=[");
|
|
|
Serial.print(ARDUINO_ARRAY_INDEX_CURRENT_A); Serial.print("] ..after commit ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A=[");
|
|
|
@@ -106,7 +119,7 @@ ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_TABLE_S__add( //ADD SOME INT E
|
|
|
#endif
|
|
|
ARDUINO_ARRAY_INDEX_TABLE_A[ARDUINO_ARRAY_INDEX_CURRENT_A].ARDUINO_ARRAY_INDEX_A = ARDUINO_ARRAY_INDEX_A;
|
|
|
ARDUINO_ATTR_ARRAY_S__commit_added_element(ARDUINO_ATTR_ARRAY_A , ARDUINO_ARRAY_INDEX_CURRENT_A);
|
|
|
- #ifdef DISABLE_LOOP || DEBUG
|
|
|
+ #if defined(DISABLE_LOOP) || defined(DEBUG)
|
|
|
Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A); Serial.println("] [");
|
|
|
#endif
|
|
|
}
|
|
|
@@ -137,10 +150,10 @@ void ARDUINO_ATTR_ARRAY_S__display( //to init attr list table[1]
|
|
|
Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A ); Serial.print("] #NEXT[");
|
|
|
Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A); Serial.print("] @time_min_run[");
|
|
|
Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_time_min_run_MIN_A ); Serial.print("] #time_run_#[");
|
|
|
- Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_time_min_run_MIN_A );Serial.print("] #time_run_#[");
|
|
|
- Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_QUEUE_FLAG_A, BIN); Serial.print("] QUEUE_FLAG_A[");
|
|
|
- Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A); Serial.print("] QUEUE_BACK_A["); //ostatni zabrany element
|
|
|
- Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ); Serial.println("] QUEUE_COUNT_A ");//kolejka elementow
|
|
|
+ Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_time_min_run_MIN_A );Serial.print("] #QUEUE_FLAG_A#[");
|
|
|
+ Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_QUEUE_FLAG_A, BIN); Serial.print("] QUEUE_BACK[");
|
|
|
+ Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_BACK_A); Serial.print("] QUEUE_COUNT["); //ostatni zabrany element
|
|
|
+ Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ); Serial.println("] ");//kolejka elementow
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -226,9 +239,9 @@ void ARDUINO_ARRAY_ATTR_QUEUE_add_distance(ARDUINO_ATTR_ARRAY_T &ARDUINO_ATTR_AR
|
|
|
} else if(ARDUINO_ATTR_ARRAY_A.ARDUINO_QUEUE_FLAG_A & ARDUINO_QUEUE_FLAG_QUEUE ) {
|
|
|
//ARDUINO_QUEUE_FLAG_CANNOT_OVERWRITE //
|
|
|
//or todo indivual array elements ARDUINO_QUEUE_FLAG_USE_ELEMENT_FLAG_T
|
|
|
- #ifdef DEBUG_QUEUE
|
|
|
+ #if defined(DEBUG_QUEUE)
|
|
|
Serial.print("[#161] ARDUINO_ARRAY_ATTR_QUEUE_distance [ARDUINO_QUEUE_FLAG_QUEUE]");
|
|
|
- Serial.print(" [SIZE_MAX] [NEED OVERWRITE] +[ARDUINO_QUEUE_FLAG_FULL_ONLY_POP]") Serial.println("");
|
|
|
+ Serial.print(" [SIZE_MAX] [NEED OVERWRITE] +[ARDUINO_QUEUE_FLAG_FULL_ONLY_POP]"); Serial.println("");
|
|
|
|
|
|
#endif
|
|
|
ARDUINO_ATTR_ARRAY_A.ARDUINO_QUEUE_FLAG_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_QUEUE_FLAG_A | ARDUINO_QUEUE_FLAG_FULL_ONLY_POP ;
|
|
|
@@ -274,7 +287,7 @@ void ARDUINO_ARRAY_ATTR_QUEUE_add_distance(ARDUINO_ATTR_ARRAY_T &ARDUINO_ATTR_AR
|
|
|
|
|
|
#endif
|
|
|
} else {
|
|
|
- #ifdef DEBUG_QUEUE || DEBUG
|
|
|
+ #if defined(DEBUG_QUEUE) || defined(DEBUG)
|
|
|
Serial.println("[#228] ARDUINO_ARRAY_ATTR_QUEUE_distance [UERROR?]");
|
|
|
#endif
|
|
|
}
|
|
|
@@ -292,23 +305,61 @@ void ARDUINO_ATTR_ARRAY_S__commit_added_element_QUEUE(
|
|
|
ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_A ,
|
|
|
ARDUINO_QUEUE_ELEMENT_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_A //flags of records
|
|
|
) { //when added new element call this func
|
|
|
- ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ;
|
|
|
- ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ARRAY_INDEX_CURRENT_A ;
|
|
|
- ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A = ARDUINO_ARRAY_INDEX_CURRENT_A + 1 ;
|
|
|
+
|
|
|
+ #if defined(DEBUG) || defined(DEBUG_QUEUE)
|
|
|
+ // || DEBUG_QUEUE)
|
|
|
+
|
|
|
+ Serial.println("[ #297 ARDUINO_ATTR_ARRAY_S__commit_added_element] [INCREMENTED] ARDUINO_QUEUE_FLAG_A[");Serial.print(ARDUINO_QUEUE_FLAG_A,BIN); Serial.print("] ");
|
|
|
+ #endif
|
|
|
+
|
|
|
+
|
|
|
if(ARDUINO_ARRAY_INDEX_CURRENT_A == ARDUINO_ARRAY_INDEX_CORRUPT ) {
|
|
|
+ #if defined(DEBUG) || defined(DEBUG_QUEUE)
|
|
|
+ Serial.println("[ #2398 commit_added_element] [ARDUINO_ARRAY_INDEX_CORRUPT] ignored");
|
|
|
+ #endif
|
|
|
} else if(ARDUINO_QUEUE_ELEMENT_FLAG_A & ARDUINO_QUEUE_ELEMENT_FLAG_INITIAL_CORRUPT) {
|
|
|
+ #if defined(DEBUG) || defined(DEBUG_QUEUE)
|
|
|
+ Serial.println("[ #3338 commit_added_element] [ARDUINO_QUEUE_ELEMENT_FLAG_INITIAL_CORRUPT] ignored");
|
|
|
+ #endif
|
|
|
} else {
|
|
|
//if should index rotate
|
|
|
- if((ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A + 1) > ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A) {
|
|
|
- //should rotate
|
|
|
- ARDUINO_ATTR_ARRAY_S__INDEX_NEXT_rotate(ARDUINO_ATTR_ARRAY_A,
|
|
|
- ARDUINO_QUEUE_FLAG_A ,
|
|
|
- millis());
|
|
|
- //check if we not corrupt ARDUINO_ARRAY_ATTR_QUEUE_BACK_A
|
|
|
+ #if defined(DEBUG) || defined(DEBUG_QUEUE)
|
|
|
+ Serial.println("[ #555 commit_added_element] [if should index rotate]??");
|
|
|
+ #endif
|
|
|
+ if((ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A + 1) > ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A) {
|
|
|
+
|
|
|
+ #if defined(DEBUG) || defined(DEBUG_QUEUE)
|
|
|
+ Serial.print(" +[INDEX_NEXT_rotate] ");
|
|
|
+ #endif
|
|
|
+ //should rotate
|
|
|
+ ARDUINO_ATTR_ARRAY_S__INDEX_NEXT_rotate(ARDUINO_ATTR_ARRAY_A,
|
|
|
+ ARDUINO_QUEUE_FLAG_A ,
|
|
|
+ millis());
|
|
|
+ //check if we not corrupt ARDUINO_ARRAY_ATTR_QUEUE_BACK_A
|
|
|
+
|
|
|
+ } else {
|
|
|
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+ ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ;
|
|
|
+ ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ARRAY_INDEX_CURRENT_A ;
|
|
|
+ ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A = ARDUINO_ARRAY_INDEX_CURRENT_A + 1 ;
|
|
|
+ ARDUINO_ATTR_ARRAY_A.ARDUINO_QUEUE_FLAG_A = ARDUINO_QUEUE_FLAG_A ;
|
|
|
+
|
|
|
|
|
|
+ #if defined(DEBUG) || defined(DEBUG_QUEUE)
|
|
|
+ Serial.print("[ELSE][INDEX_CURRENT_A + 1 > INDEX_LIMIT_A ] [CURRENT_A][");
|
|
|
+ Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A);
|
|
|
+ Serial.print("] INDEX_CURRENT_A[");
|
|
|
+ Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
|
|
|
+ Serial.print("] ");
|
|
|
+ #endif
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A++ ;
|
|
|
}
|
|
|
@@ -319,6 +370,19 @@ void ARDUINO_ATTR_ARRAY_S__commit_added_element_QUEUE(
|
|
|
|
|
|
|
|
|
|
|
|
+/*
|
|
|
+
|
|
|
+
|
|
|
+void AARDUINO_ARRAY_ATTR_INDEX__LOCK(
|
|
|
+ ARDUINO_ATTR_ARRAY_S &ARDUINO_ATTR_ARRAY_A ,
|
|
|
+ ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A, //current index,
|
|
|
+ ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_A ,
|
|
|
+ ARDUINO_QUEUE_ELEMENT_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_A //flags of records
|
|
|
+ ) { //when added new element call this func
|
|
|
+ }
|
|
|
+}
|
|
|
+*/
|
|
|
+
|
|
|
/*
|
|
|
void ARDUINO_ARRAY_COUNT(
|
|
|
ARDUINO_ARRAY_INDEX_TABLE_S* ARDUINO_ARRAY_INDEX_TABLE_A,
|