_DISPLAY_struct.h 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. typedef char DISPLAY_array16_T[16] ;
  2. typedef String DISPLAY_string64_T[16];
  3. typedef String DISPLAY_string_T;
  4. static String DISPLAY_array16_FILL_A = " ";
  5. typedef ARDUINO_SIZE_T DISPLAY_string_len_T ;
  6. typedef int DISPLAY_PHYSICAL_X_PX_T ;
  7. typedef int DISPLAY_PHYSICAL_Y_PX_T ;
  8. typedef int DISPLAY_PHYSICAL_X_CHARS_T ;
  9. typedef int DISPLAY_PHYSICAL_Y_CHARS_T ;
  10. typedef int DISPLAY_CURSOR_X_CHARS_T ;
  11. typedef int DISPLAY_CURSOR_Y_CHARS_T ;
  12. typedef int DISPLAY_textsize_T ;
  13. typedef DISPLAY_textsize_T DISPLAY_textsize_x_T ;
  14. typedef DISPLAY_textsize_T DISPLAY_textsize_y_T ;
  15. typedef long DISPLAY_COLOR_T ;
  16. typedef int DISPLAY_pos_seq_T ; //reqiested position in LCD
  17. const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_EXACT = B00000001;
  18. const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_NEXT = B00000010;
  19. const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_IMMEDIATE = B00000100;
  20. const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_QUEUE = B00001000;
  21. const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_ATTIME = B00010000;
  22. const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_INVALIDAFTER = B00100000;
  23. const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_CLEARSCREEN = B01000000;
  24. typedef int DISPLAY_pos_id_T ; //reqiested position id in LCD
  25. typedef byte DISPLAY_TARGET_T ; //TODO BIN
  26. struct DISPLAY_S {
  27. int _queue_id ; //current queue task
  28. DISPLAY_pos_seq_T DISPLAY_pos_seq_A = DISPLAY_pos_seq_A_NEXT;
  29. DISPLAY_pos_id_T DISPLAY_pos_id_A; //somehow like position id for menus...
  30. //DISPLAY_array16_T DISPLAY_array16_A ;
  31. #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
  32. DISPLAY_string_T DISPLAY_string_A;
  33. #else
  34. DISPLAY_array16_T DISPLAY_array16_A ;
  35. #endif
  36. //char DISPLAY_array16_A[16] ;
  37. DISPLAY_TARGET_T DISPLAY_TARGET_A ;
  38. time_seq_id_T time_seq_id_A;
  39. time_min_run_T time_min_run_A;
  40. //String DISPLAY_string16_A[16] ;
  41. // DISPLAY_string64_T DISPLAY_string64_A;
  42. // DISPLAY_string_len_T DISPLAY_string_len_A;
  43. } ;
  44. typedef struct DISPLAY_S DISPLAY_T ;
  45. typedef byte DISPLAY_MENU_ITEM_FLAG_T ;
  46. const DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_EMPTY = B00000000;
  47. const DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_INIT = B00000001;
  48. struct DISPLAY_MENU_ITEM_S { //elementy menu
  49. DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_EMPTY ;
  50. DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A; //gdzie sie wyswietla
  51. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ;//gdzie sie wyswietla
  52. DISPLAY_string_T DISPLAY_string_A;
  53. DISPLAY_COLOR_T DISPLAY_COLOR_A ;
  54. time_seq_id_T time_seq_id_A ; //to controll latency
  55. time_min_run_T time_min_run_A ; //to controll latency
  56. } ;
  57. typedef struct DISPLAY_MENU_ITEM_S DISPLAY_MENU_ITEM_T ;
  58. //typedef byte DISPLAY_MENU_ITEM_CONTEXT_OPTIONS_T ;
  59. //struct DISPLAY_MENU_ITEM_OPTIONS_S {
  60. //}
  61. typedef ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_T ;//which index
  62. //ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU
  63. struct DISPLAY_MENU_S {
  64. DISPLAY_CURSOR_X_CHARS_T DISPLAY_MENU_SIZE_X_CHARS_MIN_A; //SIZE
  65. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_MENU_SIZE_Y_CHARS_MIN_A; //SIZE
  66. DISPLAY_CURSOR_X_CHARS_T DISPLAY_MENU_SIZE_X_CHARS_MAX_A; //SIZE
  67. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_MENU_SIZE_Y_CHARS_MAX_A; //SIZE
  68. DISPLAY_COLOR_T DISPLAY_COLOR_A = BLACK ;
  69. time_seq_id_T time_seq_id_A ; //to controll latency
  70. time_min_run_T time_min_run_A ; //to controll latency
  71. /*
  72. DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_MIN_A; //zaznaczenie
  73. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_MIN_A; //zaznaczenie
  74. DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_MAX_A; //zaznaczenie
  75. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_MAX_A; //zaznaczenie
  76. */
  77. DISPLAY_MENU_ITEM_T DISPLAY_MENU_ITEM_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A] ; //elementy menu
  78. ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A ; //ktory jest aktywny element
  79. }
  80. ;
  81. typedef struct DISPLAY_MENU_S DISPLAY_MENU_T ;
  82. struct DISPLAY_PHYSICAL_CHAR_S {
  83. DISPLAY_PHYSICAL_X_PX_T DISPLAY_PHYSICAL_X_PX_A ;
  84. DISPLAY_PHYSICAL_Y_PX_T DISPLAY_PHYSICAL_Y_PX_A ;
  85. DISPLAY_PHYSICAL_X_CHARS_T DISPLAY_PHYSICAL_X_CHARS_A;
  86. DISPLAY_PHYSICAL_Y_CHARS_T DISPLAY_PHYSICAL_Y_CHARS_A;
  87. DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A;
  88. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ;
  89. DISPLAY_textsize_x_T DISPLAY_textsize_x_A;
  90. DISPLAY_textsize_y_T DISPLAY_textsize_y_A;
  91. DISPLAY_MENU_T DISPLAY_MENU_A[2] ;
  92. } ;
  93. const DISPLAY_TARGET_T DISPLAY_TARGET_CONSOLE = B00000001 ;
  94. const DISPLAY_TARGET_T DISPLAY_TARGET_LCD16 = B00000010 ;
  95. static const DISPLAY_TARGET_T DISPLAY_TARGET_DISPLAY128 = B00000100 ;
  96. const DISPLAY_TARGET_T DISPLAY_TARGET_ALL = DISPLAY_TARGET_CONSOLE | DISPLAY_TARGET_LCD16 | DISPLAY_TARGET_DISPLAY128 ;
  97. const DISPLAY_TARGET_T DISPLAY_TARGET_ANY = B00001000 | DISPLAY_TARGET_CONSOLE | DISPLAY_TARGET_LCD16 | DISPLAY_TARGET_DISPLAY128 ;
  98. typedef struct ARDUINO_ATTR_ARRAY_S DISPLAY_T_ARDUINO_ATTR_ARRAY_T ;
  99. typedef struct ARDUINO_ARRAY_INDEX_TABLE_S DISPLAY_ARDUINO_ARRAY_INDEX_TABLE_T ; //DEFAULT INDEX TABLE
  100. typedef struct ARDUINO_ARRAY_INDEX_T_TO_DELETE_S DISPLAY_ARDUINO_ARRAY_INDEX_T_TO_DELETE_T;
  101. typedef ARDUINO_FUNCT_INIT_RESULT_T ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add_DISPLAY_T ;
  102. const DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG = 8 ; //todo 10 linia do debugu?? CAN
  103. const DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_ROTTARY_SW_DEBUG = 9 ; //todo 10 linia do debugu?? CAN
  104. const DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_DEBUG = 10 ; //todo 10 linia do debugu??
  105. static DISPLAY_T DISPLAY_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY] = {} ;
  106. static DISPLAY_T_ARDUINO_ATTR_ARRAY_T DISPLAY_T_ARDUINO_ATTR_ARRAY_A = { //
  107. ARDUINO_ARRAY_INDEX_CURRENT_INIT ,
  108. ARDUINO_ARRAY_INDEX_LAST_INIT ,
  109. ARDUINO_ARRAY_COUNT_T_INIT ,
  110. ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY,
  111. ARDUINO_ARRAY_INDEX_NEXT_INIT
  112. };
  113. static DISPLAY_ARDUINO_ARRAY_INDEX_TABLE_T DISPLAY_ARDUINO_ARRAY_INDEX_TABLE_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY] = {};
  114. static DISPLAY_ARDUINO_ARRAY_INDEX_T_TO_DELETE_T DISPLAY_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A[ARDUINO_ARRAY_INDEX_T_TO_DELETE_S_LIMIT] = {};
  115. struct DISPLAY__print_loop_S {
  116. DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A;
  117. DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A;
  118. String message;
  119. int message_len ;
  120. } ;
  121. typedef struct DISPLAY__print_loop_S DISPLAY__print_loop_T;
  122. typedef byte DISPLAY__print_loop_ACTION_T ;
  123. const DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_ADD = B00000001 ;
  124. const DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_POP = B00000010 ;