Fixes to make extended multiplexing code work properly, implementation

of nested multiplexing in main screen for interpretation.

Overall, it's ugly but mostly functional at this point.
This commit is contained in:
Collin Kidder
2021-02-25 21:24:21 -05:00
parent bcfaffbe5d
commit af0194c5a5
7 changed files with 150 additions and 44 deletions
+13 -7
View File
@@ -508,19 +508,25 @@ QVariant CANFrameModel::data(const QModelIndex &index, int role) const
tempString.append(" <" + msg->name + ">\n");
if (msg->comment.length() > 1) tempString.append(msg->comment + "\n");
for (int j = 0; j < msg->sigHandler->getCount(); j++)
{
{
QString sigString;
DBC_SIGNAL* sig = msg->sigHandler->findSignalByIdx(j);
if (sig->processAsText(thisFrame, sigString))
if ( (sig->multiplexParent == nullptr) && sig->processAsText(thisFrame, sigString))
{
tempString.append(sigString);
tempString.append("\n");
if (sig->isMultiplexor)
{
qDebug() << "Multiplexor. Diving into the tree";
tempString.append(sig->processSignalTree(thisFrame));
}
}
else if (sig->isMultiplexed && overwriteDups) //wasn't in this exact frame but is in the message. Use cached value
{
tempString.append(sig->makePrettyOutput(sig->cachedValue.toDouble(), sig->cachedValue.toLongLong()));
tempString.append("\n");
}
//else if (sig->isMultiplexed && overwriteDups) //wasn't in this exact frame but is in the message. Use cached value
//{
// tempString.append(sig->makePrettyOutput(sig->cachedValue.toDouble(), sig->cachedValue.toLongLong()));
// tempString.append("\n");
//}
}
}
}