From 100ada06f8a0f5ad1d9768a68539f29315819817 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Fri, 2 Feb 2024 13:41:13 +0100 Subject: [PATCH] Improve on storing hw/sw version of device controller --- src/storeINdata.cpp | 62 ++++++++++++--------------------------------- 1 file changed, 16 insertions(+), 46 deletions(-) diff --git a/src/storeINdata.cpp b/src/storeINdata.cpp index 9aa684b..3449b86 100644 --- a/src/storeINdata.cpp +++ b/src/storeINdata.cpp @@ -64,66 +64,36 @@ bool indat_isMdbOn() void gpi_storeHWver(QString text) { - // change Qstring to array of chars, because shared mem allowes no QString! - int nn, LL = text.length(); - if (LL >= versionBufferLen) - LL=versionBufferLen-1; // leave place for termination - - for (nn=0; nnindat_HWversion[nn] = text.at(nn).toLatin1(); + if (qstrlen(SharedMem::read()->indat_HWversion) == 0) { + char const *p = text.toUtf8().constData(); + if (qstrlen(p) > 0) { + memset(SharedMem::write()->indat_HWversion, 0, versionBufferLen); + memcpy(SharedMem::write()->indat_HWversion, p, + qMin((uint)versionBufferLen, qstrlen(p)) - 1); + } } - for (nn=LL; nnindat_HWversion[nn] =0; } QString epi_loadHWver(void) { - // load array of chars from SM and change to QString - int nn, LL = versionBufferLen; - char cc; - QString myStr; - - myStr.clear(); - - for (nn=0; nnindat_HWversion[nn]; - myStr.append(cc); - } - return myStr; + return QString((char const*)SharedMem::read()->indat_HWversion); } void gpi_storeSWver(QString text) { - int nn, LL = text.length(); - if (LL >= versionBufferLen) - LL=versionBufferLen-1; // leave place for termination - - for (nn=0; nnindat_SWversion[nn] = text.at(nn).toLatin1(); + if (qstrlen(SharedMem::read()->indat_SWversion) == 0) { + char const *p = text.toUtf8().constData(); + if (qstrlen(p) > 0) { + memset(SharedMem::write()->indat_SWversion, 0, versionBufferLen); + memcpy(SharedMem::write()->indat_SWversion, p, + qMin((uint)versionBufferLen, qstrlen(p)) - 1); + } } - for (nn=LL; nnindat_SWversion[nn] =0; - } QString epi_loadSWver(void) { - int nn, LL = versionBufferLen; - char cc; - QString myStr; - - myStr.clear(); - - for (nn=0; nnindat_SWversion[nn]; - myStr.append(cc); - } - return myStr; - + return QString((char const*)SharedMem::read()->indat_SWversion); } void gpi_storeDCstate(QString text)