Add a save function to ISO-TP decoder window

This commit is contained in:
Collin Kidder
2024-08-13 20:59:52 -04:00
parent c62d88958c
commit f2bd1d9d6b
5 changed files with 111 additions and 6 deletions
+27 -6
View File
@@ -182,11 +182,11 @@ UDS_HANDLER::~UDS_HANDLER()
delete isoHandler;
}
void UDS_HANDLER::gotISOTPFrame(ISOTP_MESSAGE msg)
UDS_MESSAGE UDS_HANDLER::tryISOtoUDS(ISOTP_MESSAGE msg, bool *result)
{
qDebug() << "UDS handler got ISOTP frame";
const unsigned char *data = reinterpret_cast<const unsigned char *>(msg.payload().constData());
int dataLen = msg.payload().count();
*result = true;
UDS_MESSAGE udsMsg;
udsMsg.bus = msg.bus;
udsMsg.setExtendedFrameFormat(msg.hasExtendedFrameFormat());
@@ -208,9 +208,17 @@ void UDS_HANDLER::gotISOTPFrame(ISOTP_MESSAGE msg)
{
udsMsg.service = data[1];
if (dataLen > 2) udsMsg.subFunc = data[2];
else return;
else
{
*result = false;
return udsMsg;
};
}
else return;
else
{
*result = false;
return udsMsg;
};
udsMsg.payload().remove(0, 2);
}
else
@@ -220,9 +228,22 @@ void UDS_HANDLER::gotISOTPFrame(ISOTP_MESSAGE msg)
udsMsg.payload().remove(0, 1);
}
}
else return;
else
{
*result = false;
};
return udsMsg;
}
emit newUDSMessage(udsMsg);
void UDS_HANDLER::gotISOTPFrame(ISOTP_MESSAGE msg)
{
qDebug() << "UDS handler got ISOTP frame";
UDS_MESSAGE udsMsg;
bool result;
udsMsg = tryISOtoUDS(msg, &result);
if (result) emit newUDSMessage(udsMsg);
}
void UDS_HANDLER::setFlowCtrl(bool state)
+1
View File
@@ -105,6 +105,7 @@ public:
QString getShortDesc(QVector<CODE_STRUCT> &codeVector, int code);
QString getLongDesc(QVector<CODE_STRUCT> &codeVector, int code);
QString getDetailedMessageAnalysis(const UDS_MESSAGE &msg);
UDS_MESSAGE tryISOtoUDS(ISOTP_MESSAGE msg, bool *result);
public slots:
void gotISOTPFrame(ISOTP_MESSAGE msg);