request simplyfication
Only ask for more data if Klipper is printing, else just watchpull/125/head
parent
bc2654ce9e
commit
105b2df50a
|
|
@ -34,7 +34,8 @@ boolean KlipperClient::validate() {
|
||||||
|
|
||||||
|
|
||||||
void KlipperClient::getPrinterJobResults() {
|
void KlipperClient::getPrinterJobResults() {
|
||||||
const size_t bufferSize = JSON_ARRAY_SIZE(4) + JSON_OBJECT_SIZE(1) + 3*JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(4) + JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(6) + JSON_OBJECT_SIZE(9) + 426;
|
// const size_t bufferSize = JSON_ARRAY_SIZE(4) + JSON_OBJECT_SIZE(1) + 4*JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(4) + JSON_OBJECT_SIZE(6) + JSON_OBJECT_SIZE(7) + JSON_OBJECT_SIZE(9) + 426;
|
||||||
|
const size_t bufferSize = 1536; // according to ArduinoJson assistant
|
||||||
DynamicJsonDocument *jsonDoc;
|
DynamicJsonDocument *jsonDoc;
|
||||||
if (!validate()) {
|
if (!validate()) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -81,12 +82,13 @@ void KlipperClient::getPrinterJobResults() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Req 2
|
// Req 2
|
||||||
|
if (printerData.isPrinting = true) {
|
||||||
jsonDoc = this->jsonRequestClient->requestJson(
|
jsonDoc = this->jsonRequestClient->requestJson(
|
||||||
PRINTER_REQUEST_GET,
|
PRINTER_REQUEST_GET,
|
||||||
this->getInstanceServerTarget(),
|
this->getInstanceServerTarget(),
|
||||||
this->getInstanceServerPort(),
|
this->getInstanceServerPort(),
|
||||||
this->encodedAuth,
|
this->encodedAuth,
|
||||||
"/printer/objects/query?heater_bed&extruder&display_status",
|
"/printer/objects/query?heater_bed&extruder&display_status&toolhead&virtual_sdcard",
|
||||||
"",
|
"",
|
||||||
bufferSize,
|
bufferSize,
|
||||||
true
|
true
|
||||||
|
|
@ -100,6 +102,12 @@ void KlipperClient::getPrinterJobResults() {
|
||||||
printerData.toolTargetTemp = "";
|
printerData.toolTargetTemp = "";
|
||||||
printerData.bedTemp = "";
|
printerData.bedTemp = "";
|
||||||
printerData.bedTargetTemp = "";
|
printerData.bedTargetTemp = "";
|
||||||
|
printerData.state = "";
|
||||||
|
printerData.isPrinting = false;
|
||||||
|
printerData.toolTemp = "";
|
||||||
|
printerData.toolTargetTemp = "";
|
||||||
|
printerData.bedTemp = "";
|
||||||
|
printerData.bedTargetTemp = "";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,30 +116,6 @@ void KlipperClient::getPrinterJobResults() {
|
||||||
printerData.toolTargetTemp = (int)(*jsonDoc)["result"]["status"]["extruder"]["target"];
|
printerData.toolTargetTemp = (int)(*jsonDoc)["result"]["status"]["extruder"]["target"];
|
||||||
printerData.bedTemp = (int)(*jsonDoc)["result"]["status"]["heater_bed"]["temperature"];
|
printerData.bedTemp = (int)(*jsonDoc)["result"]["status"]["heater_bed"]["temperature"];
|
||||||
printerData.bedTargetTemp = (int)(*jsonDoc)["result"]["status"]["heater_bed"]["target"];
|
printerData.bedTargetTemp = (int)(*jsonDoc)["result"]["status"]["heater_bed"]["target"];
|
||||||
|
|
||||||
// Req 3
|
|
||||||
jsonDoc = this->jsonRequestClient->requestJson(
|
|
||||||
PRINTER_REQUEST_GET,
|
|
||||||
this->getInstanceServerTarget(),
|
|
||||||
this->getInstanceServerPort(),
|
|
||||||
this->encodedAuth,
|
|
||||||
"/printer/objects/query?toolhead&virtual_sdcard",
|
|
||||||
"",
|
|
||||||
bufferSize,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
if (this->jsonRequestClient->getLastError() != "") {
|
|
||||||
this->debugController->printLn(this->jsonRequestClient->getLastError());
|
|
||||||
printerData.error = this->jsonRequestClient->getLastError();
|
|
||||||
printerData.state = "";
|
|
||||||
printerData.isPrinting = false;
|
|
||||||
printerData.toolTemp = "";
|
|
||||||
printerData.toolTargetTemp = "";
|
|
||||||
printerData.bedTemp = "";
|
|
||||||
printerData.bedTargetTemp = "";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
float fileProgress = (float)(*jsonDoc)["result"]["status"]["virtual_sdcard"]["progress"];
|
float fileProgress = (float)(*jsonDoc)["result"]["status"]["virtual_sdcard"]["progress"];
|
||||||
printerData.progressFilepos = (const char*)(*jsonDoc)["result"]["status"]["virtual_sdcard"]["file_position"];
|
printerData.progressFilepos = (const char*)(*jsonDoc)["result"]["status"]["virtual_sdcard"]["file_position"];
|
||||||
printerData.estimatedPrintTime = (float)(*jsonDoc)["result"]["status"]["toolhead"]["estimated_print_time"];
|
printerData.estimatedPrintTime = (float)(*jsonDoc)["result"]["status"]["toolhead"]["estimated_print_time"];
|
||||||
|
|
@ -142,6 +126,41 @@ void KlipperClient::getPrinterJobResults() {
|
||||||
float totalPrintTime = printerData.progressPrintTime.toFloat() / fileProgress;
|
float totalPrintTime = printerData.progressPrintTime.toFloat() / fileProgress;
|
||||||
printerData.progressPrintTimeLeft = String(totalPrintTime - printerData.progressPrintTime.toFloat());
|
printerData.progressPrintTimeLeft = String(totalPrintTime - printerData.progressPrintTime.toFloat());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// // Req 3
|
||||||
|
// jsonDoc = this->jsonRequestClient->requestJson(
|
||||||
|
// PRINTER_REQUEST_GET,
|
||||||
|
// this->getInstanceServerTarget(),
|
||||||
|
// this->getInstanceServerPort(),
|
||||||
|
// this->encodedAuth,
|
||||||
|
// "/printer/objects/query?toolhead&virtual_sdcard",
|
||||||
|
// "",
|
||||||
|
// bufferSize,
|
||||||
|
// true
|
||||||
|
// );
|
||||||
|
// if (this->jsonRequestClient->getLastError() != "") {
|
||||||
|
// this->debugController->printLn(this->jsonRequestClient->getLastError());
|
||||||
|
// printerData.error = this->jsonRequestClient->getLastError();
|
||||||
|
// printerData.state = "";
|
||||||
|
// printerData.isPrinting = false;
|
||||||
|
// printerData.toolTemp = "";
|
||||||
|
// printerData.toolTargetTemp = "";
|
||||||
|
// printerData.bedTemp = "";
|
||||||
|
// printerData.bedTargetTemp = "";
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// float fileProgress = (float)(*jsonDoc)["result"]["status"]["virtual_sdcard"]["progress"];
|
||||||
|
// printerData.progressFilepos = (const char*)(*jsonDoc)["result"]["status"]["virtual_sdcard"]["file_position"];
|
||||||
|
// printerData.estimatedPrintTime = (float)(*jsonDoc)["result"]["status"]["toolhead"]["estimated_print_time"];
|
||||||
|
|
||||||
|
// /*
|
||||||
|
// printerData.progressPrintTimeLeft : No metadata is available, print duration and progress can be used to calculate the ETA:
|
||||||
|
// */
|
||||||
|
// float totalPrintTime = printerData.progressPrintTime.toFloat() / fileProgress;
|
||||||
|
// printerData.progressPrintTimeLeft = String(totalPrintTime - printerData.progressPrintTime.toFloat());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue