static void setrowsdcard(uint32_t number = 0) { uint16_t fileCnt = card.getnrfilenames(); uint32_t i = 0; card.getWorkDirName(); if (fullName[0] != '/') { Folderup.setShow(); Folderup.attachPop(sdfolderUpPopCallback); sdfolder.setText(fullName); } else { Folderup.detachPop(); Folderup.setHide(); sdfolder.setText(""); } for (uint8_t row = 0; row < 6; row++) { i = row + number; if (i < fileCnt) { card.getfilename(i); printrowsd(row, card.filenameIsDir, fullName); } else { printrowsd(row, false, ""); } } sendCommand("ref 0"); }
void lcd_update() { if (!NextionON) return; nexLoop(nex_listen_list); millis_t ms = millis(); if (ms > next_lcd_update_ms) { sendCurrentPageId(&NextionPage); if (NextionPage == 1) { if (fanSpeed > 0) fantimer.enable(); else fantimer.disable(); uint32_t temp_feedrate = 0; VSpeed.getValue(&temp_feedrate); feedrate_multiplier = (int)temp_feedrate; #if HAS(TEMP_0) temptoLCD(0, degHotend(0), degTargetHotend(0)); #endif #if HAS(TEMP_1) temptoLCD(1, degHotend(1), degTargetHotend(1)); #endif #if HAS(TEMP_2) temptoLCD(2, degHotend(2), degTargetHotend(2)); #elif HAS(TEMP_BED) temptoLCD(2, degBed(), degTargetBed()); #endif coordtoLCD(); #if ENABLED(SDSUPPORT) if (card.isFileOpen()) { if (SDstatus != 2) { SDstatus = 2; SD.setValue(2); NPlay.setShow(); NStop.setShow(); } if(IS_SD_PRINTING) { // Progress bar solid part sdbar.setValue(card.percentDone()); NPlay.setPic(17); // Estimate End Time uint16_t time = print_job_timer.duration() / 60; uint16_t end_time = (time * (100 - card.percentDone())) / card.percentDone(); if (end_time > (60 * 23)) { lcd_setstatus("End --:--"); } else if (end_time >= 0) { char temp[30]; sprintf_P(temp, PSTR("End %i:%i"), end_time / 60, end_time%60); lcd_setstatus(temp); } } else { NPlay.setPic(16); } } else if (card.cardOK && SDstatus != 1) { SDstatus = 1; SD.setValue(1); MSD1.setShow(); NPlay.setHide(); NStop.setHide(); } else if (!card.cardOK && SDstatus != 0) { SDstatus = 0; SD.setValue(0); MSD1.setHide(); NPlay.setHide(); NStop.setHide(); } #endif } else if (NextionPage == 6) { coordtoLCD(); } next_lcd_update_ms = ms + LCD_UPDATE_INTERVAL; } }