Squashed 'DCPlugin/' changes from 1eb2ac3..01140c5

01140c5 Using std::min from algorithm-header
c99d073 Added additional variables into shared memory. Cleaned source.
81c610c Included additional variables into shared memory
6ae7c06 Changed to const-pointer

git-subtree-dir: DCPlugin
git-subtree-split: 01140c523b600912e83302c988059c1cfd0a5488
This commit is contained in:
Gerhard Hoffmann 2023-04-18 14:44:24 +02:00
parent ee902898c4
commit 2c6fa31cff
4 changed files with 66 additions and 144 deletions

View File

@ -170,7 +170,7 @@ uint8_t epi_getResultOfLastRequest();
// retval: 0: in progress 1: OK 2: error // retval: 0: in progress 1: OK 2: error
void gpi_storeRecPayLoad(uint8_t RdDlen, uint8_t *receivedData); void gpi_storeRecPayLoad(uint8_t RdDlen, uint8_t const *receivedData);
// stored by Datif // stored by Datif
uint16_t epi_getLastPayLoad(uint16_t plBufSiz, uint8_t *payLoad); uint16_t epi_getLastPayLoad(uint16_t plBufSiz, uint8_t *payLoad);

View File

@ -189,6 +189,10 @@ struct SharedMemBuffer {
uint8_t UIDstr[8]; uint8_t UIDstr[8];
#define MAXNROF_MEASURE 4 #define MAXNROF_MEASURE 4
uint32_t measurement[MAXNROF_MEASURE]; uint32_t measurement[MAXNROF_MEASURE];
bool serialTestResult;
uint8_t pProtResultOk;
uint16_t receivedDataLength;
uint8_t receivedDataBlock[64];
} Sdata; } Sdata;
uint8_t mif_cardType; uint8_t mif_cardType;

View File

