Updated Layer screen & RepetierClient

Updated Layer screen to change between font sizes depending on how many layers are printing.
Also added the features to RepetierClient
pull/136/head
victor7376 2021-03-20 12:10:56 +00:00
parent 5460696479
commit 46660b9a93
4 changed files with 55 additions and 5 deletions

View File

@ -256,11 +256,8 @@ void OctoPrintClient::getPrinterJobResults() {
// Parse JSON object // Parse JSON object
JsonObject& root3 = jsonBuffer3.parseObject(printClient); JsonObject& root3 = jsonBuffer3.parseObject(printClient);
if (!root3.success()) { if (!root3.success()) {
// printerData.isPrinting = false;
printerData.estimatedEndTime = ""; printerData.estimatedEndTime = "";
printerData.currentLayer = ""; printerData.currentLayer = "";
// printerData.bedTemp = "";
// printerData.bedTargetTemp = (const char*)root2["temperature"]["bed"]["target"];
return; return;
} }

View File

@ -220,6 +220,27 @@ void RepetierClient::getPrinterJobResults() {
printerData.bedTemp = (const char*) pr2["heatedBeds"][0]["tempRead"]; printerData.bedTemp = (const char*) pr2["heatedBeds"][0]["tempRead"];
printerData.bedTargetTemp = (const char*) pr2["heatedBeds"][0]["tempSet"]; printerData.bedTargetTemp = (const char*) pr2["heatedBeds"][0]["tempSet"];
// 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.estimatedEndTime = "";
printerData.currentLayer = "";
return;
}
printerData.estimatedEndTime = (const char*)root3["print"]["estimatedEndTime"];
printerData.currentLayer = (const char*)root3["layer"]["current"];
printerData.totalLayers = (const char*)root3["layer"]["total"];
if (printerData.isPrinting) { if (printerData.isPrinting) {
Serial.println("Status: " + printerData.state + " " + printerData.fileName + "(" + printerData.progressCompletion + "%)"); Serial.println("Status: " + printerData.state + " " + printerData.fileName + "(" + printerData.progressCompletion + "%)");
} }
@ -249,9 +270,24 @@ void RepetierClient::resetPrintData() {
printerData.bedTargetTemp = ""; printerData.bedTargetTemp = "";
printerData.isPrinting = false; printerData.isPrinting = false;
printerData.isPSUoff = false; printerData.isPSUoff = false;
printerData.currentLayer = "";
printerData.totalLayers = "";
printerData.estimatedEndTime = "";
printerData.error = ""; printerData.error = "";
} }
String RepetierClient::getCurrentLayer(){
return printerData.currentLayer;
}
String RepetierClient::getTotalLayers(){
return printerData.totalLayers;
}
String RepetierClient::getEstimatedEndTime(){
return printerData.estimatedEndTime;
}
String RepetierClient::getAveragePrintTime(){ String RepetierClient::getAveragePrintTime(){
return printerData.averagePrintTime; return printerData.averagePrintTime;
} }

View File

@ -59,6 +59,9 @@ private:
String state; String state;
String toolTemp; String toolTemp;
String toolTargetTemp; String toolTargetTemp;
String currentLayer;
String totalLayers;
String estimatedEndTime;
String filamentLength; String filamentLength;
String bedTemp; String bedTemp;
String bedTargetTemp; String bedTargetTemp;
@ -92,6 +95,9 @@ public:
boolean isPSUoff(); boolean isPSUoff();
String getTempBedActual(); String getTempBedActual();
String getTempBedTarget(); String getTempBedTarget();
String getEstimatedEndTime();
String getCurrentLayer();
String getTotalLayers();
String getTempToolActual(); String getTempToolActual();
String getTempToolTarget(); String getTempToolTarget();
String getFilamentLength(); String getFilamentLength();

View File

@ -979,6 +979,7 @@ void drawScreen4(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int
String layer = printerClient.getCurrentLayer(); String layer = printerClient.getCurrentLayer();
String totalLayers = printerClient.getTotalLayers(); String totalLayers = printerClient.getTotalLayers();
if (printerClient.getTotalLayers().toInt() >= 1000) {
display->setTextAlignment(TEXT_ALIGN_CENTER); display->setTextAlignment(TEXT_ALIGN_CENTER);
display->setFont(ArialMT_Plain_16); display->setFont(ArialMT_Plain_16);
@ -986,10 +987,20 @@ void drawScreen4(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int
//display->setTextAlignment(TEXT_ALIGN_LEFT); //display->setTextAlignment(TEXT_ALIGN_LEFT);
display->setFont(ArialMT_Plain_16); display->setFont(ArialMT_Plain_16);
display->drawString(64 + x, 14 + y, layer + " / " + totalLayers);
} else
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 + " / " + totalLayers); display->drawString(64 + x, 14 + y, layer + " / " + totalLayers);
} }
void drawScreen5(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) { void drawScreen5(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) {
String EstimatedEnd = printerClient.getEstimatedEndTime(); String EstimatedEnd = printerClient.getEstimatedEndTime();