From 5f7d34ef12a573dd41421effb5f3e2d18c6eff3c Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Thu, 13 Apr 2023 13:37:00 +0200 Subject: [PATCH] implemented dc_updatePrinterTemplate --- src/hwapi.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/hwapi.cpp b/src/hwapi.cpp index 5b2017e..2d02096 100644 --- a/src/hwapi.cpp +++ b/src/hwapi.cpp @@ -11,6 +11,8 @@ #include #include +#include + #include "tslib.h" #include "hwapi.h" @@ -404,6 +406,40 @@ bool hwapi::dc_updateDC(QString bFile, QString br, QString serial) const { return true; } +/******************************************************************************/ +// +// LEVEL 3: hwapi::dc_updatePrinterTemplate +// +/******************************************************************************/ +bool hwapi::dc_updatePrinterTemplate(enum FileTypeJson type, + int nrOfTemplate, + QString const &fname) const { + if ((type == FileTypeJson::PRINTER) && + (nrOfTemplate >= 0 && nrOfTemplate <= 32)) { + + int nTry = 50; + while (!sys_ready4sending()) { // wait max. 5 seconds + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + if (--nTry <= 0) { + return false; + } + } + QFile file(fname); + if (file.exists() && file.open(QIODevice::ReadOnly)) { + QByteArray ba = file.readAll(); + if (ba.size() <= 800) { // max. size is 800 bytes + if (sys_sendJsonFileToDc((uint8_t)(type), + nrOfTemplate, + (uint8_t *)ba.data())) { + std::this_thread::sleep_for(std::chrono::seconds(1)); + return true; + } + } + } + } + + return false; +} // ------------------------------------------------------------------------------ // Level 1, control device-controller (functions of µC)