|
@@ -0,0 +1,129 @@
|
|
|
|
|
+void display__print__struct_T__lcd__print(//display__print__struct_T* display__print__struct_A
|
|
|
|
|
+ ) {
|
|
|
|
|
+ Serial.print(" 1D#[");Serial.print(String(display__print__struct_A[0].display__print__queue_A,BIN));Serial.print("] ");
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ for (display__print__queue_T bitpos = 0 ; bitpos <8 ; bitpos++ ) {
|
|
|
|
|
+ if(bitRead(display__print__struct_A[0].display__print__queue_A, bitpos) == 1) {
|
|
|
|
|
+ Serial.println();
|
|
|
|
|
+
|
|
|
|
|
+ //find free space or timeouted; beg cursor ;ctx allocated setup
|
|
|
|
|
+ //foreach used alloc, if free next - use, else move cursor after used one (find req space)
|
|
|
|
|
+ display__print__alloc_window_T display__print__alloc_window_A[display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A] ;
|
|
|
|
|
+
|
|
|
|
|
+ for(display__print__queue_T findpos = 0 ; findpos < 8 ; findpos ++ ) {
|
|
|
|
|
+ if(display__print__struct_A[bitpos].display__print__alloc__index_A == display__print__struct_A[findpos].display__print__alloc__index_A
|
|
|
|
|
+ and bitRead(display__print__alloc_used_struct_A[0].display__print__alloc_queue_A, findpos) == 1 ) {
|
|
|
|
|
+ Serial.print(" Fnd #["); Serial.print(findpos);Serial.print("] B["); Serial.print(String(display__print__alloc_used_struct_A[0].display__print__alloc_queue_A,BIN));Serial.print("] CurX[");
|
|
|
|
|
+ Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A );
|
|
|
|
|
+ Serial.print("] x[");
|
|
|
|
|
+ Serial.print(display__print__alloc_used_struct_A[findpos].display__dimension_X_min_alloc_A);Serial.print("/");
|
|
|
|
|
+ Serial.print(display__print__alloc_used_struct_A[findpos].display__dimension_X_max_alloc_A);Serial.print("] ts[");
|
|
|
|
|
+ Serial.print(display__print__alloc_used_struct_A[findpos].display__print__queue__latency_millis_A); Serial.print("] ");
|
|
|
|
|
+
|
|
|
|
|
+ //if x1...CurX[0]...x2] postpone to
|
|
|
|
|
+ //if len + x2 > max postpone
|
|
|
|
|
+ //
|
|
|
|
|
+ for(int Xanal = display__print__alloc_used_struct_A[findpos].display__dimension_X_min_alloc_A ; Xanal <= display__print__alloc_used_struct_A[findpos].display__dimension_X_max_alloc_A ; Xanal ++ ) {
|
|
|
|
|
+ display__print__alloc_window_A[Xanal].used = true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ int Window = 0 ;
|
|
|
|
|
+ int Window_MAX = 0 ;
|
|
|
|
|
+ for(int Xanal = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_min_alloc_A ;
|
|
|
|
|
+ Xanal <=display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A ;
|
|
|
|
|
+ Xanal ++ ) {
|
|
|
|
|
+ if(display__print__alloc_window_A[Xanal].used == false) {
|
|
|
|
|
+ Window ++ ;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if(Window > Window_MAX) Window_MAX = Window;
|
|
|
|
|
+ Window = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ Serial.print("W[");Serial.print(Window_MAX);Serial.print("] ");
|
|
|
|
|
+ Serial.println();
|
|
|
|
|
+ lcd.setCursor(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A ,
|
|
|
|
|
+ display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A) ;
|
|
|
|
|
+ display__print__alloc_used_struct_A[bitpos].display__dimension_X_min_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A ;
|
|
|
|
|
+ display__print__alloc_used_struct_A[bitpos].display__dimension_Y_min_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A ;
|
|
|
|
|
+ //set new xy pos
|
|
|
|
|
+ int size;
|
|
|
|
|
+ int size_x_used = 0;
|
|
|
|
|
+ Serial.print(" C7["); Serial.print(display__print__struct_A[bitpos].display__print__character_8_A[6]); Serial.print("] S[");
|
|
|
|
|
+ Serial.print(display__print__struct_A[bitpos].display__print__alloc__index_A); Serial.print("]");
|
|
|
|
|
+ //display__print__character_8_size_A
|
|
|
|
|
+ for(size = 0; size <=limits_display__print__character_8_A; size ++) { //limits_display__print__character_8_A
|
|
|
|
|
+ if( size >= display__print__struct_A[bitpos].display__print__character_8_size_A - 0) break;
|
|
|
|
|
+ //if(sizeof(display__print__struct_A[bitpos].display__print__character_8_A[size]) == 0) break;
|
|
|
|
|
+ //test bounds //test millis
|
|
|
|
|
+ if( (
|
|
|
|
|
+ display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A
|
|
|
|
|
+ + size ) > display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A) {
|
|
|
|
|
+ //>x max exceeded
|
|
|
|
|
+ Serial.print(" Xmax!@C["); Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A);
|
|
|
|
|
+ Serial.print("/");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A);Serial.print("] ");
|
|
|
|
|
+ //test if next row avilable
|
|
|
|
|
+ if(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A <
|
|
|
|
|
+ display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_max_alloc_A) {
|
|
|
|
|
+ //next row avilable //move cursor //not using only one alloc
|
|
|
|
|
+ //no change for Y
|
|
|
|
|
+ display__print__alloc_used_struct_A[bitpos].display__dimension_X_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A + size ;// display__print__alloc_used_struct_A[bitpos].display__dimension_X_min_alloc_A + size ;
|
|
|
|
|
+ display__print__alloc_used_struct_A[bitpos].display__dimension_Y_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A ;
|
|
|
|
|
+
|
|
|
|
|
+ display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_min_alloc_A ;
|
|
|
|
|
+ size_x_used = 0;
|
|
|
|
|
+ display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A ++ ;
|
|
|
|
|
+ Serial.print(" $E1[");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A );Serial.print("] ");
|
|
|
|
|
+ //put rest to next
|
|
|
|
|
+
|
|
|
|
|
+ break;
|
|
|
|
|
+ //test if segment avialble
|
|
|
|
|
+ //fix allocate
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ } else { //no next Y .. go to first
|
|
|
|
|
+ display__print__alloc_used_struct_A[bitpos].display__dimension_X_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A + size ;//display__print__alloc_used_struct_A[bitpos].display__dimension_X_min_alloc_A + size ;
|
|
|
|
|
+ display__print__alloc_used_struct_A[bitpos].display__dimension_Y_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A ;
|
|
|
|
|
+ display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_min_alloc_A ;
|
|
|
|
|
+ size_x_used = 0;
|
|
|
|
|
+ display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_min_alloc_A ;
|
|
|
|
|
+ Serial.print(" $E2 siz[");Serial.print(size);Serial.print("/");Serial.print(display__print__struct_A[bitpos].display__print__character_8_size_A);Serial.print("]");
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ size_x_used ++ ;
|
|
|
|
|
+ display__print__alloc_used_struct_A[bitpos].display__dimension_X_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A + size ;
|
|
|
|
|
+
|
|
|
|
|
+ lcd.print(display__print__struct_A[bitpos].display__print__character_8_A[size]);
|
|
|
|
|
+ Serial.print(display__print__struct_A[bitpos].display__print__character_8_A[size]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ Serial.print(" b[");Serial.print(bitpos);Serial.print("] X[");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A);Serial.print("] ");
|
|
|
|
|
+
|
|
|
|
|
+ //todo new row
|
|
|
|
|
+ display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A
|
|
|
|
|
+ += size_x_used;
|
|
|
|
|
+ Serial.print("] Xn[");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A);Serial.print("] ");
|
|
|
|
|
+ //todo alloc
|
|
|
|
|
+ //means was printed and shoild be refreshed
|
|
|
|
|
+ display__print__alloc_used_struct_A[bitpos].display__print__queue__latency_millis_A = display__print__struct_A[bitpos].display__print__queue__latency_millis_A ;
|
|
|
|
|
+ bitWrite(display__print__alloc_used_struct_A[0].display__print__alloc_queue_A, bitpos , 1);
|
|
|
|
|
+ bitWrite(display__print__alloc_used_struct_A[bitpos].display__print__alloc_queue_A, bitpos , 1);
|
|
|
|
|
+
|
|
|
|
|
+ Serial.print(" xm[");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A);Serial.print("] ");
|
|
|
|
|
+
|
|
|
|
|
+ Serial.print(" D<");Serial.print(bitpos);
|
|
|
|
|
+ bitWrite(display__print__struct_A[0].display__print__queue_A, bitpos, 0);
|
|
|
|
|
+ bitWrite(display__print__struct_A[bitpos].display__print__queue_A, bitpos, 0); //extra
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ Serial.print(" 2D#[");Serial.print(String(display__print__struct_A[0].display__print__queue_A,BIN));Serial.print("] ");
|
|
|
|
|
+
|
|
|
|
|
+ }
|