//_DISPLAY_func.h /* #if defined(HAS_TFT_ILI9163C) delay(LCDtim); DISPLAY_DEV.setCursor(0,60); DISPLAY_DEV.print(LCDarray1); DISPLAY_DEV.print(" "); DISPLAY_DEV.print(LCDarray2); #endif */ //void _DISPLAY_print void DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_T DISPLAY_pos_seq_A, #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) DISPLAY_string_T DISPLAY_string_A #else DISPLAY_array16_T DISPLAY_array16_A #endif ){ #if defined(DEBUG) if(DEBUG > 6) { Serial.print(F("#20 DsplY:[ ")); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A); //[ARDUINO_ATTR_ARRAY_S_INDEX] Serial.print(F("] # MaxY:[")); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A); //[ARDUINO_ATTR_ARRAY_S_INDEX] Serial.println(F("] ")); } Serial.print(F("#26 Dspl ATTR CURRENT[ ")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A); Serial.print(F("] LAST[")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A); Serial.print(F("] COUNT[")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A); Serial.print(F("] LIMIT[")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A); Serial.print(F("] NEXT:[")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A); Serial.println(F("] ")); #endif #if defined(HAS_TFT_ILI9163C) #endif #if defined(DEBUG) if(DEBUG > 6) { Serial.print(F(" [HAS_TFT_ILI9163C] ")); Serial.print(F(" 27[DEBUG] ")); } #endif Serial.println("] "); //todo position current //todo positions max #if defined(HAS_TFT_ILI9163C) DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A, #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) DISPLAY_string_A, #else DISPLAY_array16_A, #endif DISPLAY_pos_seq_A) ; #else // Serial.println(DISPLAY_array16_A); #endif #if defined(DEBUG) //Serial.end(); //delay(100); //Serial.write(" 72[DEBUG] "); #endif } void DISPLAY__print_IMMEDIATE( DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_T DISPLAY_pos_seq_A, #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) DISPLAY_string_T DISPLAY_string_A, #else DISPLAY_array16_T DISPLAY_array16_A, #endif DISPLAY_TARGET_T DISPLAY_TARGET_A) { if(DISPLAY_TARGET_A & DISPLAY_TARGET_DISPLAY128){ //BIN TEST #if defined(HAS_TFT_ILI9163C) #if defined(DEBUG) if(DEBUG > 6) { // String message(DISPLAY_array16_A); Serial.print(F("#69A DISPLAY__print_IMMEDIATE [DEBUG] to HAS_TFT_ILI9163C Len[")); //Serial.print( message.length()); Serial.print(F("] XM[")); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_CHARS_A); Serial.print(F("] YM[")); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A); Serial.print(F("] YC[")); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A); Serial.print(F("] YF[")); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.println(F("] ")); } #endif DISPLAY_DEV_CTRL__println(DISPLAY_PHYSICAL_CHAR_A, #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) DISPLAY_string_A, #else DISPLAY_array16_A, #endif DISPLAY_pos_seq_A) ; #else #endif // DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, DISPLAY_array16_A); } else if(DISPLAY_TARGET_A & DISPLAY_TARGET_ANY){ //BIN TEST #if defined(DEBUG) if(DEBUG > 6) { Serial.print(F("#69B DISPLAY__print_IMMEDIATE [DEBUG] to DISPLAY__print_ANY Seq[")); Serial.print(DISPLAY_pos_seq_A , BIN); Serial.print(F("] Target[")); Serial.print(DISPLAY_TARGET_A , BIN); Serial.println(F("] ")); } #endif DISPLAY__print_ANY(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) DISPLAY_string_A #else DISPLAY_array16_A #endif ); } else { #if defined(DEBUG) if(DEBUG > 6) { Serial.print(F("#68 DISPLAY__print_IMMEDIATE [DEBUG] else Seq[")); Serial.print(DISPLAY_pos_seq_A , BIN); Serial.print(F("] Target[")); Serial.print(DISPLAY_TARGET_A , BIN); Serial.println(F("] ")); } #endif } } #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) #else void DISPLAY__print_loop(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, DISPLAY__print_loop_ACTION_T DISPLAY__print_loop_ACTION_A ) { //to print while in loop const int DISPLAY__print_loop_INDEX_LIMIT_A = 5; static int DISPLAY__print_loop_INDEX_CURRENT_A = 0 ; static int DISPLAY__print_loop_QUEUE_PEEK_A = 0 ; static DISPLAY__print_loop_T DISPLAY__print_loop_A[5]={} ; if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_ADD) { if((DISPLAY__print_loop_INDEX_CURRENT_A + 1) <= DISPLAY__print_loop_INDEX_LIMIT_A) { DISPLAY__print_loop_INDEX_CURRENT_A ++ ; if(DISPLAY__print_loop_QUEUE_PEEK_A == 0 ) { DISPLAY__print_loop_QUEUE_PEEK_A = DISPLAY__print_loop_INDEX_CURRENT_A ; } DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_X_CHARS_A = DISPLAY_CURSOR_X_CHARS_A ; DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].DISPLAY_CURSOR_Y_CHARS_A = DISPLAY_CURSOR_Y_CHARS_A ; DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message_len = message_len ; //strcpy(DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message, message ); DISPLAY__print_loop_A[DISPLAY__print_loop_INDEX_CURRENT_A].message = message ; } Serial.print(F("#137[DISPLAY__print_loop][ADD] [i]["));Serial.print(DISPLAY__print_loop_INDEX_CURRENT_A); Serial.println("] "); } else if(DISPLAY__print_loop_ACTION_A == DISPLAY__print_loop_ACTION_POP) { Serial.print(F("#137[DISPLAY__print_loop][POP] [i]["));Serial.print(DISPLAY__print_loop_INDEX_CURRENT_A); Serial.print(F("] p["));Serial.print(DISPLAY__print_loop_QUEUE_PEEK_A); Serial.print(F("] ")); if(DISPLAY__print_loop_QUEUE_PEEK_A > 0 ) { DISPLAY_DEV.setCursor(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_X_CHARS_A * DISPLAY_textsize_x_A, DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].DISPLAY_CURSOR_Y_CHARS_A * DISPLAY_textsize_y_A); #if defined(ENABLE_DISPLAY_MENU) #else DISPLAY_DEV.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message); Serial.print(F(" msg[")); Serial.print(DISPLAY__print_loop_A[DISPLAY__print_loop_QUEUE_PEEK_A].message); Serial.print(F("] ")); #endif } else { Serial.print(F(" [PEEK][EMPTY] ")); } Serial.println(F("] ")); } } #endif void DISPLAY__print( DISPLAY_T* DISPLAY_A , DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_T DISPLAY_pos_seq_A, #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) DISPLAY_string_T DISPLAY_string_A, #else DISPLAY_array16_T DISPLAY_array16_A, #endif DISPLAY_TARGET_T DISPLAY_TARGET_A, time_seq_id_T time_seq_id_A, time_min_run_T time_min_run_A //queue ,Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, TASK_TYPE_T TASK_TYPE_A, TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A ) { #ifdef DEBUG_DISPLAY Serial.print(F("127 DISPLAY__print DISPLAY_pos_seq_A[")); Serial.print(BIN8_to_STRING(DISPLAY_pos_seq_A )); Serial.print(F("] DISPLAY_TARGET_A[")); Serial.print(BIN8_to_STRING(DISPLAY_TARGET_A )); Serial.print(F("] [")); Serial.print(F("#26 Dspl ATTR CURRENT[ ")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A); Serial.print(F("] LAST[")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A); Serial.print(F("] COUNT[")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A); Serial.print(F("] LIMIT[")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A); Serial.print(F("] NEXT:[")); Serial.print(DISPLAY_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A); Serial.println(F("] ")); #endif if(DISPLAY_pos_seq_A & DISPLAY_pos_seq_A_IMMEDIATE){ ////BIN TEST #if defined(DEBUG_DISPLAY) //if(DEBUG > 6) { Serial.print(F("#84 DISPLAY__print to DISPLAY__print_IMMEDIATE [DEBUG] else Seq[")); Serial.print(DISPLAY_pos_seq_A , BIN); Serial.print(F("] Target[")); Serial.print(DISPLAY_TARGET_A , BIN); Serial.println(F("] ")); // } #endif DISPLAY__print_IMMEDIATE(DISPLAY_T_ARDUINO_ATTR_ARRAY_A, DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) DISPLAY_string_A, #else DISPLAY_array16_A, #endif DISPLAY_TARGET_A); // Serial.print("#28 running _Slave_Ports_ttl_decrement = "); } else { #if defined(DEBUG) Serial.print(F("#88 DISPLAY__print [DEBUG] else ")); Serial.print(DISPLAY_pos_seq_A , BIN); Serial.println(F("] ")); #endif #if defined(DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________) Serial.print(F("#167 DISABLE_TASK_TYPE_T_DISPLAY_queue_pop________")); #else Serial.print(F("#253 TODO WHY ? BIN DISPLAY_pos_seq_A[")); Serial.print(DISPLAY_pos_seq_A, BIN); Serial.print(F("]& IMM [")); Serial.print(DISPLAY_pos_seq_A_IMMEDIATE, BIN); Serial.print(F("] res[")) ; Serial.print((DISPLAY_pos_seq_A & DISPLAY_pos_seq_A_IMMEDIATE) , BIN ) ; Serial.print(F(" ] String [")) ; Serial.print(DISPLAY_string_A); Serial.print(F("] ")); /* DISPLAY__add_record( DISPLAY_A , DISPLAY_T_ARDUINO_ATTR_ARRAY_A , DISPLAY_PHYSICAL_CHAR_A, DISPLAY_pos_seq_A, #if defined(DISPLAY_array16_T_is_DISPLAY_string_T) DISPLAY_string_A, #else DISPLAY_array16_A, #endif DISPLAY_TARGET_A, time_seq_id_A, time_min_run_A //queue , Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_A, TASK_PORT_ASSOC_A ) ; */ #endif } } void DISPLAY__CURSOR_Y_CHARS__SET(DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, DISPLAY_CURSOR_Y_CHARS_T DISPLAY_CURSOR_Y_CHARS_A ) { #if defined(HAS_TFT_ILI9163C) DISPLAY_DEV__CURSOR_Y_CHARS__SET( DISPLAY_PHYSICAL_CHAR_A, DISPLAY_CURSOR_Y_CHARS_A ); #endif } #if defined(HAS_TFT_ILI9163C) DISPLAY_LATENCY_PASS__POP( time_seq_id_T time_seq_id_A, time_min_run_T time_min_run_A ) { static time_seq_id_T last_time_seq_id_A = time_seq_id_A; static time_min_run_T last_time_min_run_A = time_min_run_A; if(time_seq_id_A <= 1 or time_min_run_A <= 1) { Serial.print(F("[DISPLAY_LATENCY_PASS__POP][ERR][")); Serial.print(time_seq_id_A);Serial.print(F("][")); Serial.print(time_min_run_A); Serial.print(F("]")); delay(2000); } if(time_seq_id_A >= last_time_min_run_A) { last_time_min_run_A = time_min_run_A; return true; } else { return false; } } DISPLAY_DEBUG_LATENCY_PASS__POP( time_seq_id_T time_seq_id_A, time_min_run_T time_min_run_A ) { static time_seq_id_T last_time_seq_id_A = time_seq_id_A; static time_min_run_T last_time_min_run_A = time_min_run_A; if(time_seq_id_A <= 1 or time_min_run_A <= 1) { Serial.print(F("[DISPLAY_LATENCY_PASS__POP][ERR][")); Serial.print(time_seq_id_A);Serial.print(F("][")); Serial.print(time_min_run_A); Serial.print(F("]")); delay(2000); } if(time_seq_id_A >= last_time_min_run_A) { last_time_min_run_A = time_min_run_A; return true; } else { return false; } } #if defined(USE_DISPLAY_char_PA) void DISPLAY_char_P_print(DISPLAY_char24_T &DISPLAY_char_PA ) { DISPLAY_DEV.print(DISPLAY_char_PA); } #endif void DISPLAY__print_menu(DISPLAY_T* DISPLAY_A , DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A , time_seq_id_T time_seq_id_A , time_min_run_T time_min_run_A , Slave_Ports_Status_T* Slave_Ports_Status_A ) { int i; int maxX ; int maxY ; int maxXi ; int maxYi ; int minYi ; int minXi ; int minXselector_context ; int menuYoffset = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A ; int next_tab_pos; String message; // int tab_pos_size = DISPLAY_char24_TAB_SIZE; // 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), //(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] /* 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("] "); 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("] "); 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("] "); 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("] "); Serial.print(" TESTX["); Serial.print(20 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A); Serial.print("] "); Serial.print(" TESTY["); Serial.print(8 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A); Serial.print("] "); Serial.print(" maxX["); Serial.print(maxX); Serial.print("] "); Serial.print(" maxY["); Serial.print(maxY); Serial.print("] "); Serial.print(" color["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_COLOR_A); Serial.print("] "); 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("] "); Serial.println(" ");*/ #if defined(DISPLAY__print_menu_DELAY) Serial.print("D"); //delay(DISPLAY__print_menu_DELAY); #endif if(DISPLAY_LATENCY_PASS__POP(time_seq_id_A, time_min_run_A ) or DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A == true ) { if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A == true ) { SPFTFT2(display,refresh,396); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = false; } if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_MENU_FLAG) { minXselector_context = 1 ; // Serial.print(" [minXselector_context] [MENU SEL] "); } else { minXselector_context = 0 ; } 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 ; 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 ; 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 ; 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 ; #if defined(USE_DISPLAY_char_PA) //debug DISPLAY_DEV.fillRect(0, 8 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A , 120, DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A * 2 , BLUE ); DISPLAY_DEV.setCursor(minXi , 8 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ); DISPLAY_DEV.print("T:"); DISPLAY_DEV.print(time_seq_id_A); DISPLAY_DEV.print(" "); DISPLAY_DEV.print(Slave_Ports_Status_A[1].Exp_state_level_A); DISPLAY_DEV.print(" P:"); #endif // DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[1].DISPLAY_char_PA*); // DISPLAY_char_P_print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[1].DISPLAY_char_PA); #if defined(USE_DISPLAY_string_T) DISPLAY_DEV.setCursor(minXi , 9 * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ); DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[2].DISPLAY_string_A); #endif for(i=ARDUINO_ARRAY_INDEX_FIRST ; i<=ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY_MENU_ITEM_A; i++) { //DISPLAY_PHYSICAL_CHAR_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i] // DISPLAY_DEV.setCursor(20 , (20 + (i * 5))); // DISPLAY_DEV.print("test88"); 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_INITIALIZED and DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_ELEMENT_TO_REFRESH_A == true ) { //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].time_seq_id_A + ARDUINO_LOOP_LATENCY_DISPLAY_MENU > time_seq_id_A ) { // Serial.print(" 366[LAT[ "); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].time_seq_id_A); Serial.print("] "); { 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 ; maxXi = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_PX_A ; // Serial.print(" [Maxi[ "); Serial.print(maxXi); Serial.print("] "); minXi = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_X_CHARS_A ; // Serial.print(" [minXi[ "); Serial.print(minXi); Serial.print("] "); maxYi = 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 ; //if(maxYi > DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_PX_A) maxYi = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_PX_A ; // Serial.print(" [maxYi[ "); Serial.print(maxYi); Serial.print("] "); minYi = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A ; // Serial.print(" [minYi[ "); Serial.print(minYi); Serial.print("] "); //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("] "); /* DISPLAY_DEV.fillRect( (0 + minXselector_context), ((DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_CURSOR_Y_CHARS_A + 1) * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A), 100, DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A, BROWN ); */ DISPLAY_DEV.fillRect(minXselector_context, maxYi , (maxXi - minXselector_context), minYi , DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_COLOR_A ); if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG) { DISPLAY_DEV.fillRect( ( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].Exp_state_level_A / 3) , maxYi , (( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].Exp_state_level_A / 3) + 10) //maxXi , minYi, YELLOW ); } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG) { if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG) { //DISPLAY_DEV.setTextColor(WHITE, BLACK); // DISPLAY_DEV.setCursor(minXi , maxYi ); // DISPLAY_DEV.print("[ -- ] / [ + ]");DISPLAY_DEV.setTextColor(WHITE); DISPLAY_DEV.fillRect( 0, maxYi , maxXi, minYi, YELLOW ); } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG) { DISPLAY_DEV.fillRect( 0, maxYi ,( maxXi /3 ), minYi, WHITE ); DISPLAY_DEV.fillRect( (maxXi /3), maxYi ,( maxXi /3 * 2 ), minYi, BLACK ); DISPLAY_DEV.fillRect( (maxXi /3 * 2), maxYi , maxXi, minYi, WHITE ); //DISPLAY_DEV.setCursor(minXi , maxYi ); DISPLAY_DEV.setTextColor(WHITE, BLACK); //DISPLAY_DEV.print("[ ON ] / [ OFF ] ");DISPLAY_DEV.setTextColor(WHITE); } else { DISPLAY_DEV.fillRect( 0, maxYi , maxXi, minYi, DISPLAY_DEV.Color24To565(0x660000) //RED ); //DISPLAY_DEV.setCursor(minXi , maxYi ); DISPLAY_DEV.setTextColor(WHITE, BLACK); //DISPLAY_DEV.print("[ ? ] / [ ? ] ");DISPLAY_DEV.setTextColor(WHITE); } } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_FLAG) { DISPLAY_DEV.fillRect( 0, maxYi , maxXi, minYi, 0x0210 ); } else if(minXselector_context > 0) {//menu context DISPLAY_DEV.fillRect( 0, maxYi , 5, minYi, RED ); } if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_TOGGLE_FLAG or Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].I2C_driver == I2C_driver_PCF8574 or Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].I2C_driver == I2C_driver_PHYSICAL_INPUT_PORT_DIGITAL ) { //ic_sw_mY = wysokosc, nie wspolrzedne int ic_sw_mX = maxXi - 1.4 * abs(minYi) ; int ic_sw_MX = maxXi ; int ic_sw_mY = minYi ; int ic_sw_MY = maxYi ; int ic_sw_circl_X = ic_sw_mX + abs(ic_sw_mX - ic_sw_MX)/4 ; int ic_sw_circl_Y = ic_sw_MY + ic_sw_mY/2 ;//- (abs(ic_sw_mY - ic_sw_MY) /2) ; //MY+ = NA DOLE, mY+ = gora int ic_sw_circl_radius = abs(ic_sw_mY) /6 ; // - ic_sw_MY int ic_sw_rect_w = abs(ic_sw_mX - ic_sw_MX) ; int ic_sw_rect_h = abs(ic_sw_mY) ; // - ic_sw_MY int ic_sw_rect_radius = abs(ic_sw_mY) /5 ;//ic_sw_MY DISPLAY_DEV.fillRect(ic_sw_mX, ic_sw_MY , ic_sw_MX , ic_sw_mY , WHITE); if(Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A > 0) { DISPLAY_DEV.fillCircle(ic_sw_circl_X, ic_sw_circl_Y , ic_sw_circl_radius+1, BLACK); DISPLAY_DEV.fillCircle(ic_sw_circl_X, ic_sw_circl_Y , ic_sw_circl_radius, RED); } else { ic_sw_circl_X = ic_sw_MX - abs(ic_sw_mX - ic_sw_MX)/4 ; DISPLAY_DEV.fillCircle(ic_sw_circl_X, ic_sw_circl_Y , ic_sw_circl_radius, BLACK ); // } // DISPLAY_DEV.fillRect( 0, maxYi ,( maxXi /3 ), minYi, WHITE ); // DISPLAY_DEV.fillRect( (maxXi /3), maxYi ,( maxXi /3 * 2 ), minYi, BLACK ); // DISPLAY_DEV.fillRect( (maxXi /3 * 2), maxYi , maxXi, minYi, WHITE ); //DISPLAY_DEV.setCursor(minXi , maxYi ); DISPLAY_DEV.setTextColor(WHITE, BLACK); //DISPLAY_DEV.print("[ ON ] / [ OFF ] ");DISPLAY_DEV.setTextColor(WHITE); } //draw level DISPLAY_DEV.drawLine( ( Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A / 3) , (i * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A) - 1, (( Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A / 3) + 10 ) //maxXi , (i * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A) - 1 ,DISPLAY_DEV.Color24To565(0x444400) ); /*if(maxYi == 0 ) { Serial.print(" 404[maxYi]==0 for i[");Serial.print(i);Serial.print(" ] "); Serial.print("FLAG");Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_ITEM_FLAG_A, BIN);Serial.print(" ] "); Serial.print("messg[");Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_string_A);Serial.print("] "); Serial.print("menuYoffset[");Serial.print(menuYoffset);Serial.print("] "); } */ DISPLAY_DEV.setCursor(minXi , maxYi ); //[ARDUINO_ATTR_ARRAY_S_INDEX] // Serial.print(" SetCursorY["); Serial.print(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); Serial.print("] "); //Serial.print("462:CA:"); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char_A); //DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_string_A); //DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char_A); //DISPLAY_DEV.print("test 123"); //DISPLAY_DEV.print("test 123"); next_tab_pos = 1 ; //DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A * 6 //MESSAGE BEGIN //EOF MESSAGE if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_ELEMENT_TO_REFRESH_A == true) { if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_MENU_ITEM_CLASS_A == DISPLAY_MENU_ITEM_CLASS_MENU_TITLE) { #include "_DISPLAY_func_PRINT_CLASS_MENU_TITLE.h" } else { #include "_DISPLAY_func_PRINT_PORT_ELEMENT.h" } for (int iA = 0; iA < 24; iA++) { if(iA % DISPLAY_char24_TAB_SIZE == 0) next_tab_pos++ ; //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char24_A[iA] == TAB) { if(String(message[iA]) == TAB_S) { //move cursor to optimal tab pos DISPLAY_DEV.setCursor( (next_tab_pos * DISPLAY_char24_TAB_SIZE * DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_x_A ) , maxYi ); } else { //DISPLAY_DEV.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_char24_A[iA]); DISPLAY_DEV.print(message[iA]); } } DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_A[i].DISPLAY_ELEMENT_TO_REFRESH_A = false; } // DISPLAY_DEV.print("test 123"); } } } } else { //if((DISPLAY_LATENCY_PASS__POP(time_seq_id_A, time_min_run_A )) // SPFTFT2(display,bypassed,572); } } #endif #include "_Slave_Ports_action_func.h" #if defined(HAS_TFT_ILI9163C) void DISPLAY_MENU_SELECTOR(DISPLAY_T* DISPLAY_A , DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A, Slave_Ports_Status_T* Slave_Ports_Status_A , Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A, // DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A , time_seq_id_T time_seq_id_A , time_min_run_T time_min_run_A , //DISPLAY_MENU_SELECTOR_STATUS_T DISPLAY_MENU_SELECTOR_STATUS_A , //; //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, DISPLAY_MENU_SELECTOR_triggerCountOld_T DISPLAY_MENU_SELECTOR_triggerCountOld_A, DISPLAY_MENU_SELECTOR_triggerCount_T DISPLAY_MENU_SELECTOR_triggerCount_A ) { if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A == 0 ) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print(" [SEL_INIT] "); #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A = ARDUINO_ARRAY_INDEX_FIRST ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ; } #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print(" [SEL_STATUS["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A, BIN); Serial.print("] "); Serial.print(" [MENU_INDEX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A); Serial.print("] "); Serial.print(" [ITEM_INDEX["); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A); Serial.print("] "); #endif if(DISPLAY_MENU_SELECTOR_oldEncPos_A != DISPLAY_MENU_SELECTOR_encoderPos_A ) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) //Serial.print(" #383[ENC][CHG][ROOT] "); SPFTFTFT2(encoder,changed,root,-650); #endif if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print(" #385[DISPLAY_MENU_SELECTOR_MENU_FLAG] "); #endif if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print(" #386[ENCODER][CHANGED]< "); #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A --; if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A <= ARDUINO_ARRAY_INDEX_FIRST ) { DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A = ARDUINO_ARRAY_INDEX_FIRST ; #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("#387[NOT][PREV][MENU]"); #endif } } else { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("#386[ENCODER][CHANGED]> "); #endif if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A - 1].DISPLAY_MENU_ITEM_A[1].DISPLAY_MENU_ITEM_FLAG_A == DISPLAY_MENU_ITEM_FLAG_EMPTY) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("#388[NOT][NEXT][MENU]"); #endif } else { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("#388[NEXT][MENU]++"); #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A ++; } } //encoderpos DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ; #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("[ WILL MARK MENU CONETXT ]"); #endif } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_FLAG) { //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("[ITEM][CONTEXT]"); #endif if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print(" #482[ENCODER][CHANGED]< "); #endif if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A == ARDUINO_ARRAY_INDEX_FIRST) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print(" #485[ENCODER][NO MORE LEFT] "); #endif } else { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print(" #485[ENCODER][MOVED] "); #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_EMPTY_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A --; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } } else if(DISPLAY_MENU_SELECTOR_oldEncPos_A < DISPLAY_MENU_SELECTOR_encoderPos_A) { // if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) SPFTFT2(encoder,changed,482); #endif if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A + 1)].DISPLAY_MENU_ITEM_FLAG_A == DISPLAY_MENU_ITEM_FLAG_INITIALIZED) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) //Serial.print(" #482[ENCODER][MARKED]> "); SPFTFT2(encoder,marked,482); #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_EMPTY_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A ++; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } } //else if(DISPLAY_MENU_SELECTOR_oldEncPos_A < DISPLAY_MENU_SELECTOR_encoderPos_A) } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG) { // else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_FLAG) //rotate selectors SPL(); SPFTFTFT2(encoder,item,option,-745);SPFT2(flag,(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A, BIN)); if(DISPLAY_MENU_SELECTOR_oldEncPos_A != DISPLAY_MENU_SELECTOR_encoderPos_A) { if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG) { SPFTFTFTFT(selector,item,options,level); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A - DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG) { SPFTFTFTFT(selector,item,options,toggle); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A - DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } else { if( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_CLASS_A & DISPLAY_MENU_ITEM_CLASS_MENU_TITLE) { SPFT(previous);SPFTFTFTFT2(menu,item,class,title,(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_ITEM_CLASS_A , BIN)); } else if( Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A].I2C_driver == I2C_driver_PCF8574 // or todo else digital ) { SPFTFT(set,digital); SPFTFTFTFT(selector,item,options,toggle); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_TOGGLE_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } else { SPFT(else);SPFTFTFTFT(selector,item,options,level); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A | DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } } } } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_TOGGLE_FLAG) { SPFT(previous);SPFTFTFTFT(selector,item,use,toggle); SPFTFT2(new,todo,-785); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A ; if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A < 1) { SPFTFT(toggle,enable); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = 255 ; } else { SPFTFT(toggle,disable); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = 0 ; } TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={0,0,DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A}; Slave_Ports_action_func(Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_A , Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_request_set_new_Exp_state , TASK_PORT_ASSOC_A, time_seq_id_A, time_min_run_A, ARDUINO_ARRAY_INDEX_NOT_SET , Exp_state_ON_USE_LEVEL , DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A ); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG) { //else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_FLAG) SPL(); SPFTFT2(use,level,-812); TASK_PORT_ASSOC_T TASK_PORT_ASSOC_SMOOTH_A ; TASK_PORT_ASSOC_SMOOTH_A.Slave_Ports_Status_T_INDEX = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A ; TASK_PORT_ASSOC_SMOOTH_A.DISPLAY_MENU_INDEX_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A; TASK_PORT_ASSOC_SMOOTH_A.DISPLAY_MENU_ITEM_INDEX_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A; //TASK_PORT_ASSOC_SMOOTH_A.Exp_state_level_NEW_DELTA_A = 15; if(DISPLAY_MENU_SELECTOR_oldEncPos_A > DISPLAY_MENU_SELECTOR_encoderPos_A) { TASK_PORT_ASSOC_SMOOTH_A.Exp_state_level_NEW_DELTA_A = -2; SPFT(minus);SPFT2(encoder,DISPLAY_MENU_SELECTOR_encoderPos_A);SPFT2(old,DISPLAY_MENU_SELECTOR_oldEncPos_A); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A); if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A > 0) { SPL();SPFTFT2(millis,debug,748); PROGMEM_CONSOLE_WRITE_CHAR("#748",TASK_TYPE_T_Set_Port_Smooth_forward__); if(encoderPos_t < millis() ) { SPFT2(overload,1000);SP(encoderPos_t - millis()) ; PROGMEM_CONSOLE_WRITE_CHAR(">1000",TASK_TYPE_T_Set_Port_Smooth_forward__); encoderPos_t = millis() + 1000 ; encoderPos_t1 = millis() + 500 ; encoderPos_t2 = millis() + 250 ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 1, ARDUINO_ARRAY_INDEX_NOT_SET) ; } else if(encoderPos_t1 < millis() ) { SPL(); SPFT2(overload,500);SP(encoderPos_t - millis()); PROGMEM_CONSOLE_WRITE_CHAR(">500",TASK_TYPE_T_Set_Port_Smooth_forward__); encoderPos_t = millis() + 1000 ; encoderPos_t1 = millis() + 500 ; encoderPos_t2 = millis() + 250 ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 50, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 100, ARDUINO_ARRAY_INDEX_NOT_SET) ; } else if(encoderPos_t2 < millis() ) { SPL(); SPFT2(overload,250);SP(encoderPos_t - millis()); PROGMEM_CONSOLE_WRITE_CHAR(">250",TASK_TYPE_T_Set_Port_Smooth_forward__); encoderPos_t = millis() + 1000 ; encoderPos_t1 = millis() + 500 ; encoderPos_t2 = millis() + 250 ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 25, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 50, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 75, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 100, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 125, ARDUINO_ARRAY_INDEX_NOT_SET) ; } else { SPFT2(overload,0); SP(encoderPos_t - millis()); } DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A ; /* DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A -=5 * abs(DISPLAY_MENU_SELECTOR_oldEncPos_A - DISPLAY_MENU_SELECTOR_encoderPos_A) ; //--; if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A < 0 ) DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = 0 ; TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={0,0,DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A}; Slave_Ports_action_func(Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_A , Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_request_set_new_Exp_state , TASK_PORT_ASSOC_A, time_seq_id_A, time_min_run_A, ARDUINO_ARRAY_INDEX_NOT_SET , Exp_state_ON_USE_LEVEL , DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A ); */ } //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A > 0) { } else if(DISPLAY_MENU_SELECTOR_oldEncPos_A < DISPLAY_MENU_SELECTOR_encoderPos_A) { TASK_PORT_ASSOC_SMOOTH_A.Exp_state_level_NEW_DELTA_A = 2; if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A < 254) { SPL();SPFTFT2(millis,debug,748); PROGMEM_CONSOLE_WRITE_CHAR("#748",TASK_TYPE_T_Set_Port_Smooth_forward__); if(encoderPos_t < millis() ) { SPFT2(overload,1000);SP(encoderPos_t - millis()) ; PROGMEM_CONSOLE_WRITE_CHAR(">1000",TASK_TYPE_T_Set_Port_Smooth_forward__); encoderPos_t = millis() + 1000 ; encoderPos_t1 = millis() + 500 ; encoderPos_t2 = millis() + 250 ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 1, ARDUINO_ARRAY_INDEX_NOT_SET) ; } else if(encoderPos_t1 < millis() ) { SPL(); SPFT2(overload,500);SP(encoderPos_t - millis()); PROGMEM_CONSOLE_WRITE_CHAR(">500",TASK_TYPE_T_Set_Port_Smooth_forward__); encoderPos_t = millis() + 1000 ; encoderPos_t1 = millis() + 500 ; encoderPos_t2 = millis() + 250 ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 50, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 100, ARDUINO_ARRAY_INDEX_NOT_SET) ; } else if(encoderPos_t2 < millis() ) { SPL(); SPFT2(overload,250);SP(encoderPos_t - millis()); PROGMEM_CONSOLE_WRITE_CHAR(">250",TASK_TYPE_T_Set_Port_Smooth_forward__); encoderPos_t = millis() + 1000 ; encoderPos_t1 = millis() + 500 ; encoderPos_t2 = millis() + 250 ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 25, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 50, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 75, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 100, ARDUINO_ARRAY_INDEX_NOT_SET) ; _Slave_Ports_queue__add( Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_Set_Port_Smooth_forward__ ,TASK_PORT_ASSOC_SMOOTH_A ,millis(), millis() + 125, ARDUINO_ARRAY_INDEX_NOT_SET) ; } else { SPFT2(overload,0); SP(encoderPos_t - millis()); } DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A ; /* DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A += 2 ; //+; if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A >254) DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = 254; TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={0,0,DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A}; Slave_Ports_Status_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A].Exp_state_level_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A ; Slave_Ports_action_func(Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_A , Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A , TASK_TYPE_T_request_set_new_Exp_state , TASK_PORT_ASSOC_A, time_seq_id_A, time_min_run_A, ARDUINO_ARRAY_INDEX_NOT_SET , Exp_state_ON_USE_LEVEL , DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A ); */ } //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A < 254) { } else { // if(DISPLAY_MENU_SELECTOR_oldEncPos_A < DISPLAY_MENU_SELECTOR_encoderPos_A) { SPFT2(error,750); //Serial.print("[ERR}750E"); } } //else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG) } else if(DISPLAY_MENU_SELECTOR_triggerCountOld_A != DISPLAY_MENU_SELECTOR_triggerCount_A) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) //Serial.print("[TRIG++]?"); SPFTFT(trigger,plus); #endif if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) //Serial.print("[TOGGLE][Fr][SELECTOR_MENU_FLAG]>ITEM"); SPFTFTFTFT2(previous,selector,menu,flag,-949);// #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ; SPFTFTFT(selector,item,flag); #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("[ITEM]>1"); #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A = ARDUINO_ARRAY_INDEX_FIRST ; #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("[ITEM]>MARK1"); #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_FLAG) { //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_MENU_FLAG) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) //Serial.print("[TOGGLE][Fr][SELECTOR_MENU_FLAG]>ITEM>OPTIONS"); SPFTFTFTFT(previous,selector,item,flag) ; SPFTFTFTFT(selector,item,options,flag) ; #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG ; #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("[ITEM]>1"); #endif DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; #if defined(DISPLAY_MENU_SELECTOR_DEBUG) Serial.print("[ITEM]>MARK1"); #endif //} else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG) { } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_TOGGLE_FLAG ) { SPFT(previous); SPFTFTFTFT(selector,item,options,toggle) ; SPFT(new); SPFTFTFTFT(item,options,toggle,use) ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_TOGGLE_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_TOGGLE_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_TOGGLE_FLAG) { SPFT(previous); SPFTFTFTFT(item,options,toggle,use) ; SPFT(new); SPFTFTFTFT2(menu,selector,item,flag,-987); DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } else if((DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_LEVEL_FLAG)) { //or (DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG )) { //== DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG) { //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG SPFTFTFTFT(previous,options,level,flag) ;// SPFT(or); SPFTFTFT(item,options,flag) ; if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A > 0 ) { DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].Exp_state_level_A = Slave_Ports_Status_A[ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A ].Exp_state_level_A ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; SPFTFTFTFT(selector,use,level,flag); } else {//if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].ARDUINO_ARRAY_INDEX_A > 0 ) { //exit parent DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; SPFTFTFT2(selector,menu,flag,-1008); } //else } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG) { //if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG) //back to elements DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_ITEM_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; SPFTFTFTFT(previous,use,level,flag); SPFTFTFTFT(menu,selector,item,flag); } else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A & DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_FLAG) { SPFT(previous); SPFTFTFTFT(selector,item,options,flag) ; SPFT(new); SPFTFTFTFT(menu,selector,menu,flag) ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_MENU_SELECTOR_STATUS_A = DISPLAY_MENU_SELECTOR_MENU_FLAG ; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_INDEX_A].DISPLAY_MENU_ITEM_A[DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_ITEM_INDEX_A].DISPLAY_ELEMENT_TO_REFRESH_A = true; DISPLAY_PHYSICAL_CHAR_A.DISPLAY_ELEMENT_TO_REFRESH_A = true; } else { //else if(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A == DISPLAY_MENU_SELECTOR_ITEM_OPTIONS_USE_LEVEL_FLAG) SPFT2(else,777); Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A, BIN); } } // if(DISPLAY_MENU_SELECTOR_oldEncPos_A != DISPLAY_MENU_SELECTOR_encoderPos_A ) { #if defined(DISPLAY_MENU_SELECTOR_DEBUG) SPFTFT2(debug,trigger,String(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A, BIN));//Serial.print(DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_SELECTOR_A[1].DISPLAY_MENU_SELECTOR_STATUS_A, BIN); #endif Serial.println(" "); } #endif