From 9fb61507a7457898d72529be9f9d338f60ea3bd4 Mon Sep 17 00:00:00 2001 From: Tobin Hall Date: Wed, 11 Dec 2019 11:36:22 +1300 Subject: [PATCH] Adding types to allow for saving and loading of little endian floats --- dbc/dbchandler.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/dbc/dbchandler.cpp b/dbc/dbchandler.cpp index e9ac4c0..e10cb87 100644 --- a/dbc/dbchandler.cpp +++ b/dbc/dbchandler.cpp @@ -465,6 +465,14 @@ DBC_SIGNAL* DBCFile::parseSignalLine(QString line, DBC_MESSAGE *msg) case 4: sig.valType = STRING; break; + case 5: //single point float in little endian + sig.valType = SP_FLOAT; + sig.intelByteOrder = true; + break; + case 6: //double point float in little endian + sig.valType = DP_FLOAT; + sig.intelByteOrder = true; + break; } sig.factor = match.captured(6 + offset).toDouble(); sig.bias = match.captured(7 + offset).toDouble(); @@ -1230,10 +1238,12 @@ void DBCFile::saveFile(QString fileName) else msgOutput.append("0-"); break; case SP_FLOAT: - msgOutput.append("2-"); + if (sig->intelByteOrder) msgOutput.append("5-"); + else msgOutput.append("2-"); break; case DP_FLOAT: - msgOutput.append("3-"); + if (sig->intelByteOrder) msgOutput.append("6-"); + else msgOutput.append("3-"); break; case STRING: msgOutput.append("4-");