Skip to content

Commit d2e357d

Browse files
committed
Improve MainWindow::writeDLTMessageToFile signature
Signed-off-by: Viktor Kopp <[email protected]>
1 parent 75259b2 commit d2e357d

File tree

4 files changed

+25
-23
lines changed

4 files changed

+25
-23
lines changed

qdlt/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ add_library(qdlt SHARED
4444
dltmessagematcher.h
4545
qdltlrucache.hpp
4646
export_c_rules.h
47-
export_rules.h)
47+
export_rules.h
48+
)
4849

4950
target_compile_definitions(qdlt PRIVATE
5051
BYTE_ORDER=LITTLE_ENDIAN

qdlt/qdlt.pro

-2
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ SOURCES += \
6868
fieldnames.cpp \
6969
qdltimporter.cpp \
7070
dltmessagematcher.cpp \
71-
dlt_time.cpp \
7271

7372
HEADERS += qdlt.h \
7473
export_rules.h \
@@ -102,7 +101,6 @@ HEADERS += qdlt.h \
102101
fieldnames.h \
103102
qdltimporter.h \
104103
dltmessagematcher.h \
105-
dlt_time.h \
106104

107105
unix:VERSION = 1.0.0
108106

src/mainwindow.cpp

+21-19
Original file line numberDiff line numberDiff line change
@@ -3923,12 +3923,9 @@ void MainWindow::readyRead()
39233923

39243924
}
39253925

3926-
void MainWindow::writeDLTMessageToFile(QByteArray &bufferHeader,char* bufferPayload,quint32 bufferPayloadSize,EcuItem* ecuitem,quint32 sec,quint32 usec)
3927-
{
3928-
const auto timestamp =
3929-
(sec || usec) ? std::optional<QDltImporter::DltStorageHeaderTimestamp>({sec, usec}) : std::nullopt;
3930-
DltStorageHeader str = QDltImporter::makeDltStorageHeader(timestamp);
3931-
3926+
void MainWindow::writeDLTMessageToFile(const QByteArray& bufferHeader, std::string_view payload,
3927+
const EcuItem* ecuitem) {
3928+
DltStorageHeader str = QDltImporter::makeDltStorageHeader();
39323929
if (ecuitem)
39333930
dlt_set_id(str.ecu, ecuitem->id.toLatin1());
39343931

@@ -3946,7 +3943,7 @@ void MainWindow::writeDLTMessageToFile(QByteArray &bufferHeader,char* bufferPayl
39463943
if( settings->splitlogfile != 0) // only in case the file size limit checking is active ...
39473944
{
39483945
// check if files size limit reached ( see Settings->Project Other->Maximum File Size )
3949-
if( ( ((outputfile.size()+sizeof(DltStorageHeader)+bufferHeader.size()+bufferPayloadSize)) > settings->fmaxFileSizeMB *1000*1000) )
3946+
if( ( ((outputfile.size()+sizeof(DltStorageHeader)+bufferHeader.size()+ payload.size())) > settings->fmaxFileSizeMB *1000*1000) )
39503947
{
39513948
createsplitfile();
39523949
}
@@ -3974,10 +3971,9 @@ void MainWindow::writeDLTMessageToFile(QByteArray &bufferHeader,char* bufferPayl
39743971
outputfile.write(ecuitem->id.toLatin1(),ecuitem->id.length());
39753972
}
39763973
outputfile.write(bufferHeader);
3977-
outputfile.write(bufferPayload,bufferPayloadSize);
3974+
outputfile.write(payload.data(), payload.size());
39783975
outputfile.flush();
39793976
outputfile.close();
3980-
39813977
}
39823978

39833979
void MainWindow::read(EcuItem* ecuitem)
@@ -4010,8 +4006,8 @@ void MainWindow::read(EcuItem* ecuitem)
40104006
bytesRcvd = ecuitem->udpsocket.readDatagram( data.data(), data.size() );
40114007
//qDebug() << "bytes received" << bytesRcvd;
40124008
unsigned int dataSize = data.size();
4013-
char* dataPtr = data.data();
4014-
// Find one ore more DLT messages in the UDP message
4009+
const char* dataPtr = data.data();
4010+
// Find one or more DLT messages in the UDP message
40154011
while(dataSize>0)
40164012
{
40174013
quint32 sizeMsg = qmsg.checkMsgSize(dataPtr,dataSize,settings->supportDLTv2Decoding);
@@ -4031,13 +4027,13 @@ void MainWindow::read(EcuItem* ecuitem)
40314027
}
40324028
if(qfile.checkFilter(qmsg))
40334029
{
4034-
writeDLTMessageToFile(empty,dataPtr,sizeMsg,ecuitem);
4030+
writeDLTMessageToFile(empty,{dataPtr,sizeMsg}, ecuitem);
40354031
}
40364032
}
40374033
else
40384034
{
40394035
// write all messages
4040-
writeDLTMessageToFile(empty,dataPtr,sizeMsg,ecuitem);
4036+
writeDLTMessageToFile(empty, {dataPtr,sizeMsg}, ecuitem);
40414037
}
40424038
totalBytesRcvd+=sizeMsg;
40434039
if(sizeMsg<=dataSize)
@@ -4102,10 +4098,8 @@ void MainWindow::read(EcuItem* ecuitem)
41024098
}
41034099

41044100
/* write message to file */
4105-
QByteArray bufferHeader;
4106-
QByteArray bufferPayload;
4107-
bufferHeader = qmsg.getHeader();
4108-
bufferPayload = qmsg.getPayload();
4101+
const QByteArray bufferHeader = qmsg.getHeader();
4102+
const QByteArray bufferPayload = qmsg.getPayload();
41094103
if(settings->loggingOnlyFilteredMessages)
41104104
{
41114105
// write only messages which match filter
@@ -4116,13 +4110,21 @@ void MainWindow::read(EcuItem* ecuitem)
41164110
}
41174111
if(qfile.checkFilter(qmsg))
41184112
{
4119-
writeDLTMessageToFile(bufferHeader,bufferPayload.data(),bufferPayload.size(),ecuitem);
4113+
writeDLTMessageToFile(
4114+
bufferHeader,
4115+
{bufferPayload.data(),
4116+
static_cast<std::string_view::size_type>(bufferPayload.size())},
4117+
ecuitem);
41204118
}
41214119
}
41224120
else
41234121
{
41244122
// write all messages
4125-
writeDLTMessageToFile(bufferHeader,bufferPayload.data(),bufferPayload.size(),ecuitem);
4123+
writeDLTMessageToFile(
4124+
bufferHeader,
4125+
{bufferPayload.data(),
4126+
static_cast<std::string_view::size_type>(bufferPayload.size())},
4127+
ecuitem);
41264128
}
41274129

41284130
} //end while

src/mainwindow.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,8 @@ class MainWindow : public QMainWindow
366366
/* Get path from explorerView model index */
367367
QString getPathFromExplorerViewIndexModel(const QModelIndex &proxyIndex);
368368

369-
void writeDLTMessageToFile(QByteArray &bufferHeader,char*bufferPayload,quint32 bufferPayloadSize,EcuItem* ecuitem,quint32 sec=0,quint32 use=0);
369+
void writeDLTMessageToFile(const QByteArray& bufferHeader, std::string_view payload,
370+
const EcuItem* ecuitem);
370371

371372
protected:
372373
void keyPressEvent ( QKeyEvent * event ) override;

0 commit comments

Comments
 (0)