_DISPLAY_func - Copy.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. //_DISPLAY_func.h
  2. /* #if defined(HAS_TFT_ILI9163C)
  3. delay(LCDtim);
  4. DISPLAY_DEV.setCursor(0,60);
  5. DISPLAY_DEV.print(LCDarray1); DISPLAY_DEV.print(" "); DISPLAY_DEV.print(LCDarray2);
  6. #endif
  7. */
  8. //void _DISPLAY_print
  9. void DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
  10. DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  11. DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
  12. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  13. DISPLAY_string_T DISPLAY_string_A
  14. #else
  15. DISPLAY_array16_T DISPLAY_array16_A
  16. #endif
  17. ){
  18. #if defined(DEBUG)
  19. if(DEBUG > 6) {
  20. Serial.print("#20 DsplY:[ "); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A); //[ARDUINO_ATTR_ARRAY_S_INDEX]
  21. Serial.print("] # MaxY:["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A); //[ARDUINO_ATTR_ARRAY_S_INDEX]
  22. Serial.println("] ");
  23. }
  24. Serial.print("#26 Dspl ATTR CURRENT[ "); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
  25. Serial.print("] LAST["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
  26. Serial.print("] COUNT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
  27. Serial.print("] LIMIT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A);
  28. Serial.print("] NEXT:["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
  29. Serial.println("] ");
  30. #endif
  31. #if defined(HAS_TFT_ILI9163C)
  32. #endif
  33. #if defined(DEBUG)
  34. if(DEBUG > 6) {
  35. Serial.print(" [HAS_TFT_ILI9163C] ");
  36. Serial.print(" 27[DEBUG] ");
  37. }
  38. #endif
  39. #if not defined(DISABLE_ANY_PRINT)
  40. Serial.println("] ");
  41. #endif
  42. //todo position current
  43. //todo positions max
  44. #if defined(HAS_TFT_ILI9163C)
  45. DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A,
  46. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  47. DISPLAY_string_A,
  48. #else
  49. DISPLAY_array16_A,
  50. #endif
  51. DISPLAY_pos_seq_A) ;
  52. #else
  53. Serial.println(DISPLAY_array16_A);
  54. #endif
  55. #if defined(DEBUG)
  56. //Serial.end();
  57. //delay(100);
  58. //Serial.write(" 72[DEBUG] ");
  59. #endif
  60. }
  61. void DISPLAY__print_IMMEDIATE(
  62. DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A,
  63. DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  64. DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
  65. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  66. DISPLAY_string_T DISPLAY_string_A,
  67. #else
  68. DISPLAY_array16_T DISPLAY_array16_A,
  69. #endif
  70. DISPLAY_TARGET_T DISPLAY_TARGET_A) {
  71. if(DISPLAY_TARGET_A & DISPLAY_TARGET_DISPLAY128){ //BIN TEST
  72. #if defined(HAS_TFT_ILI9163C)
  73. #if defined(DEBUG)
  74. if(DEBUG > 6) {
  75. String message(DISPLAY_array16_A);
  76. Serial.print("#69A DISPLAY__print_IMMEDIATE [DEBUG] to HAS_TFT_ILI9163C Len["); Serial.print( message.length());
  77. Serial.print("] XM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_CHARS_A);
  78. Serial.print("] YM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A);
  79. Serial.print("] YC["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A);
  80. Serial.print("] YF["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A);
  81. Serial.println("] ");
  82. }
  83. #endif
  84. DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A,
  85. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  86. DISPLAY_string_A,
  87. #else
  88. DISPLAY_array16_A,
  89. #endif
  90. DISPLAY_pos_seq_A) ;
  91. #else
  92. #if not defined(DISABLE_ANY_PRINT)
  93. Serial.println(DISPLAY_array16_A);
  94. #endif
  95. #endif
  96. // DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, DISPLAY_array16_A);
  97. } else if(DISPLAY_TARGET_A & DISPLAY_TARGET_ANY){ //BIN TEST
  98. #if defined(DEBUG)
  99. if(DEBUG > 6) {
  100. Serial.print("#69B DISPLAY__print_IMMEDIATE [DEBUG] to DISPLAY__print_ANY Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
  101. Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
  102. Serial.println("] ");
  103. }
  104. #endif
  105. DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A,
  106. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  107. DISPLAY_string_A
  108. #else
  109. DISPLAY_array16_A
  110. #endif
  111. );
  112. } else {
  113. #if defined(DEBUG)
  114. if(DEBUG > 6) {
  115. Serial.print("#68 DISPLAY__print_IMMEDIATE [DEBUG] else Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
  116. Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
  117. Serial.println("] ");
  118. }
  119. #endif
  120. }
  121. }
  122. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  123. #else
  124. void DISPLAY__print_loop(DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A,
  125. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ,
  126. String message,
  127. int message_len,
  128. DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_A
  129. ) { //to print while in loop
  130. const int DISPLAY__print_loop_INDEX_LIMIT_A = 5;
  131. static int DISPLAY__print_loop_INDEX_CURRENT_A = 0 ;
  132. static int DISPLAY__print_loop_QUEUE_PEEK_A = 0 ;
  133. static DISPLAY__print_loop_T DISPLAY__print_loop_A[5]={} ;
  134. if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_ADD) {
  135. if((DISPLAY__print_loop_INDEX_CURRENT_A + 1) <= DISPLAY__print_loop_INDEX_LIMIT_A) {
  136. DISPLAY__print_loop_INDEX_CURRENT_A ++ ;
  137. if(DISPLAY__print_loop_QUEUE_PEEK_A == 0 ) {
  138. DISPLAY__print_loop_QUEUE_PEEK_A = DISPLAY__print_loop_INDEX_CURRENT_A ;
  139. }
  140. DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_X_CHARS_A = DISPLAY_CURSOR_X_CHARS_A ;
  141. DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_Y_CHARS_A = DISPLAY_CURSOR_Y_CHARS_A ;
  142. DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message_len = message_len ;
  143. //strcpy(DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message, message );
  144. DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message = message ;
  145. }
  146. #if not defined(DISABLE_ANY_PRINT)
  147. Serial.print("#137[DISPLAY__print_loop][ADD] [i][");Serial.print(DISPLAY__print_loop_INDEX_CURRENT_A); Serial.println("] ");
  148. #endif
  149. } else if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_POP) {
  150. #if not defined(DISABLE_ANY_PRINT)
  151. 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("] ");
  152. #endif
  153. if(DISPLAY__print_loop_QUEUE_PEEK_A > 0 ) {
  154. DISPLAY_DEV.setCursor(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_X_CHARS_A * DISPLAY_textsize_x_A,
  155. DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_textsize_y_A);
  156. DISPLAY_DEV.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message);
  157. #if not defined(DISABLE_ANY_PRINT)
  158. Serial.print(" msg["); Serial.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message); Serial.print("] ");
  159. #endif
  160. } else {
  161. #if not defined(DISABLE_ANY_PRINT)
  162. Serial.print(" [PEEK][EMPTY] ");
  163. #endif
  164. }
  165. #if not defined(DISABLE_ANY_PRINT)
  166. Serial.println("] ");
  167. #endif
  168. }
  169. }
  170. #endif
  171. void DISPLAY__print(
  172. DISPLAY_T* DISPLAY_A ,
  173. DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
  174. DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  175. DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
  176. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  177. DISPLAY_string_T DISPLAY_string_A,
  178. #else
  179. DISPLAY_array16_T DISPLAY_array16_A,
  180. #endif
  181. DISPLAY_TARGET_T DISPLAY_TARGET_A,
  182. time_seq_id_T time_seq_id_A,
  183. time_min_run_T time_min_run_A
  184. //queue
  185. ,Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A,
  186. Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
  187. TASK_TYPE_T TASK_TYPE_A,
  188. TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A
  189. )
  190. {
  191. #ifdef DEBUG_DISPLAY
  192. Serial.print("127 DISPLAY__print DISPLAY_pos_seq_A["); Serial.print(BIN8_to_STRING(DISPLAY_pos_seq_A ));
  193. Serial.print("] DISPLAY_TARGET_A["); Serial.print(BIN8_to_STRING(DISPLAY_TARGET_A )); Serial.print("] [");
  194. Serial.print("#26 Dspl ATTR CURRENT[ "); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
  195. Serial.print("] LAST["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
  196. Serial.print("] COUNT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
  197. Serial.print("] LIMIT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A);
  198. Serial.print("] NEXT:["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
  199. Serial.println("] ");
  200. #endif
  201. if(DISPLAY_pos_seq_A & DISPLAY_pos_seq_A_IMMEDIATE){ ////BIN TEST
  202. #if defined(DEBUG_DISPLAY)
  203. //if(DEBUG > 6) {
  204. Serial.print("#84 DISPLAY__print to DISPLAY__print_IMMEDIATE [DEBUG] else Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
  205. Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
  206. Serial.println("] ");
  207. // }
  208. #endif
  209. DISPLAY__print_IMMEDIATE(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A,
  210. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  211. DISPLAY_string_A,
  212. #else
  213. DISPLAY_array16_A,
  214. #endif
  215. DISPLAY_TARGET_A);
  216. // Serial.print("#28 running _Slave_Ports_ttl_decrement = ");
  217. } else {
  218. #if defined(DEBUG)
  219. Serial.print("#88 DISPLAY__print [DEBUG] else "); Serial.print(DISPLAY_pos_seq_A , BIN);
  220. Serial.println("] ");
  221. #endif
  222. #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
  223. Serial.print("#167 DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________");
  224. #else
  225. #if not defined(DISABLE_ANY_PRINT)
  226. Serial.print("#253 TODO WHY ? BIN DISPLAY_pos_seq_A["); Serial.print(DISPLAY_pos_seq_A, BIN);
  227. Serial.print("]& IMM ["); Serial.print(DISPLAY_pos_seq_A_IMMEDIATE, BIN); Serial.print("] res[") ; Serial.print((DISPLAY_pos_seq_A & DISPLAY_pos_seq_A_IMMEDIATE) , BIN ) ;
  228. Serial.print(" ] String [") ; Serial.print(DISPLAY_string_A); Serial.print("] ");
  229. #endif
  230. /* DISPLAY__add_record( DISPLAY_A ,
  231. DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
  232. DISPLAY_PHYSICAL_CHAR_A,
  233. DISPLAY_pos_seq_A,
  234. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  235. DISPLAY_string_A,
  236. #else
  237. DISPLAY_array16_A,
  238. #endif
  239. DISPLAY_TARGET_A,
  240. time_seq_id_A,
  241. time_min_run_A
  242. //queue
  243. , Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
  244. TASK_TYPE_A,
  245. TASK_PORT_ASSOC_A
  246. ) ;
  247. */
  248. #endif
  249. }
  250. }
  251. void DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  252. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A
  253. ) {
  254. #if defined(HAS_TFT_ILI9163C)
  255. DISPLAY_DEV__CURSOR_Y_CHARS__SET(
  256. DISPLAY_PHYSICAL_CHAR_A,
  257. DISPLAY_CURSOR_Y_CHARS_A
  258. );
  259. #endif
  260. }
  261. void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A ,
  262. DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
  263. DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  264. DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A ,
  265. time_seq_id_T time_seq_id_A ,
  266. time_min_run_T time_min_run_A
  267. ) {
  268. int i;
  269. int maxX ;
  270. int maxY ;
  271. if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A == 0) maxX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_PX_A ;
  272. else maxX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A ;
  273. if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A == 0) maxY = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_PX_A ;
  274. else maxY = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ;
  275. // DISPLAY_DEV.setCursor((DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A),
  276. // (DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A)); //[ARDUINO_ATTR_ARRAY_S_INDEX]
  277. /* Serial.print("[#314 - XMIN["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A); Serial.print("] ");
  278. Serial.print(" YMIN["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] ");
  279. Serial.print(" XMAX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A); Serial.print("] ");
  280. Serial.print(" YMAX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] ");
  281. Serial.print(" TESTX["); Serial.print(20 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A); Serial.print("] ");
  282. Serial.print(" TESTY["); Serial.print(8 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] ");
  283. Serial.print(" maxX["); Serial.print(maxX); Serial.print("] ");
  284. Serial.print(" maxY["); Serial.print(maxY); Serial.print("] ");
  285. Serial.print(" color["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_COLOR_A); Serial.print("] ");
  286. Serial.print(" setMX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_X_CHARS_MAX_A); Serial.print("] ");
  287. Serial.println(" ");*/
  288. for(i=ARDUINO_ARRAY_INDEX_FIRST ; i<=ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A; i++) {
  289. //DISPLAY_PHYSICAL_CHAR_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i]
  290. if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_ITEM_FLAG_A == DISPLAY_MENU_ITEM_FLAG_INIT ) {
  291. if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].time_seq_id_A > ( time_seq_id_A - ARDUINO_LOOP_LATENCY_DISPLAY_MENU) ) {
  292. } else {
  293. //Serial.print(" WPRINT ["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] ");
  294. DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].time_seq_id_A = time_seq_id_A ;
  295. DISPLAY_DEV.fillRect(
  296. (DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_X_CHARS_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A),
  297. (DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A),
  298. maxX, DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A, DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_COLOR_A );
  299. DISPLAY_DEV.setCursor(
  300. (DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_X_CHARS_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A),
  301. (DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A)); //[ARDUINO_ATTR_ARRAY_S_INDEX]
  302. DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_string_A);
  303. //DISPLAY_DEV.print("test 123");
  304. }
  305. }
  306. }
  307. }