Skip to content

Commit 7ea72ad

Browse files
committed
also show full frames in table
1 parent 320ce6e commit 7ea72ad

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

src/FlexRayAnalyzer.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,21 @@ void FlexRayAnalyzer::WorkerThread()
177177
return stream.str();
178178
};
179179

180+
auto format_payload = [&]( const std::vector<U8>& payload ) {
181+
if( payload.empty() == true )
182+
return std::string( "-" );
183+
184+
std::ostringstream stream;
185+
for( size_t i = 0; i < payload.size(); ++i )
186+
{
187+
if( i != 0 )
188+
stream << ' ';
189+
stream << format_hex_byte( payload[ i ] );
190+
}
191+
192+
return stream.str();
193+
};
194+
180195
auto add_segment = [&]( U64 start_sample, U64 end_sample, U8 frame_type, U8 frame_flags, const std::string& short_text,
181196
const std::string& long_text, const char* frame_v2_type, bool* packet_has_segments = nullptr,
182197
const std::function<void( FrameV2& )>& populate_frame_v2 = std::function<void( FrameV2& )>() ) {
@@ -340,6 +355,33 @@ void FlexRayAnalyzer::WorkerThread()
340355
bool packet_has_segments = false;
341356

342357
auto commit_packet = [&]( U64 end_sample, U8 frame_flags, FlexRayFrameRecord record ) {
358+
if( record.mIsError == false && record.mSymbolName.empty() == true )
359+
{
360+
FrameV2 frame_v2_packet;
361+
frame_v2_packet.AddString( "frame_type", record.mIsDynamic ? "dynamic" : "static" );
362+
frame_v2_packet.AddString( "identifier", format_hex( record.mFrameId, 3 ).c_str() );
363+
frame_v2_packet.AddByte( "cycle", record.mCycle );
364+
frame_v2_packet.AddByte( "payload_length_words", record.mPayloadLengthWords );
365+
frame_v2_packet.AddByte( "payload_length_bytes", static_cast<U8>( record.mPayload.size() ) );
366+
frame_v2_packet.AddBoolean( "reserved_bit", record.mReservedBit );
367+
frame_v2_packet.AddBoolean( "payload_preamble", record.mPayloadPreamble );
368+
frame_v2_packet.AddBoolean( "null_frame", record.mNullFrame );
369+
frame_v2_packet.AddBoolean( "sync_frame", record.mSyncFrame );
370+
frame_v2_packet.AddBoolean( "startup_frame", record.mStartupFrame );
371+
frame_v2_packet.AddString( "header_crc", format_hex( record.mHeaderCrc, 3 ).c_str() );
372+
frame_v2_packet.AddBoolean( "header_crc_ok", record.mHeaderCrcOk );
373+
frame_v2_packet.AddString( "crc", format_hex( record.mFrameCrc, 6 ).c_str() );
374+
frame_v2_packet.AddBoolean( "crc_ok", record.mFrameCrcOk );
375+
frame_v2_packet.AddByte( "cid_bits", static_cast<U8>( record.mCidBits ) );
376+
frame_v2_packet.AddBoolean( "cid_ok", record.mCidOk );
377+
378+
if( record.mIsDynamic == true )
379+
frame_v2_packet.AddByte( "dts_bits", static_cast<U8>( record.mDtsBits ) );
380+
381+
frame_v2_packet.AddString( "payload", format_payload( record.mPayload ).c_str() );
382+
mResults->AddFrameV2( frame_v2_packet, "frame", tss_start_sample, end_sample );
383+
}
384+
343385
if( record.mIsError == true && packet_has_segments == false )
344386
add_segment( tss_start_sample, end_sample, FlexRayErrorField, DISPLAY_AS_ERROR_FLAG, "Err", record.mErrorText, "error_field",
345387
&packet_has_segments, [&]( FrameV2& frame_v2 ) { frame_v2.AddString( "error", record.mErrorText.c_str() ); } );

0 commit comments

Comments
 (0)