@ -1,19 +1,14 @@
#include <stdint.h> #include <stdint.h>
#include <algorithm>
#include <QString> #include <QString>
#include <QDebug> #include <QDebug>
#include "tslib.h" #include "tslib.h"
#include "shared_mem_buffer.h" #include "shared_mem_buffer.h"
//#include "controlBus.h"
// /////////////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////////////
// control serial interface gui <--> serial // control serial interface gui <--> serial
// /////////////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////////////
//static QString rs_comportName; // z.B. "COM48"
//static QString rs_baudStr; // z.B. "19200"
//static int rs_baudNr; //0...5 oder -1
//static uint8_t rs_connect; // 0,1
void epi_setSerial(int BaudNr, void epi_setSerial(int BaudNr,
QString BaudStr, QString BaudStr,
QString ComName, QString ComName,
@ -38,7 +33,6 @@ void epi_closeSerial(void) {
SharedMemBuffer::getData()->rs.connect = 0; SharedMemBuffer::getData()->rs.connect = 0;
} }
void gpi_serialChanged(void) { void gpi_serialChanged(void) {
// serial confirms that port was closed or opened // serial confirms that port was closed or opened
// rs_connect=2; // Flanke, nur 1x öffnen/schließen // rs_connect=2; // Flanke, nur 1x öffnen/schließen
@ -49,7 +43,6 @@ uint8_t gpi_getSerialConn(void) {
return SharedMemBuffer::getDataConst()->rs.connect; return SharedMemBuffer::getDataConst()->rs.connect;
} }
int gpi_getBaudNr(void) { int gpi_getBaudNr(void) {
return SharedMemBuffer::getDataConst()->rs.baudNr; return SharedMemBuffer::getDataConst()->rs.baudNr;
} }
@ -106,14 +99,12 @@ bool gpi_PeriodicSendTimeHasChanged() {
// linke Spalte, über Connect Button // linke Spalte, über Connect Button
static QString txt4comStateLine; static QString txt4comStateLine;
QString epi_getTxt4comStateLine(void) QString epi_getTxt4comStateLine(void) {
{
// GUI: get Text for serial Comport-State Line // GUI: get Text for serial Comport-State Line
return txt4comStateLine; return txt4comStateLine;
} }
void gpi_setTxt4comStateLine(QString txtline) // gpi void gpi_setTxt4comStateLine(QString txtline) {
{
// serial: write Text to be displayed in serial Comport-State line (like "connected") // serial: write Text to be displayed in serial Comport-State line (like "connected")
txt4comStateLine.clear(); txt4comStateLine.clear();
if (txtline=="") if (txtline=="")
@ -122,26 +113,20 @@ void gpi_setTxt4comStateLine(QString txtline) // gpi
txt4comStateLine=txtline; txt4comStateLine=txtline;
} }
void epi_clrTxt4comStateLine() void epi_clrTxt4comStateLine() {
{
txt4comStateLine.clear(); txt4comStateLine.clear();
} }
//---------------------------------------------------------------------------------------------
// rechte Spalte, oberste Statuszeile // rechte Spalte, oberste Statuszeile
// I) "Handshakes" (serial Control) flow.cpp // I) "Handshakes" (serial Control) flow.cpp
// geht überhaupt was raus? kommt überhaupt was zurück? // geht überhaupt was raus? kommt überhaupt was zurück?
static QString txt4HsStateLine; static QString txt4HsStateLine;
QString epi_getTxt4HsStateLine(void) QString epi_getTxt4HsStateLine(void) {
{
return txt4HsStateLine; return txt4HsStateLine;
} }
void gpi_setTxt4HsStateLine(QString txtline) void gpi_setTxt4HsStateLine(QString txtline) {
{
txt4HsStateLine.clear(); txt4HsStateLine.clear();
if (txtline=="") if (txtline=="")
txt4HsStateLine.clear(); txt4HsStateLine.clear();
@ -149,26 +134,19 @@ void gpi_setTxt4HsStateLine(QString txtline)
txt4HsStateLine=txtline; txt4HsStateLine=txtline;
} }
void epi_clrTxt4HsStateLine() void epi_clrTxt4HsStateLine() {
{
txt4HsStateLine.clear(); txt4HsStateLine.clear();
} }
//---------------------------------------------------------------------------------------------
// II) Master receive state (empfangenes Telgramm OK? crc? length? ) // II) Master receive state (empfangenes Telgramm OK? crc? length? )
// Statuszeile Auswertung der SlaveResponse (serial Frame, CRC usw) (prot.cpp) // Statuszeile Auswertung der SlaveResponse (serial Frame, CRC usw) (prot.cpp)
static QString txt4masterStateLine; static QString txt4masterStateLine;
QString epi_getTxt4masterStateLine(void) QString epi_getTxt4masterStateLine(void) {
{
return txt4masterStateLine; return txt4masterStateLine;
} }
void gpi_setTxt4masterStateLine(QString txtline) void gpi_setTxt4masterStateLine(QString txtline) {
{
txt4masterStateLine.clear(); txt4masterStateLine.clear();
if (txtline=="") if (txtline=="")
txt4masterStateLine.clear(); txt4masterStateLine.clear();
@ -176,13 +154,10 @@ void gpi_setTxt4masterStateLine(QString txtline)
txt4masterStateLine=txtline; txt4masterStateLine=txtline;
} }
void epi_clrTxt4masterStateLine() void epi_clrTxt4masterStateLine() {
{
txt4masterStateLine.clear(); txt4masterStateLine.clear();
} }
//--------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------
// III Slave receive (from Master) OK? if then show results, if not then show errors // III Slave receive (from Master) OK? if then show results, if not then show errors
@ -192,13 +167,11 @@ void epi_clrTxt4masterStateLine()
static QString txt4resultStateLine; static QString txt4resultStateLine;
QString epi_getTxt4resultStateLine(void) QString epi_getTxt4resultStateLine(void) {
{
return txt4resultStateLine; return txt4resultStateLine;
} }
void gpi_setTxt4resultStateLine(QString txtline) void gpi_setTxt4resultStateLine(QString txtline) {
{
txt4resultStateLine.clear(); txt4resultStateLine.clear();
if (txtline=="") if (txtline=="")
txt4resultStateLine.clear(); txt4resultStateLine.clear();
@ -206,26 +179,22 @@ void gpi_setTxt4resultStateLine(QString txtline)
txt4resultStateLine=txtline; txt4resultStateLine=txtline;
} }
void epi_clrTxt4resultStateLine() void epi_clrTxt4resultStateLine() {
{
txt4resultStateLine.clear(); txt4resultStateLine.clear();
} }
//--------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------
// IV Statuszeile Empfangsdaten // IV Statuszeile Empfangsdaten
static QString txt4dataLine; static QString txt4dataLine;
QString epi_getTxt4dataStateLine(void) QString epi_getTxt4dataStateLine(void) {
{
// GUI: get Text for serial Comport-State Line // GUI: get Text for serial Comport-State Line
return txt4dataLine; return txt4dataLine;
} }
void gpi_setTxt4dataStateLine(QString txtline) void gpi_setTxt4dataStateLine(QString txtline) {
{
// serial: write Text to be displayed in serial Comport-State line (like "connected") // serial: write Text to be displayed in serial Comport-State line (like "connected")
txt4dataLine.clear(); txt4dataLine.clear();
if (txtline=="") if (txtline=="")
@ -234,8 +203,7 @@ void gpi_setTxt4dataStateLine(QString txtline)
txt4dataLine=txtline; txt4dataLine=txtline;
} }
void epi_clrTxt4dataStateLine() void epi_clrTxt4dataStateLine() {
{
txt4dataLine.clear(); txt4dataLine.clear();
} }
@ -245,16 +213,11 @@ void epi_clrTxt4dataStateLine()
static QString txt4datifReceive; static QString txt4datifReceive;
QString epi_getTxt4datifLine(void) QString epi_getTxt4datifLine(void) {
{
return txt4datifReceive; return txt4datifReceive;
} }
void gpi_setTxt4datifLine(QString txtline) void gpi_setTxt4datifLine(QString txtline) {
{
txt4datifReceive.clear(); txt4datifReceive.clear();
if (txtline=="") if (txtline=="")
txt4datifReceive.clear(); txt4datifReceive.clear();
@ -262,8 +225,7 @@ void gpi_setTxt4datifLine(QString txtline)
txt4datifReceive=txtline; txt4datifReceive=txtline;
} }
void epi_clrTxt4datifLine() void epi_clrTxt4datifLine() {
{
txt4datifReceive.clear(); txt4datifReceive.clear();
} }
@ -272,14 +234,11 @@ void epi_clrTxt4datifLine()
static QString txt4diagWindow; static QString txt4diagWindow;
QString epi_getTxt4RsDiagWin(void) QString epi_getTxt4RsDiagWin(void) {
{
return txt4diagWindow; return txt4diagWindow;
} }
void gpi_setTxt4RsDiagWin(QString txtline) void gpi_setTxt4RsDiagWin(QString txtline) {
{
txt4diagWindow.clear(); txt4diagWindow.clear();
if (txtline=="") if (txtline=="")
txt4diagWindow.clear(); txt4diagWindow.clear();
@ -287,8 +246,7 @@ void gpi_setTxt4RsDiagWin(QString txtline)
txt4diagWindow=txtline; txt4diagWindow=txtline;
} }
void epi_clrTxt4RsDiagWin() void epi_clrTxt4RsDiagWin() {
{
txt4diagWindow.clear(); txt4diagWindow.clear();
} }
@ -296,14 +254,11 @@ void epi_clrTxt4RsDiagWin()
static QString sndTxt4diagWindow; static QString sndTxt4diagWindow;
QString epi_get2ndTxt4RsDiagWin(void) QString epi_get2ndTxt4RsDiagWin(void) {
{
return sndTxt4diagWindow; return sndTxt4diagWindow;
} }
void gpi_set2ndTxt4RsDiagWin(QString txtline) void gpi_set2ndTxt4RsDiagWin(QString txtline) {
{
sndTxt4diagWindow.clear(); sndTxt4diagWindow.clear();
if (txtline=="") if (txtline=="")
sndTxt4diagWindow.clear(); sndTxt4diagWindow.clear();
@ -311,90 +266,61 @@ void gpi_set2ndTxt4RsDiagWin(QString txtline)
sndTxt4diagWindow=txtline; sndTxt4diagWindow=txtline;
} }
void epi_clr2ndTxt4RsDiagWin() void epi_clr2ndTxt4RsDiagWin() {
{
sndTxt4diagWindow.clear(); sndTxt4diagWindow.clear();
} }
// /////////////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////////////
// Memory for Slave responses, common data // Memory for Slave responses, common data
// /////////////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////////////
void gpi_storeResult_serialTestOK(bool wasOk) {
SharedMemBuffer::getData()->Sdata.serialTestResult = wasOk;
static bool Sdata_serialTestResult;
void gpi_storeResult_serialTestOK(bool wasOk)
{
Sdata_serialTestResult=wasOk;
} }
bool epi_getResult_serialTestOK() bool epi_getResult_serialTestOK() {
{
// retval: true: test was successful, got right response // retval: true: test was successful, got right response
return Sdata_serialTestResult; return SharedMemBuffer::getDataConst()->Sdata.serialTestResult;
} }
// /////////////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////////////
// Store received data for hwapi // Store received data for hwapi
// /////////////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////////////
void gpi_startNewRequest() {
SharedMemBuffer::getData()->Sdata.pProtResultOk = 0;
static uint8_t Sdata_pProtResultOk;
void gpi_startNewRequest()
{
Sdata_pProtResultOk=0;
} }
void gpi_storeResultOfLastRequest(bool answisok) void gpi_storeResultOfLastRequest(bool answisok) {
{ SharedMemBuffer::getData()->Sdata.pProtResultOk = answisok ? 1 : 2;
if (answisok)
Sdata_pProtResultOk=1;
else
Sdata_pProtResultOk=2;
} }
uint8_t epi_getResultOfLastRequest() uint8_t epi_getResultOfLastRequest() {
{
// retval: 0: in progress 1: OK 2: error // retval: 0: in progress 1: OK 2: error
return Sdata_pProtResultOk; return SharedMemBuffer::getDataConst()->Sdata.pProtResultOk;
} }
void gpi_storeRecPayLoad(uint8_t RdDlen, uint8_t const *receivedData) {
SharedMemBuffer::getData()->Sdata.receivedDataLength
= std::min(RdDlen, (uint8_t)(64));
static uint16_t Sdata_receivedDataLength; memset((char *)(&SharedMemBuffer::getData()->Sdata.receivedDataBlock[0]),
static uint8_t Sdata_receivedDataBlock[64]; 0x00, sizeof(SharedMemBuffer::getData()->Sdata.receivedDataBlock));
strncpy((char *)(&SharedMemBuffer::getData()->Sdata.receivedDataBlock[0]),
void gpi_storeRecPayLoad(uint8_t RdDlen, uint8_t *receivedData) (char const *)receivedData,
{ sizeof(SharedMemBuffer::getData()->Sdata.receivedDataBlock)-1);
Sdata_receivedDataLength=uint16_t(RdDlen);
if (Sdata_receivedDataLength>64)
Sdata_receivedDataLength=64;
tslib_strclr(Sdata_receivedDataBlock,0,64);
tslib_strcpy(receivedData, Sdata_receivedDataBlock, Sdata_receivedDataLength);
} }
uint16_t epi_getLastPayLoad(uint16_t plBufSiz, uint8_t *payLoad) uint16_t epi_getLastPayLoad(uint16_t plBufSiz, uint8_t *payLoad) {
{
// get data back in *pl, max 64 byte // get data back in *pl, max 64 byte
// retval = nr of bytes received. If host buffer too small then // retval = nr of bytes received. If host buffer too small then
// only plBufSíz bytes are copied to pl // only plBufSíz bytes are copied to pl
// plBufSíz=size of host buffer // plBufSíz=size of host buffer
uint16_t ml=plBufSiz; uint16_t ml = std::min(plBufSiz, (uint16_t)(64));
if (ml>64) ml=64; if (SharedMemBuffer::getDataConst()->Sdata.receivedDataLength < ml) {
if (Sdata_receivedDataLength<ml) ml = SharedMemBuffer::getDataConst()->Sdata.receivedDataLength;
ml=Sdata_receivedDataLength; }
tslib_strcpy(Sdata_receivedDataBlock, payLoad, ml); strncpy((char *)payLoad,
return Sdata_receivedDataLength; (char const *)(&SharedMemBuffer::getData()->Sdata.receivedDataBlock[0]),
ml);
return SharedMemBuffer::getDataConst()->Sdata.receivedDataLength;
} }

View File

@ -1,4 +1,6 @@
#include <stdint.h> #include <stdint.h>
#include <algorithm>
#include <QString> #include <QString>
#include <QDebug> #include <QDebug>
#include "storeINdata.h" #include "storeINdata.h"
@ -1030,9 +1032,7 @@ void epi_restoreMdbResponse(uint8_t *leng, uint8_t *data) {
} }
void gpi_storeEmpSettings(uint8_t leng, uint8_t const *data) { void gpi_storeEmpSettings(uint8_t leng, uint8_t const *data) {
if (leng > 64) { leng = std::min(leng, (uint8_t)(64));
leng = 64;
}
memset(&SharedMemBuffer::getData()->Sdata.emp_settingsBuff[0], 0x00, memset(&SharedMemBuffer::getData()->Sdata.emp_settingsBuff[0], 0x00,
sizeof(SharedMemBuffer::getData()->Sdata.emp_settingsBuff)); sizeof(SharedMemBuffer::getData()->Sdata.emp_settingsBuff));
SharedMemBuffer::getData()->Sdata.empNrOfsettings = leng; SharedMemBuffer::getData()->Sdata.empNrOfsettings = leng;
@ -1095,9 +1095,7 @@ void epi_restoreEmpCoinSignal(uint8_t *valid, uint8_t *signal,
} }
void gpi_storeRbDeviceSettings(uint8_t leng, uint8_t const *data) { // getestet am 12.4.23TS void gpi_storeRbDeviceSettings(uint8_t leng, uint8_t const *data) { // getestet am 12.4.23TS
if (leng > 64) { leng = std::min(leng, (uint8_t)(64));
leng = 64;
}
SharedMemBuffer::getData()->Sdata.NrOfDeviceSetting = leng; SharedMemBuffer::getData()->Sdata.NrOfDeviceSetting = leng;
memset((char *)&SharedMemBuffer::getData()->Sdata.DeviceSettingBuff[0], memset((char *)&SharedMemBuffer::getData()->Sdata.DeviceSettingBuff[0],
0x00, sizeof(SharedMemBuffer::getData()->Sdata.DeviceSettingBuff)); 0x00, sizeof(SharedMemBuffer::getData()->Sdata.DeviceSettingBuff));
@ -1113,9 +1111,7 @@ void epi_restoreRbDeviceSettings(uint8_t *leng, uint8_t *data) { // getestet am
} }
void gpi_storeMachineIDsettings(uint8_t leng, uint8_t const *data) { void gpi_storeMachineIDsettings(uint8_t leng, uint8_t const *data) {
if (leng > 64) { leng = std::min(leng, (uint8_t)(64));
leng = 64;
}
SharedMemBuffer::getData()->Sdata.NrOfMachineIDSetting = leng; SharedMemBuffer::getData()->Sdata.NrOfMachineIDSetting = leng;
memset((char *)&SharedMemBuffer::getData()->Sdata.NrOfMachineIDBuff[0], memset((char *)&SharedMemBuffer::getData()->Sdata.NrOfMachineIDBuff[0],
0x00, sizeof(SharedMemBuffer::getData()->Sdata.NrOfMachineIDBuff)); 0x00, sizeof(SharedMemBuffer::getData()->Sdata.NrOfMachineIDBuff));
@ -1188,9 +1184,7 @@ uint64_t epi_getWakeSources(void) {
} }
void gpi_storeExtendedTime(uint8_t leng, uint8_t const *data) { void gpi_storeExtendedTime(uint8_t leng, uint8_t const *data) {
if (leng > 64) { leng = std::min(leng, (uint8_t)(64));
leng = 64;
}
SharedMemBuffer::getData()->store.rbDevParamLen = leng; SharedMemBuffer::getData()->store.rbDevParamLen = leng;
memset((char *)(&SharedMemBuffer::getData()->store.rbDevParams[0]), 0x00, memset((char *)(&SharedMemBuffer::getData()->store.rbDevParams[0]), 0x00,
sizeof(SharedMemBuffer::getData()->store.rbDevParams)); sizeof(SharedMemBuffer::getData()->store.rbDevParams));
@ -1207,9 +1201,7 @@ void epi_restoreExtendedTime(uint8_t *leng, uint8_t *data) {
// store device conditions // store device conditions
void gpi_storeDeviceConditions(uint8_t leng, uint8_t const *data) { void gpi_storeDeviceConditions(uint8_t leng, uint8_t const *data) {
if (leng > 64) { leng = std::min(leng, (uint8_t)(64));
leng = 64;
}
SharedMemBuffer::getData()->store.deviceCondLen = leng; SharedMemBuffer::getData()->store.deviceCondLen = leng;
memset((char *)(&SharedMemBuffer::getData()->store.deviceCond[0]), 0x00, memset((char *)(&SharedMemBuffer::getData()->store.deviceCond[0]), 0x00,
sizeof(SharedMemBuffer::getData()->store.deviceCond)); sizeof(SharedMemBuffer::getData()->store.deviceCond));