Skip to content

Commit 9a34e7e

Browse files
Crash solved ?
1 parent bcee6a6 commit 9a34e7e

File tree

1 file changed

+74
-79
lines changed

1 file changed

+74
-79
lines changed

src/CANFDMolinaroAnalyzer.cpp

Lines changed: 74 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Analyzer2 (),
1414
mSettings (new CANFDMolinaroAnalyzerSettings ()),
1515
mSimulationInitialized (false) {
1616
SetAnalyzerSettings (mSettings.get()) ;
17-
// UseFrameV2 () ;
17+
UseFrameV2 () ;
1818
}
1919

2020
//--------------------------------------------------------------------------------------------------
@@ -34,10 +34,6 @@ void CANFDMolinaroAnalyzer::SetupResults (void) {
3434
//--------------------------------------------------------------------------------------------------
3535

3636
void CANFDMolinaroAnalyzer::WorkerThread (void) {
37-
mResults.reset (new CANFDMolinaroAnalyzerResults (this, mSettings.get ())) ;
38-
SetAnalyzerResults (mResults.get()) ;
39-
mResults->AddChannelBubblesWillAppearOn (mSettings->mInputChannel) ;
40-
//---
4137
const bool inverted = mSettings->inverted () ;
4238
mSampleRateHz = GetSampleRate () ;
4339
AnalyzerChannelData * serial = GetAnalyzerChannelData (mSettings->mInputChannel) ;
@@ -53,13 +49,12 @@ void CANFDMolinaroAnalyzer::WorkerThread (void) {
5349
mPreviousBit = (serial->GetBitState () == BIT_HIGH) ^ inverted ;
5450
//---
5551
while (1) {
56-
// serial->AdvanceToNextEdge () ;
5752
const bool currentBitValue = (serial->GetBitState () == BIT_HIGH) ^ inverted ;
5853
const U64 start = serial->GetSampleNumber () ;
5954
const U64 nextEdge = serial->GetSampleOfNextEdge () ;
6055

6156
U64 currentCenter = start + mCurrentSamplesPerBit / 2 ;
62-
while (currentCenter < (nextEdge + mCurrentSamplesPerBit / 4)) {
57+
while (currentCenter < nextEdge) {
6358
enterBit (currentBitValue, currentCenter) ;
6459
currentCenter += mCurrentSamplesPerBit ;
6560
}
@@ -711,78 +706,78 @@ void CANFDMolinaroAnalyzer::addBubble (const U8 inBubbleType,
711706
frame.mEndingSampleInclusive = endSampleNumber ;
712707
mResults->AddFrame (frame) ;
713708

714-
// FrameV2 frameV2 ;
715-
// switch (inBubbleType) {
716-
// case STANDARD_IDENTIFIER_FIELD_RESULT :
717-
// { const U8 idf [2] = { U8 (inData1 >> 8), U8 (inData1) } ;
718-
// frameV2.AddByteArray ("Value", idf, 2) ;
719-
// mResults->AddFrameV2 (frameV2, "Std Idf", mStartOfFieldSampleNumber, endSampleNumber) ;
720-
// }
721-
// break ;
722-
// case EXTENDED_IDENTIFIER_FIELD_RESULT :
723-
// { const U8 idf [4] = {
724-
// U8 (inData1 >> 24), U8 (inData1 >> 16), U8 (inData1 >> 8), U8 (inData1)
725-
// } ;
726-
// frameV2.AddByteArray ("Value", idf, 4) ;
727-
// mResults->AddFrameV2 (frameV2, "Ext Idf", mStartOfFieldSampleNumber, endSampleNumber) ;
728-
// }
729-
// break ;
730-
// case CAN20B_CONTROL_FIELD_RESULT :
731-
// frameV2.AddByte ("Value", inData1) ;
732-
// mResults->AddFrameV2 (frameV2, "Ctrl", mStartOfFieldSampleNumber, endSampleNumber) ;
733-
// break ;
734-
// case CANFD_CONTROL_FIELD_RESULT :
735-
// { frameV2.AddByte ("Value", inData1) ;
736-
// std::stringstream str ;
737-
// str << "Ctrl (FDF" ;
738-
// if ((inData2 & 1) != 0) {
739-
// str << ", BRS" ;
740-
// }
741-
// if ((inData2 & 2) != 0) {
742-
// str << ", ESI" ;
743-
// }
744-
// str << ")" ;
745-
// mResults->AddFrameV2 (frameV2, str.str ().c_str (), mStartOfFieldSampleNumber, endSampleNumber) ;
746-
// }
747-
// break ;
748-
// case DATA_FIELD_RESULT :
749-
// { frameV2.AddByte ("Value", inData1) ;
750-
// std::stringstream str ;
751-
// str << "D" << inData2 ;
752-
// mResults->AddFrameV2 (frameV2, str.str ().c_str (), mStartOfFieldSampleNumber, endSampleNumber) ;
753-
// }
754-
// break ;
755-
// case CRC15_FIELD_RESULT :
756-
// { const U8 crc [2] = { U8 (inData1 >> 8), U8 (inData1) } ;
757-
// frameV2.AddByteArray ("Value", crc, 2) ;
758-
// mResults->AddFrameV2 (frameV2, "CRC15", mStartOfFieldSampleNumber, endSampleNumber) ;
759-
// }
760-
// break ;
761-
// case CRC17_FIELD_RESULT :
762-
// { const U8 crc [3] = { U8 (inData1 >> 16), U8 (inData1 >> 8), U8 (inData1) } ;
763-
// frameV2.AddByteArray ("Value", crc, 3) ;
764-
// mResults->AddFrameV2 (frameV2, "CRC17", mStartOfFieldSampleNumber, endSampleNumber) ;
765-
// }
766-
// break ;
767-
// case CRC21_FIELD_RESULT :
768-
// { const U8 crc [3] = { U8 (inData1 >> 16), U8 (inData1 >> 8), U8 (inData1) } ;
769-
// frameV2.AddByteArray ("Value", crc, 3) ;
770-
// mResults->AddFrameV2 (frameV2, "CRC21", mStartOfFieldSampleNumber, endSampleNumber) ;
771-
// }
772-
// break ;
773-
// case ACK_FIELD_RESULT :
774-
// mResults->AddFrameV2 (frameV2, "ACK", mStartOfFieldSampleNumber, endSampleNumber) ;
775-
// break ;
776-
// case EOF_FIELD_RESULT :
777-
// mResults->AddFrameV2 (frameV2, "EOF", mStartOfFieldSampleNumber, endSampleNumber) ;
778-
// break ;
779-
// case INTERMISSION_FIELD_RESULT :
780-
// mResults->AddFrameV2 (frameV2, "IFS", mStartOfFieldSampleNumber, endSampleNumber) ;
781-
// break ;
782-
// case CAN_ERROR_RESULT :
783-
// mResults->AddFrameV2 (frameV2, "Error", mStartOfFieldSampleNumber, endSampleNumber) ;
784-
// break ;
785-
// }
709+
FrameV2 frameV2 ;
710+
switch (inBubbleType) {
711+
case STANDARD_IDENTIFIER_FIELD_RESULT :
712+
{ const U8 idf [2] = { U8 (inData1 >> 8), U8 (inData1) } ;
713+
frameV2.AddByteArray ("Value", idf, 2) ;
714+
mResults->AddFrameV2 (frameV2, "Std Idf", mStartOfFieldSampleNumber, endSampleNumber) ;
715+
}
716+
break ;
717+
case EXTENDED_IDENTIFIER_FIELD_RESULT :
718+
{ const U8 idf [4] = {
719+
U8 (inData1 >> 24), U8 (inData1 >> 16), U8 (inData1 >> 8), U8 (inData1)
720+
} ;
721+
frameV2.AddByteArray ("Value", idf, 4) ;
722+
mResults->AddFrameV2 (frameV2, "Ext Idf", mStartOfFieldSampleNumber, endSampleNumber) ;
723+
}
724+
break ;
725+
case CAN20B_CONTROL_FIELD_RESULT :
726+
frameV2.AddByte ("Value", inData1) ;
727+
mResults->AddFrameV2 (frameV2, "Ctrl", mStartOfFieldSampleNumber, endSampleNumber) ;
728+
break ;
729+
case CANFD_CONTROL_FIELD_RESULT :
730+
{ frameV2.AddByte ("Value", inData1) ;
731+
std::stringstream str ;
732+
str << "Ctrl (FDF" ;
733+
if ((inData2 & 1) != 0) {
734+
str << ", BRS" ;
735+
}
736+
if ((inData2 & 2) != 0) {
737+
str << ", ESI" ;
738+
}
739+
str << ")" ;
740+
mResults->AddFrameV2 (frameV2, str.str ().c_str (), mStartOfFieldSampleNumber, endSampleNumber) ;
741+
}
742+
break ;
743+
case DATA_FIELD_RESULT :
744+
{ frameV2.AddByte ("Value", inData1) ;
745+
std::stringstream str ;
746+
str << "D" << inData2 ;
747+
mResults->AddFrameV2 (frameV2, str.str ().c_str (), mStartOfFieldSampleNumber, endSampleNumber) ;
748+
}
749+
break ;
750+
case CRC15_FIELD_RESULT :
751+
{ const U8 crc [2] = { U8 (inData1 >> 8), U8 (inData1) } ;
752+
frameV2.AddByteArray ("Value", crc, 2) ;
753+
mResults->AddFrameV2 (frameV2, "CRC15", mStartOfFieldSampleNumber, endSampleNumber) ;
754+
}
755+
break ;
756+
case CRC17_FIELD_RESULT :
757+
{ const U8 crc [3] = { U8 (inData1 >> 16), U8 (inData1 >> 8), U8 (inData1) } ;
758+
frameV2.AddByteArray ("Value", crc, 3) ;
759+
mResults->AddFrameV2 (frameV2, "CRC17", mStartOfFieldSampleNumber, endSampleNumber) ;
760+
}
761+
break ;
762+
case CRC21_FIELD_RESULT :
763+
{ const U8 crc [3] = { U8 (inData1 >> 16), U8 (inData1 >> 8), U8 (inData1) } ;
764+
frameV2.AddByteArray ("Value", crc, 3) ;
765+
mResults->AddFrameV2 (frameV2, "CRC21", mStartOfFieldSampleNumber, endSampleNumber) ;
766+
}
767+
break ;
768+
case ACK_FIELD_RESULT :
769+
mResults->AddFrameV2 (frameV2, "ACK", mStartOfFieldSampleNumber, endSampleNumber) ;
770+
break ;
771+
case EOF_FIELD_RESULT :
772+
mResults->AddFrameV2 (frameV2, "EOF", mStartOfFieldSampleNumber, endSampleNumber) ;
773+
break ;
774+
case INTERMISSION_FIELD_RESULT :
775+
mResults->AddFrameV2 (frameV2, "IFS", mStartOfFieldSampleNumber, endSampleNumber) ;
776+
break ;
777+
case CAN_ERROR_RESULT :
778+
mResults->AddFrameV2 (frameV2, "Error", mStartOfFieldSampleNumber, endSampleNumber) ;
779+
break ;
780+
}
786781

787782
mResults->CommitResults () ;
788783
ReportProgress (frame.mEndingSampleInclusive) ;

0 commit comments

Comments
 (0)