typedef char DISPLAY_array16_T[16] ; typedef String DISPLAY_string64_T[16]; typedef String DISPLAY_string_T; static String DISPLAY_array16_FILL_A = " "; typedef ARDUINO_SIZE_T DISPLAY_string_len_T ; typedef int DISPLAY_PHYSICAL_X_PX_T ; //fixyczna rozczielczosc typedef int DISPLAY_PHYSICAL_Y_PX_T ;//fixyczna rozczielczosc typedef int DISPLAY_CURSOR_T ; //dotyczy kursora typedef DISPLAY_CURSOR_T DISPLAY_CURSOR_SHIFT_Y_T; //dotyczy kursora - jak jest za duzo rekordow, to przegladamy zgodnie z tym indeksem typedef DISPLAY_CURSOR_T DISPLAY_PHYSICAL_X_CHARS_T ; //fixyczna rozczielczosc w znakach w domyslnej czcionce typedef DISPLAY_CURSOR_T DISPLAY_PHYSICAL_Y_CHARS_T ;//fixyczna rozczielczosc w znakach w domyslnej czcionce typedef DISPLAY_CURSOR_T DISPLAY_CURSOR_X_CHARS_T ; //aktualna pozycja kursora X w domyslnej czcionce typedef DISPLAY_CURSOR_T DISPLAY_CURSOR_Y_CHARS_T ; //aktualna pozycja kursora Y w domyslnej czcionce typedef int DISPLAY_textsize_T ; typedef DISPLAY_textsize_T DISPLAY_textsize_x_T ; typedef DISPLAY_textsize_T DISPLAY_textsize_y_T ; typedef long DISPLAY_COLOR_T ; typedef int DISPLAY_pos_seq_T ; //reqiested position in LCD const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_EXACT = B00000001; const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_NEXT = B00000010; const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_IMMEDIATE = B00000100; const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_QUEUE = B00001000; const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_ATTIME = B00010000; const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_INVALIDAFTER = B00100000; const DISPLAY_pos_seq_T DISPLAY_pos_seq_A_CLEARSCREEN = B01000000; typedef int DISPLAY_pos_id_T ; //reqiested position id in LCD typedef byte DISPLAY_TARGET_T ; //TODO BIN struct DISPLAY_S { int _queue_id ; //current queue task DISPLAY_pos_seq_T DISPLAY_pos_seq_A = DISPLAY_pos_seq_A_NEXT; DISPLAY_pos_id_T DISPLAY_pos_id_A; //somehow like position id for menus... //DISPLAY_array16_T DISPLAY_array16_A ; #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) DISPLAY_string_T DISPLAY_string_A; #else DISPLAY_array16_T DISPLAY_array16_A ; #endif //char DISPLAY_array16_A[16] ; DISPLAY_TARGET_T DISPLAY_TARGET_A ; time_seq_id_T time_seq_id_A; time_min_run_T time_min_run_A; //String DISPLAY_string16_A[16] ; // DISPLAY_string64_T DISPLAY_string64_A; // DISPLAY_string_len_T DISPLAY_string_len_A; } ; typedef struct DISPLAY_S DISPLAY_T ; typedef byte DISPLAY_MENU_ITEM_FLAG_T ; const DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_EMPTY = B00000000; const DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_DELETED = B00000010; const DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_INITIALIZED = B10000001; typedef byte DISPLAY_MENU_ITEM_CLASS_T ; const DISPLAY_MENU_ITEM_CLASS_T DISPLAY_MENU_ITEM_CLASS_UNSET = B00000000; //for title const DISPLAY_MENU_ITEM_CLASS_T DISPLAY_MENU_ITEM_CLASS_MENU_TITLE = B00000001; //for title const DISPLAY_MENU_ITEM_CLASS_T DISPLAY_MENU_ITEM_CLASS_ITEM = B00000010;//for std item typedef ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_T ;//which index typedef byte DISPLAY_MENU_SELECTOR_STATUS_T ; const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_EMPTY_FLAG = B00000000 ; //when rotating const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_MENU_FLAG = B00000010 ; //when rotating const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_FLAG = B00000100 ; //when rotating const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG = B00001000 ; //when rotating const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG = B00010000 ; //when rotating const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG = B00100000 ; //when rotating const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG = B01000000 ; //when rotating const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_TOGGLE_FLAG = B10000000 ; //when rotating const DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_FLAG_INIT = DISPLAY_MENU_SELECTOR_MENU_FLAG ; typedef byte DISPLAY_MENU_SELECTOR_oldEncPos_T ; typedef byte DISPLAY_MENU_SELECTOR_encoderPos_T ; typedef byte DISPLAY_MENU_SELECTOR_triggerCountOld_T ; typedef byte DISPLAY_MENU_SELECTOR_triggerCount_T ; typedef byte DISPLAY_MENU_SELECTOR_SWITCH_T ; const DISPLAY_MENU_SELECTOR_SWITCH_T DISPLAY_MENU_SELECTOR_SWITCH_NOT_PUSHED = B00000010 ; const DISPLAY_MENU_SELECTOR_SWITCH_T DISPLAY_MENU_SELECTOR_SWITCH_PUSHED = B00000100 ; const DISPLAY_MENU_SELECTOR_SWITCH_T DISPLAY_MENU_SELECTOR_SWITCH_UNKNOWN = B00001000 ; struct DISPLAY_MENU_SELECTOR_S { ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_INDEX_A = ARDUINO_ARRAY_INDEX_FIRST; //selected menu ARDUINO_ARRAY_ATTR_T DISPLAY_MENU_ITEM_INDEX_A ; //selected menu DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ; //which mode DISPLAY_MENU_SELECTOR_SWITCH_T DISPLAY_MENU_SELECTOR_SWITCH_A ; DISPLAY_MENU_SELECTOR_oldEncPos_T DISPLAY_MENU_SELECTOR_oldEncPos_A; //values DISPLAY_MENU_SELECTOR_encoderPos_T DISPLAY_MENU_SELECTOR_encoderPos_A ; //values }; typedef struct DISPLAY_MENU_SELECTOR_S DISPLAY_MENU_SELECTOR_T ; typedef byte DISPLAY_MENU_ITEM_Exp_state_level_T ; const byte DISPLAY_char24_T_SIZE = 24 ; typedef char DISPLAY_char_T ; typedef DISPLAY_char_T DISPLAY_char24_T[DISPLAY_char24_T_SIZE] ; //typedef int DISPLAY_char_PT ; struct DISPLAY_MENU_ITEM_S { //elementy menu DISPLAY_MENU_ITEM_FLAG_T DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_EMPTY ; //czy nie jest do usuniecia itp ... DISPLAY_MENU_ITEM_CLASS_T DISPLAY_MENU_ITEM_CLASS_A = DISPLAY_MENU_ITEM_CLASS_UNSET; // DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A; //gdzie sie wyswietla DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ;//gdzie sie wyswietla #if defined(USE_DISPLAY_string_T) DISPLAY_string_T DISPLAY_string_A; #endif DISPLAY_COLOR_T DISPLAY_COLOR_A ; DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_STATUS_A ; //opcja kontekstu selektora time_seq_id_T time_seq_id_A ; //to controll latency time_min_run_T time_min_run_A ; //to controll latency DISPLAY_MENU_ITEM_Exp_state_level_T Exp_state_level_A ; ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ; //index do czegos - portu //DISPLAY_char_PT DISPLAY_char_PA ; //pointer do wiadomosci #if defined(USE_DISPLAY_char_PA) DISPLAY_char24_T *DISPLAY_char_PA ; //pointer do wiadomosci #endif DISPLAY_char24_T DISPLAY_char24_A; } ; typedef struct DISPLAY_MENU_ITEM_S DISPLAY_MENU_ITEM_T ; //typedef byte DISPLAY_MENU_ITEM_CONTEXT_OPTIONS_T ; //struct DISPLAY_MENU_ITEM_OPTIONS_S { //} //ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU struct DISPLAY_MENU_S { DISPLAY_CURSOR_X_CHARS_T DISPLAY_MENU_SIZE_X_CHARS_MIN_A; //SIZE LEFT UPPER CORNER X DISPLAY_CURSOR_Y_CHARS_T DISPLAY_MENU_SIZE_Y_CHARS_MIN_A; //SIZE LEFT UPPER CORNER Y DISPLAY_CURSOR_X_CHARS_T DISPLAY_MENU_SIZE_X_CHARS_MAX_A; //SIZE RIGHT LOWER CORNER X DISPLAY_CURSOR_Y_CHARS_T DISPLAY_MENU_SIZE_Y_CHARS_MAX_A; //SIZE RIGHT LOWER CORNER Y DISPLAY_COLOR_T DISPLAY_COLOR_A = BLACK ; time_seq_id_T time_seq_id_A ; //to controll latency time_min_run_T time_min_run_A ; //to controll latency /* DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_MIN_A; //zaznaczenie DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_MIN_A; //zaznaczenie DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_MAX_A; //zaznaczenie DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_MAX_A; //zaznaczenie */ DISPLAY_MENU_ITEM_T DISPLAY_MENU_ITEM_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A] ; //elementy menu ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A ; //ktory jest aktywny element DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_STATUS_A ; //opcja kontekstu selektora DISPLAY_CURSOR_SHIFT_Y_T DISPLAY_CURSOR_SHIFT_Y_A = 0; // } ; typedef struct DISPLAY_MENU_S DISPLAY_MENU_T ; struct DISPLAY_PHYSICAL_CHAR_S { DISPLAY_PHYSICAL_X_PX_T DISPLAY_PHYSICAL_X_PX_A ; DISPLAY_PHYSICAL_Y_PX_T DISPLAY_PHYSICAL_Y_PX_A ; DISPLAY_PHYSICAL_X_CHARS_T DISPLAY_PHYSICAL_X_CHARS_A; DISPLAY_PHYSICAL_Y_CHARS_T DISPLAY_PHYSICAL_Y_CHARS_A; DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A; DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ; DISPLAY_textsize_x_T DISPLAY_textsize_x_A; DISPLAY_textsize_y_T DISPLAY_textsize_y_A; DISPLAY_MENU_T DISPLAY_MENU_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU] ; DISPLAY_MENU_SELECTOR_T DISPLAY_MENU_SELECTOR_A[1] ; } ; typedef struct DISPLAY_PHYSICAL_CHAR_S DISPLAY_PHYSICAL_CHAR_T ; const DISPLAY_TARGET_T DISPLAY_TARGET_CONSOLE = B00000001 ; const DISPLAY_TARGET_T DISPLAY_TARGET_LCD16 = B00000010 ; static const DISPLAY_TARGET_T DISPLAY_TARGET_DISPLAY128 = B00000100 ; const DISPLAY_TARGET_T DISPLAY_TARGET_ALL = DISPLAY_TARGET_CONSOLE | DISPLAY_TARGET_LCD16 | DISPLAY_TARGET_DISPLAY128 ; const DISPLAY_TARGET_T DISPLAY_TARGET_ANY = B00001000 | DISPLAY_TARGET_CONSOLE | DISPLAY_TARGET_LCD16 | DISPLAY_TARGET_DISPLAY128 ; typedef struct ARDUINO_ATTR_ARRAY_S DISPLAY_T_ARDUINO_ATTR_ARRAY_T ; typedef struct ARDUINO_ARRAY_INDEX_TABLE_S DISPLAY_ARDUINO_ARRAY_INDEX_TABLE_T ; //DEFAULT INDEX TABLE typedef struct ARDUINO_ARRAY_INDEX_T_TO_DELETE_S DISPLAY_ARDUINO_ARRAY_INDEX_T_TO_DELETE_T; typedef ARDUINO_FUNCT_INIT_RESULT_T ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add_DISPLAY_T ; const DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG = 8 ; //todo 10 linia do debugu?? CAN const DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_ROTTARY_SW_DEBUG = 9 ; //todo 10 linia do debugu?? CAN const DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_DEBUG = 10 ; //todo 10 linia do debugu?? static DISPLAY_T DISPLAY_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY] = {} ; static DISPLAY_T_ARDUINO_ATTR_ARRAY_T DISPLAY_T_ARDUINO_ATTR_ARRAY_A = { // ARDUINO_ARRAY_INDEX_CURRENT_INIT , ARDUINO_ARRAY_INDEX_LAST_INIT , ARDUINO_ARRAY_COUNT_T_INIT , ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY, ARDUINO_ARRAY_INDEX_NEXT_INIT }; static DISPLAY_ARDUINO_ARRAY_INDEX_TABLE_T DISPLAY_ARDUINO_ARRAY_INDEX_TABLE_A[ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY] = {}; 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] = {}; struct DISPLAY__print_loop_S { DISPLAY_CURSOR_X_CHARS_T DISPLAY_CURSOR_X_CHARS_A; DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A; String message; int message_len ; } ; typedef struct DISPLAY__print_loop_S DISPLAY__print_loop_T; typedef byte DISPLAY__print_loop_ACTION_T ; const DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_ADD = B00000001 ; const DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_POP = B00000010 ; const DISPLAY_CURSOR_T DISPLAY_char24_TAB_SIZE = 3 ; #if defined(USE_DISPLAY_char_PA) void DISPLAY_char_P( String message , DISPLAY_char24_T &DISPLAY_char_PA ) {//DISPLAY_char24_T DISPLAY_char24_A //DISPLAY_char24_PT //DISPLAY_char24_T temp_P; DISPLAY_char24_T temp ; // int temp_P = *DISPLAY_char_PA; message.toCharArray(temp, message.length()); //temp = *DISPLAY_char24_A; //return *DISPLAY_char24_A; //return *temp ; //temp_P = *temp; *DISPLAY_char_PA = *temp; } #endif /* DISPLAY_char_PT DISPLAY_char_P( String message ) {//DISPLAY_char24_T DISPLAY_char24_A //DISPLAY_char24_PT DISPLAY_char24_T temp ; message.toCharArray(temp, message.length()); //temp = *DISPLAY_char24_A; //return *DISPLAY_char24_A; return *temp ; } */ //DISPLAY_char24_T DISPLAY_char_PV( DISPLAY_char_PT DISPLAY_char_PA ) {//DISPLAY_char24_T DISPLAY_char24_A //return DISPLAY_char_PA; //}