_DISPLAY_func.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  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. DISPLAY_array16_T DISPLAY_array16_A){
  13. #if defined(DEBUG)
  14. if(DEBUG > 6) {
  15. Serial.print("#20 DsplY:[ "); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A); //[ARDUINO_ATTR_ARRAY_S_INDEX]
  16. Serial.print("] # MaxY:["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A); //[ARDUINO_ATTR_ARRAY_S_INDEX]
  17. Serial.println("] ");
  18. }
  19. Serial.print("#26 Dspl ATTR CURRENT[ "); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
  20. Serial.print("] LAST["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
  21. Serial.print("] COUNT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
  22. Serial.print("] LIMIT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A);
  23. Serial.print("] NEXT:["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
  24. Serial.println("] ");
  25. #endif
  26. #if defined(HAS_TFT_ILI9163C)
  27. #endif
  28. #if defined(DEBUG)
  29. if(DEBUG > 6) {
  30. Serial.print(" [HAS_TFT_ILI9163C] ");
  31. Serial.print(" 27[DEBUG] ");
  32. }
  33. #endif
  34. Serial.println("] ");
  35. //todo position current
  36. //todo positions max
  37. #if defined(HAS_TFT_ILI9163C)
  38. DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A, DISPLAY_array16_A) ;
  39. #else
  40. Serial.println(DISPLAY_array16_A);
  41. #endif
  42. #if defined(DEBUG)
  43. //Serial.end();
  44. //delay(100);
  45. //Serial.write(" 72[DEBUG] ");
  46. #endif
  47. }
  48. void DISPLAY__print_IMMEDIATE(
  49. DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A,
  50. DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  51. DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
  52. DISPLAY_array16_T DISPLAY_array16_A,
  53. DISPLAY_TARGET_T DISPLAY_TARGET_A) {
  54. if(DISPLAY_TARGET_A | DISPLAY_TARGET_DISPLAY128){
  55. #if defined(HAS_TFT_ILI9163C)
  56. #if defined(DEBUG)
  57. if(DEBUG > 6) {
  58. String message(DISPLAY_array16_A);
  59. Serial.print("#69A DISPLAY__print_IMMEDIATE [DEBUG] to HAS_TFT_ILI9163C Len["); Serial.print( message.length());
  60. Serial.print("] XM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_CHARS_A);
  61. Serial.print("] YM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A);
  62. Serial.print("] YC["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A);
  63. Serial.print("] YF["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A);
  64. Serial.println("] ");
  65. }
  66. #endif
  67. DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A, DISPLAY_array16_A) ;
  68. #else
  69. Serial.println(DISPLAY_array16_A);
  70. #endif
  71. // DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, DISPLAY_array16_A);
  72. } else if(DISPLAY_TARGET_A | DISPLAY_TARGET_ANY){
  73. #if defined(DEBUG)
  74. if(DEBUG > 6) {
  75. Serial.print("#69B DISPLAY__print_IMMEDIATE [DEBUG] to DISPLAY__print_ANY Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
  76. Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
  77. Serial.println("] ");
  78. }
  79. #endif
  80. DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, DISPLAY_array16_A);
  81. } else {
  82. #if defined(DEBUG)
  83. if(DEBUG > 6) {
  84. Serial.print("#68 DISPLAY__print_IMMEDIATE [DEBUG] else Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
  85. Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
  86. Serial.println("] ");
  87. }
  88. #endif
  89. }
  90. }
  91. void DISPLAY__add_record(
  92. DISPLAY_T* DISPLAY_A ,
  93. DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
  94. DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  95. DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
  96. DISPLAY_array16_T DISPLAY_array16_A,
  97. DISPLAY_TARGET_T DISPLAY_TARGET_A,
  98. time_seq_id_T time_seq_id_A,
  99. time_min_run_T time_min_run_A
  100. //QUEUE
  101. ,Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A,
  102. TASK_TYPE_T TASK_TYPE_A,
  103. TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A
  104. ) {
  105. #if defined(DEBUG)
  106. Serial.print("#13444 DISPLAY__add_record[DEBUG] # BEFORE COUNT["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
  107. Serial.print("] INDEX_LAST["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
  108. Serial.print("] INDEX_CURRENT["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
  109. Serial.print("] NEXT_A["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
  110. Serial.println("] ");
  111. #endif
  112. int i = DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ;
  113. if(i == ARDUINO_ARRAY_INDEX_CORRUPT) {
  114. DISPLAY_A[i]._queue_id = 0; //current queue task
  115. DISPLAY_A[i].DISPLAY_pos_seq_A = 0 ;
  116. DISPLAY_A[i].DISPLAY_pos_id_A = 0 ;
  117. DISPLAY_A[i].DISPLAY_array16_A ;
  118. DISPLAY_A[i].DISPLAY_TARGET_A = 0 ;
  119. DISPLAY_A[i].time_seq_id_A = 0 ;
  120. DISPLAY_A[i].time_min_run_A = 0 ;
  121. ARDUINO_ATTR_ARRAY_S__commit_added_element(
  122. DISPLAY_T_ARDUINO_ATTR_ARRAY_A , i);
  123. }
  124. i = DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A ;
  125. //DISPLAY_array16_T DISPLAY_array16_AA =
  126. String(DISPLAY_array16_A).toCharArray(DISPLAY_A[i].DISPLAY_array16_A,16) ;
  127. DISPLAY_A[i]._queue_id = 0; //current queue task
  128. DISPLAY_A[i].DISPLAY_pos_seq_A = DISPLAY_pos_seq_A ;
  129. DISPLAY_A[i].DISPLAY_pos_id_A = 0 ;
  130. //DISPLAY_A[i].DISPLAY_array16_A = DISPLAY_array16_AA ;
  131. DISPLAY_A[i].DISPLAY_TARGET_A = DISPLAY_TARGET_A ;
  132. if(time_seq_id_A == 0 ) {
  133. DISPLAY_A[i].time_seq_id_A = millis() ;
  134. } else {
  135. DISPLAY_A[i].time_seq_id_A = time_seq_id_A ;
  136. }
  137. if(time_min_run_A == 0) {
  138. DISPLAY_A[i].time_min_run_A = DISPLAY_A[i].time_seq_id_A + ARDUINO_time_seq_id_A_INCREMENT;
  139. } else {
  140. DISPLAY_A[i].time_min_run_A = time_min_run_A ;
  141. }
  142. ARDUINO_ATTR_ARRAY_S__commit_added_element(
  143. DISPLAY_T_ARDUINO_ATTR_ARRAY_A , i);
  144. #if defined(DEBUG)
  145. // if(DEBUG > 6) {
  146. Serial.print("#172 DISPLAY__add_record[DEBUG] AFTER #COUNT["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
  147. Serial.print("] INDEX_LAST["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
  148. Serial.print("] INDEX_CURRENT["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
  149. Serial.print("] NEXT_A["); Serial.print( DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
  150. Serial.println("] ");
  151. // }
  152. #endif
  153. /*ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add_DISPLAY = _Slave_Ports_queue__add(
  154. Slave_Ports_Status_QUEUE_A, TASK_TYPE_T_DISPLAY_queue_pop________
  155. ,TASK_PORT_ASSOC_EMPTY ,millis(), millis() + ARDUINO_time_seq_id_A_INCREMENT
  156. ) ; //"_Slave_Ports_set_I2C" //5 - to set ports associated on PW
  157. */
  158. }
  159. void DISPLAY__print(
  160. DISPLAY_T* DISPLAY_A ,
  161. DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
  162. DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
  163. DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
  164. DISPLAY_array16_T DISPLAY_array16_A,
  165. DISPLAY_TARGET_T DISPLAY_TARGET_A,
  166. time_seq_id_T time_seq_id_A,
  167. time_min_run_T time_min_run_A
  168. //queue
  169. ,Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A,
  170. TASK_TYPE_T TASK_TYPE_A,
  171. TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A
  172. )
  173. {
  174. #if defined(DEBUG)
  175. Serial.print("#26 Dspl ATTR CURRENT[ "); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
  176. Serial.print("] LAST["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
  177. Serial.print("] COUNT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
  178. Serial.print("] LIMIT["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A);
  179. Serial.print("] NEXT:["); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
  180. Serial.println("] ");
  181. #endif
  182. if(DISPLAY_pos_seq_A | DISPLAY_pos_seq_A_IMMEDIATE){
  183. #if defined(DEBUG)
  184. if(DEBUG > 6) {
  185. Serial.print("#84 DISPLAY__print to DISPLAY__print_IMMEDIATE [DEBUG] else Seq["); Serial.print(DISPLAY_pos_seq_A , BIN);
  186. Serial.print("] Target["); Serial.print(DISPLAY_TARGET_A , BIN);
  187. Serial.println("] ");
  188. }
  189. #endif
  190. DISPLAY__print_IMMEDIATE(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, DISPLAY_array16_A, DISPLAY_TARGET_A);
  191. // Serial.print("#28 running _Slave_Ports_ttl_decrement = ");
  192. } else {
  193. #if defined(DEBUG)
  194. Serial.print("#88 DISPLAY__print [DEBUG] else "); Serial.print(DISPLAY_pos_seq_A , BIN);
  195. Serial.println("] ");
  196. #endif
  197. DISPLAY__add_record( DISPLAY_A ,
  198. DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
  199. DISPLAY_PHYSICAL_CHAR_A,
  200. DISPLAY_pos_seq_A,
  201. DISPLAY_array16_A,
  202. DISPLAY_TARGET_A,
  203. time_seq_id_A,
  204. time_min_run_A
  205. //queue
  206. , Slave_Ports_Status_QUEUE_A,
  207. TASK_TYPE_A,
  208. TASK_PORT_ASSOC_A
  209. ) ;
  210. }
  211. }