_DISPLAY_func.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  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. Serial.println("] ");
  40. //todo position current
  41. //todo positions max
  42. #if defined(HAS_TFT_ILI9163C)
  43. DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A,
  44. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  45. DISPLAY_string_A,
  46. #else
  47. DISPLAY_array16_A,
  48. #endif
  49. DISPLAY_pos_seq_A) ;
  50. #else
  51. Serial.println(DISPLAY_array16_A);
  52. #endif
  53. #if defined(DEBUG)
  54. //Serial.end();
  55. //delay(100);
  56. //Serial.write(" 72[DEBUG] ");
  57. #endif
  58. }
  59. void DISPLAY__print_IMMEDIATE(
  60. DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A,
  61. DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  62. DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
  63. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  64. DISPLAY_string_T DISPLAY_string_A,
  65. #else
  66. DISPLAY_array16_T DISPLAY_array16_A,
  67. #endif
  68. DISPLAY_TARGET_T DISPLAY_TARGET_A) {
  69. if(DISPLAY_TARGET_A & DISPLAY_TARGET_DISPLAY128){ //BIN TEST
  70. #if defined(HAS_TFT_ILI9163C)
  71. #if defined(DEBUG)
  72. if(DEBUG > 6) {
  73. String message(DISPLAY_array16_A);
  74. Serial.print("#69A DISPLAY__print_IMMEDIATE [DEBUG] to HAS_TFT_ILI9163C Len["); Serial.print( message.length());
  75. Serial.print("] XM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_CHARS_A);
  76. Serial.print("] YM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A);
  77. Serial.print("] YC["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A);
  78. Serial.print("] YF["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A);
  79. Serial.println("] ");
  80. }
  81. #endif
  82. DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A,
  83. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  84. DISPLAY_string_A,
  85. #else
  86. DISPLAY_array16_A,
  87. #endif
  88. DISPLAY_pos_seq_A) ;
  89. #else
  90. Serial.println(DISPLAY_array16_A);
  91. #endif
  92. // DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, DISPLAY_array16_A);
  93. } else if(DISPLAY_TARGET_A & DISPLAY_TARGET_ANY){ //BIN TEST
  94. #if defined(DEBUG)
  95. if(DEBUG > 6) {
  96. Serial.print("#69B DISPLAY__print_IMMEDIATE [DEBUG] to DISPLAY__print_ANY Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
  97. Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
  98. Serial.println("] ");
  99. }
  100. #endif
  101. DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A,
  102. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  103. DISPLAY_string_A
  104. #else
  105. DISPLAY_array16_A
  106. #endif
  107. );
  108. } else {
  109. #if defined(DEBUG)
  110. if(DEBUG > 6) {
  111. Serial.print("#68 DISPLAY__print_IMMEDIATE [DEBUG] else Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
  112. Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
  113. Serial.println("] ");
  114. }
  115. #endif
  116. }
  117. }
  118. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  119. #else
  120. void DISPLAY__print_loop(DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A,
  121. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ,
  122. String message,
  123. int message_len,
  124. DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_A
  125. ) { //to print while in loop
  126. const int DISPLAY__print_loop_INDEX_LIMIT_A = 5;
  127. static int DISPLAY__print_loop_INDEX_CURRENT_A = 0 ;
  128. static int DISPLAY__print_loop_QUEUE_PEEK_A = 0 ;
  129. static DISPLAY__print_loop_T DISPLAY__print_loop_A[5]={} ;
  130. if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_ADD) {
  131. if((DISPLAY__print_loop_INDEX_CURRENT_A + 1) <= DISPLAY__print_loop_INDEX_LIMIT_A) {
  132. DISPLAY__print_loop_INDEX_CURRENT_A ++ ;
  133. if(DISPLAY__print_loop_QUEUE_PEEK_A == 0 ) {
  134. DISPLAY__print_loop_QUEUE_PEEK_A = DISPLAY__print_loop_INDEX_CURRENT_A ;
  135. }
  136. DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_X_CHARS_A = DISPLAY_CURSOR_X_CHARS_A ;
  137. DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_Y_CHARS_A = DISPLAY_CURSOR_Y_CHARS_A ;
  138. DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message_len = message_len ;
  139. //strcpy(DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message, message );
  140. DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message = message ;
  141. }
  142. Serial.print("#137[DISPLAY__print_loop][ADD] [i][");Serial.print(DISPLAY__print_loop_INDEX_CURRENT_A); Serial.println("] ");
  143. } else if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_POP) {
  144. 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("] ");
  145. if(DISPLAY__print_loop_QUEUE_PEEK_A > 0 ) {
  146. DISPLAY_DEV.setCursor(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_X_CHARS_A * DISPLAY_textsize_x_A,
  147. DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_textsize_y_A);
  148. DISPLAY_DEV.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message);
  149. Serial.print(" msg["); Serial.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message); Serial.print("] ");
  150. } else {
  151. Serial.print(" [PEEK][EMPTY] ");
  152. }
  153. Serial.println("] ");
  154. }
  155. }
  156. #endif
  157. void DISPLAY__print(
  158. DISPLAY_T* DISPLAY_A ,
  159. DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
  160. DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  161. DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
  162. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  163. DISPLAY_string_T DISPLAY_string_A,
  164. #else
  165. DISPLAY_array16_T DISPLAY_array16_A,
  166. #endif
  167. DISPLAY_TARGET_T DISPLAY_TARGET_A,
  168. time_seq_id_T time_seq_id_A,
  169. time_min_run_T time_min_run_A
  170. //queue
  171. ,Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A,
  172. Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A,
  173. TASK_TYPE_T TASK_TYPE_A,
  174. TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A
  175. )
  176. {
  177. #ifdef DEBUG_DISPLAY
  178. Serial.print("127 DISPLAY__print DISPLAY_pos_seq_A["); Serial.print(BIN8_to_STRING(DISPLAY_pos_seq_A ));
  179. Serial.print("] DISPLAY_TARGET_A["); Serial.print(BIN8_to_STRING(DISPLAY_TARGET_A )); Serial.print("] [");
  180. Serial.print("#26 Dspl ATTR CURRENT[ "); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
  181. Serial.print("] LAST["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
  182. Serial.print("] COUNT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
  183. Serial.print("] LIMIT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A);
  184. Serial.print("] NEXT:["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
  185. Serial.println("] ");
  186. #endif
  187. if(DISPLAY_pos_seq_A & DISPLAY_pos_seq_A_IMMEDIATE){ ////BIN TEST
  188. #if defined(DEBUG_DISPLAY)
  189. //if(DEBUG > 6) {
  190. Serial.print("#84 DISPLAY__print to DISPLAY__print_IMMEDIATE [DEBUG] else Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
  191. Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
  192. Serial.println("] ");
  193. // }
  194. #endif
  195. DISPLAY__print_IMMEDIATE(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A,
  196. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  197. DISPLAY_string_A,
  198. #else
  199. DISPLAY_array16_A,
  200. #endif
  201. DISPLAY_TARGET_A);
  202. // Serial.print("#28 running _Slave_Ports_ttl_decrement = ");
  203. } else {
  204. #if defined(DEBUG)
  205. Serial.print("#88 DISPLAY__print [DEBUG] else "); Serial.print(DISPLAY_pos_seq_A , BIN);
  206. Serial.println("] ");
  207. #endif
  208. #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________)
  209. Serial.print("#167 DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________");
  210. #else
  211. DISPLAY__add_record( DISPLAY_A ,
  212. DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
  213. DISPLAY_PHYSICAL_CHAR_A,
  214. DISPLAY_pos_seq_A,
  215. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  216. DISPLAY_string_A,
  217. #else
  218. DISPLAY_array16_A,
  219. #endif
  220. DISPLAY_TARGET_A,
  221. time_seq_id_A,
  222. time_min_run_A
  223. //queue
  224. , Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
  225. TASK_TYPE_A,
  226. TASK_PORT_ASSOC_A
  227. ) ;
  228. #endif
  229. }
  230. }
  231. void DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  232. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A
  233. ) {
  234. #if defined(HAS_TFT_ILI9163C)
  235. DISPLAY_DEV__CURSOR_Y_CHARS__SET(
  236. DISPLAY_PHYSICAL_CHAR_A,
  237. DISPLAY_CURSOR_Y_CHARS_A
  238. );
  239. #endif
  240. }