Qrome / printer-monitor

OctoPrint 3D Printer Monitor using Wemos D1 Mini ESP8266
MIT License
479 stars 164 forks source link

Print Finished #10

Closed Steff1990 closed 6 years ago

Steff1990 commented 6 years ago

I have Problems at the moment my printer finished. After that, time remainig displays an old value. Is it possible to fix it or give a message, finished?

wabbitguy commented 6 years ago

The time remaining can be random as I've found, but the percentage shown at the bottom of the display always shows 100% when the print is completed.

wabbitguy commented 6 years ago

Change the routine in printermonitor that prints the time remaining to fix the issue:

void drawScreen2(OLEDDisplay display, OLEDDisplayUiState state, int16_t x, int16_t y) { display->setTextAlignment(TEXT_ALIGN_CENTER); display->setFont(ArialMT_Plain_16); display->drawString(64 + x, 0 + y, "Time Remaining"); display->setFont(ArialMT_Plain_24); int val = printerClient.getProgressPrintTimeLeft().toInt(); int days = elapsedDays(val); int hours = numberOfHours(val); int minutes = numberOfMinutes(val); int seconds = numberOfSeconds(val); // this next section will zero the time remaining when the completion is 100% String checkPercentage = printerClient.getProgressCompletion(); if (checkPercentage == "100") {// if we have printed 100%, zero out the time days = 0; hours = 0; minutes = 0; seconds = 0; } // end of added code String time = zeroPad(hours) + ":" + zeroPad(minutes) + ":" + zeroPad(seconds); display->drawString(64 + x, 14 + y, time); }

Mel

Qrome commented 6 years ago

Thanks guys. I have put a fix in at the OctoPrintClient.cpp -- that way thing asking for the PrintTimeLeft will get "0" when the print is 100% -- this will be in 1.5 release.