Merge commit 'a9e69cd0c4ad3477a99becaf87b84e0d9b23538f'
This commit is contained in:
commit
b15ad441f8
@ -145,9 +145,15 @@ public:
|
|||||||
QString comPort) const override;
|
QString comPort) const override;
|
||||||
|
|
||||||
bool dc_updatePrinterTemplate(enum FileTypeJson type,
|
bool dc_updatePrinterTemplate(enum FileTypeJson type,
|
||||||
int templateNr,
|
QVector<int> templateIdx,
|
||||||
QString const &fname) const override;
|
QVector<QString> fnames,
|
||||||
|
QString br,
|
||||||
|
QString serial) const override;
|
||||||
|
|
||||||
|
bool dc_printTemplate(enum FileTypeJson type,
|
||||||
|
QVector<int> templateIdx,
|
||||||
|
QString br,
|
||||||
|
QString serial) const override;
|
||||||
// ------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------
|
||||||
// Level 1, control device-controller (functions of µC)
|
// Level 1, control device-controller (functions of µC)
|
||||||
// check serial connection to deviceController
|
// check serial connection to deviceController
|
||||||
|
@ -307,8 +307,15 @@ public:
|
|||||||
// download binary file down into device controller
|
// download binary file down into device controller
|
||||||
|
|
||||||
virtual bool dc_updatePrinterTemplate(enum FileTypeJson type,
|
virtual bool dc_updatePrinterTemplate(enum FileTypeJson type,
|
||||||
int templateNr,
|
QVector<int> templateIdx,
|
||||||
QString const &fname) const = 0;
|
QVector<QString> fnames,
|
||||||
|
QString br,
|
||||||
|
QString serial) const = 0;
|
||||||
|
|
||||||
|
virtual bool dc_printTemplate(enum FileTypeJson type,
|
||||||
|
QVector<int> templateIdx,
|
||||||
|
QString br,
|
||||||
|
QString serial) const = 0;
|
||||||
|
|
||||||
virtual void dc_autoRequest(bool on) const =0;
|
virtual void dc_autoRequest(bool on) const =0;
|
||||||
// on = true: select that all READ-Requests are sent automatically
|
// on = true: select that all READ-Requests are sent automatically
|
||||||
|
@ -307,8 +307,15 @@ public:
|
|||||||
// download binary file down into device controller
|
// download binary file down into device controller
|
||||||
|
|
||||||
virtual bool dc_updatePrinterTemplate(enum FileTypeJson type,
|
virtual bool dc_updatePrinterTemplate(enum FileTypeJson type,
|
||||||
int templateNr,
|
QVector<int> templateIdx,
|
||||||
QString const &fname) const = 0;
|
QVector<QString> fnames,
|
||||||
|
QString br,
|
||||||
|
QString serial) const = 0;
|
||||||
|
|
||||||
|
virtual bool dc_printTemplate(enum FileTypeJson type,
|
||||||
|
QVector<int> templateIdx,
|
||||||
|
QString br,
|
||||||
|
QString serial) const = 0;
|
||||||
|
|
||||||
virtual void dc_autoRequest(bool on) const =0;
|
virtual void dc_autoRequest(bool on) const =0;
|
||||||
// on = true: select that all READ-Requests are sent automatically
|
// on = true: select that all READ-Requests are sent automatically
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
|
||||||
@ -412,33 +413,116 @@ bool hwapi::dc_updateDC(QString bFile, QString br, QString serial) const {
|
|||||||
//
|
//
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
bool hwapi::dc_updatePrinterTemplate(enum FileTypeJson type,
|
bool hwapi::dc_updatePrinterTemplate(enum FileTypeJson type,
|
||||||
int nrOfTemplate,
|
QVector<int> templatesIdx,
|
||||||
QString const &fname) const {
|
QVector<QString> fnames,
|
||||||
if ((type == FileTypeJson::PRINTER) &&
|
QString br,
|
||||||
(nrOfTemplate >= 1 && nrOfTemplate <= 32)) {
|
QString serial) const {
|
||||||
|
// sanity checks
|
||||||
|
if (!baudrateMap.contains(br)) {
|
||||||
|
qCritical() << "passed wrong baudrate" << br;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (templatesIdx.size() != fnames.size()) {
|
||||||
|
qCritical() << "list sizes must be equal" << br;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!std::all_of(templatesIdx.cbegin(), templatesIdx.cend(),
|
||||||
|
[](int i) { return i >= 1 && i <= 32; })) {
|
||||||
|
qCritical() << "wrong template indices";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (type != FileTypeJson::PRINTER) {
|
||||||
|
qCritical() << "wrong file type" << (uint8_t)type;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
int nTry = 50;
|
qDebug() << "updating: " << fnames << br << serial << "...";
|
||||||
while (!sys_ready4sending()) { // wait max. 5 seconds
|
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
if (!openSerial(baudrateMap.value(br), br, serial)) {
|
||||||
if (--nTry <= 0) {
|
return false;
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
|
int nTry = 50;
|
||||||
|
while (!sys_ready4sending()) { // wait max. 5 seconds
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||||
|
if (--nTry <= 0) {
|
||||||
|
qCritical() << "sys not ready for sending";
|
||||||
|
closeSerial(serial);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
QFile file(fname);
|
}
|
||||||
|
|
||||||
|
bool ret = true;
|
||||||
|
for (int i = 0; i < fnames.size(); ++i) {
|
||||||
|
QFile file(fnames[i]);
|
||||||
if (file.exists() && file.open(QIODevice::ReadOnly)) {
|
if (file.exists() && file.open(QIODevice::ReadOnly)) {
|
||||||
QByteArray ba = file.readAll();
|
QByteArray ba = file.readAll();
|
||||||
if (ba.size() <= 800) { // max. size is 800 bytes
|
if (ba.size() <= 800) { // max. size is 800 bytes
|
||||||
if (sys_sendJsonFileToDc((uint8_t)(type),
|
if (sys_sendJsonFileToDc((uint8_t)(type),
|
||||||
nrOfTemplate,
|
templatesIdx[i],
|
||||||
(uint8_t *)ba.data())) {
|
(uint8_t *)ba.data())) {
|
||||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||||
return true;
|
qInfo() << "sent file" << fnames[i] << "to dc";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
qCritical() << fnames[i] << "!!! does not exist!!!";
|
||||||
|
ret = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closeSerial(serial);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool hwapi::dc_printTemplate(enum FileTypeJson type,
|
||||||
|
QVector<int> templateIdx,
|
||||||
|
QString br,
|
||||||
|
QString serial) const {
|
||||||
|
// sanity checks
|
||||||
|
if (!baudrateMap.contains(br)) {
|
||||||
|
qCritical() << "passed wrong baudrate" << br;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!std::all_of(templateIdx.cbegin(), templateIdx.cend(),
|
||||||
|
[](int i) { return i >= 1 && i <= 32; })) {
|
||||||
|
qCritical() << "wrong template indices";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (type != FileTypeJson::PRINTER) {
|
||||||
|
qCritical() << "wrong file type" << (uint8_t)type;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug() << "printing: " << templateIdx << br << serial << "...";
|
||||||
|
|
||||||
|
if (!openSerial(baudrateMap.value(br), br, serial)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int nTry = 50;
|
||||||
|
while (!sys_ready4sending()) { // wait max. 5 seconds
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||||
|
if (--nTry <= 0) {
|
||||||
|
qCritical() << "sys not ready for sending";
|
||||||
|
closeSerial(serial);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
bool ret = true;
|
||||||
|
for (int i = 0; i < templateIdx.size(); ++i) {
|
||||||
|
if (prn_printTemplate(templateIdx[i])) {
|
||||||
|
qDebug() << "printing template" << templateIdx[i];
|
||||||
|
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||||
|
} else {
|
||||||
|
ret = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closeSerial(serial);
|
||||||
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------
|
||||||
@ -3284,7 +3368,8 @@ bool hwapi::sys_sendJsonFileToDc(uint8_t kindOfFile, uint8_t nrOfTemplate, uint8
|
|||||||
{
|
{
|
||||||
biox_CopyBlock(inhaltOfJson, uitmp, temp, 0, 64);
|
biox_CopyBlock(inhaltOfJson, uitmp, temp, 0, 64);
|
||||||
longFDcmd_set(31,0, bn++, 64, temp);
|
longFDcmd_set(31,0, bn++, 64, temp);
|
||||||
uitmp<<=6;
|
uitmp += 64;
|
||||||
|
// uitmp<<=6;
|
||||||
} while(uitmp < dateiLang);
|
} while(uitmp < dateiLang);
|
||||||
|
|
||||||
longFDcmd_set(32, 0,0, 0,temp); // Abschluss
|
longFDcmd_set(32, 0,0, 0,temp); // Abschluss
|
||||||
|
@ -602,7 +602,7 @@ bool longFDcmd_set(uint8_t nextWrCmd, uint8_t nextRdCmd, uint8_t blockNum, uint8
|
|||||||
uint8_t nn;
|
uint8_t nn;
|
||||||
if (p_longFDcmdsInQueue>=FDLONG_STACKDEPTH)
|
if (p_longFDcmdsInQueue>=FDLONG_STACKDEPTH)
|
||||||
{
|
{
|
||||||
qDebug() << "cannot save cmd because stack is full";
|
qCritical() << "cannot save cmd because stack is full";
|
||||||
return false; // not possible
|
return false; // not possible
|
||||||
}
|
}
|
||||||
longFDwrCmd[p_longFDcmdsInQueue]=nextWrCmd;
|
longFDwrCmd[p_longFDcmdsInQueue]=nextWrCmd;
|
||||||
@ -613,6 +613,7 @@ bool longFDcmd_set(uint8_t nextWrCmd, uint8_t nextRdCmd, uint8_t blockNum, uint8
|
|||||||
longFDpara[p_longFDcmdsInQueue][nn]=data[nn];
|
longFDpara[p_longFDcmdsInQueue][nn]=data[nn];
|
||||||
|
|
||||||
p_longFDcmdsInQueue++;
|
p_longFDcmdsInQueue++;
|
||||||
|
|
||||||
return true; // ok, will be sent
|
return true; // ok, will be sent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user