Added Layer & End time Info
Added in Current Layer & Estimated End time (Clock) for print.pull/136/head
parent
a9a0348efb
commit
045605b9f2
|
|
@ -244,6 +244,30 @@ void OctoPrintClient::getPrinterJobResults() {
|
|||
printerData.bedTemp = (const char*)root2["temperature"]["bed"]["actual"];
|
||||
printerData.bedTargetTemp = (const char*)root2["temperature"]["bed"]["target"];
|
||||
|
||||
// Layer & Endtime
|
||||
apiGetData = "GET /plugin/DisplayLayerProgress/values HTTP/1.1";
|
||||
printClient = getSubmitRequest(apiGetData);
|
||||
if (printerData.error != "") {
|
||||
return;
|
||||
}
|
||||
const size_t bufferSize3 = JSON_OBJECT_SIZE(4) + JSON_OBJECT_SIZE(6) + JSON_OBJECT_SIZE(7) + JSON_OBJECT_SIZE(10) + 550;
|
||||
DynamicJsonBuffer jsonBuffer3(bufferSize3);
|
||||
|
||||
// Parse JSON object
|
||||
JsonObject& root3 = jsonBuffer3.parseObject(printClient);
|
||||
if (!root3.success()) {
|
||||
// printerData.isPrinting = false;
|
||||
printerData.estimatedEndTime = "";
|
||||
printerData.currentLayer = "";
|
||||
// printerData.bedTemp = "";
|
||||
// printerData.bedTargetTemp = (const char*)root2["temperature"]["bed"]["target"];
|
||||
return;
|
||||
}
|
||||
|
||||
printerData.estimatedEndTime = (const char*)root3["print"]["estimatedEndTime"];
|
||||
printerData.currentLayer = (const char*)root3["layer"]["current"];
|
||||
|
||||
|
||||
if (isPrinting()) {
|
||||
Serial.println("Status: " + printerData.state + " " + printerData.fileName + "(" + printerData.progressCompletion + "%)");
|
||||
}
|
||||
|
|
@ -305,6 +329,16 @@ void OctoPrintClient::resetPrintData() {
|
|||
printerData.isPrinting = false;
|
||||
printerData.isPSUoff = false;
|
||||
printerData.error = "";
|
||||
printerData.currentLayer = "";
|
||||
printerData.estimatedEndTime = "";
|
||||
}
|
||||
|
||||
String OctoPrintClient::getCurrentLayer(){
|
||||
return printerData.currentLayer;
|
||||
}
|
||||
|
||||
String OctoPrintClient::getEstimatedEndTime(){
|
||||
return printerData.estimatedEndTime;
|
||||
}
|
||||
|
||||
String OctoPrintClient::getAveragePrintTime(){
|
||||
|
|
|
|||
|
|
@ -59,6 +59,8 @@ private:
|
|||
String state;
|
||||
String toolTemp;
|
||||
String toolTargetTemp;
|
||||
String currentLayer;
|
||||
String estimatedEndTime;
|
||||
String filamentLength;
|
||||
String bedTemp;
|
||||
String bedTargetTemp;
|
||||
|
|
@ -95,6 +97,8 @@ public:
|
|||
String getTempToolActual();
|
||||
String getTempToolTarget();
|
||||
String getFilamentLength();
|
||||
String getEstimatedEndTime();
|
||||
String getCurrentLayer();
|
||||
String getValueRounded(String value);
|
||||
String getError();
|
||||
String getPrinterType();
|
||||
|
|
|
|||
|
|
@ -59,13 +59,15 @@ void drawOtaProgress(unsigned int, unsigned int);
|
|||
void drawScreen1(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
||||
void drawScreen2(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
||||
void drawScreen3(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
||||
void drawScreen4(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
||||
void drawScreen5(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
||||
void drawHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state);
|
||||
void drawClock(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
||||
void drawWeather(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
|
||||
void drawClockHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state);
|
||||
|
||||
// Set the number of Frames supported
|
||||
const int numberOfFrames = 3;
|
||||
const int numberOfFrames = 5;
|
||||
FrameCallback frames[numberOfFrames];
|
||||
FrameCallback clockFrame[2];
|
||||
boolean isClockOn = false;
|
||||
|
|
@ -259,6 +261,8 @@ void setup() {
|
|||
frames[0] = drawScreen1;
|
||||
frames[1] = drawScreen2;
|
||||
frames[2] = drawScreen3;
|
||||
frames[3] = drawScreen4;
|
||||
frames[4] = drawScreen5;
|
||||
clockFrame[0] = drawClock;
|
||||
clockFrame[1] = drawWeather;
|
||||
ui.setOverlays(overlays, numberOfOverlays);
|
||||
|
|
@ -963,6 +967,33 @@ void drawScreen3(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int
|
|||
display->drawString(64 + x, 14 + y, time);
|
||||
}
|
||||
|
||||
void drawScreen4(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) {
|
||||
|
||||
String layer = printerClient.getCurrentLayer();
|
||||
display->setTextAlignment(TEXT_ALIGN_CENTER);
|
||||
display->setFont(ArialMT_Plain_16);
|
||||
|
||||
display->drawString(64 + x, 0 + y, "Layer");
|
||||
//display->setTextAlignment(TEXT_ALIGN_LEFT);
|
||||
display->setFont(ArialMT_Plain_24);
|
||||
|
||||
display->drawString(64 + x, 14 + y, layer);
|
||||
}
|
||||
|
||||
|
||||
void drawScreen5(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) {
|
||||
|
||||
String EstimatedEnd = printerClient.getEstimatedEndTime();
|
||||
display->setTextAlignment(TEXT_ALIGN_CENTER);
|
||||
display->setFont(ArialMT_Plain_16);
|
||||
|
||||
display->drawString(64 + x, 0 + y, "End Time");
|
||||
//display->setTextAlignment(TEXT_ALIGN_LEFT);
|
||||
display->setFont(ArialMT_Plain_24);
|
||||
|
||||
display->drawString(64 + x, 14 + y, EstimatedEnd);
|
||||
}
|
||||
|
||||
void drawClock(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) {
|
||||
display->setTextAlignment(TEXT_ALIGN_CENTER);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue