Squashed 'DCPlugin/' changes from 37f0012..ef48301
ef48301 Added dc_updatePrinterTemplate 5f7d34e implemented dc_updatePrinterTemplate 863e4b2 Added dc_updatePrinterTemplate git-subtree-dir: DCPlugin git-subtree-split: ef48301dad80ebce3db4764613bb7f183ef69485
This commit is contained in:
parent
db8415cd3e
commit
1f0f7da128
@ -144,6 +144,10 @@ public:
|
||||
bool dc_updateDC(QString binFileName, QString baudrate,
|
||||
QString comPort) const override;
|
||||
|
||||
bool dc_updatePrinterTemplate(enum FileTypeJson type,
|
||||
int templateNr,
|
||||
QString const &fname) const override;
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Level 1, control device-controller (functions of µC)
|
||||
// check serial connection to deviceController
|
||||
|
@ -306,6 +306,10 @@ public:
|
||||
QString comPort) const = 0;
|
||||
// download binary file down into device controller
|
||||
|
||||
virtual bool dc_updatePrinterTemplate(enum FileTypeJson type,
|
||||
int templateNr,
|
||||
QString const &fname) const = 0;
|
||||
|
||||
virtual void dc_autoRequest(bool on) const =0;
|
||||
// on = true: select that all READ-Requests are sent automatically
|
||||
// on = false: select that all READ-Requests are sent manually one by one
|
||||
|
@ -11,6 +11,8 @@
|
||||
#include <unistd.h>
|
||||
#include <thread>
|
||||
|
||||
#include <QFileInfo>
|
||||
|
||||
#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)
|
||||
|
Loading…
Reference in New Issue
Block a user