Skip to content

Commit

Permalink
Remove leading 0s from analyzed result
Browse files Browse the repository at this point in the history
This addresses a part of issue saleae#7, removing leading 0s of the decoded
data value.
  • Loading branch information
tgtakaoka committed Dec 14, 2024
1 parent 3c7688a commit aa12199
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/SimpleParallelAnalyzerResults.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ void SimpleParallelAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel
Frame frame = GetFrame( frame_index );

char number_str[ 128 ];
AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 16, number_str, 128 );
AnalyzerHelpers::GetNumberString( frame.mData1, display_base, mSettings->dataBits(), number_str, 128 );
AddResultString( number_str );
}

Expand All @@ -44,7 +44,7 @@ void SimpleParallelAnalyzerResults::GenerateExportFile( const char* file, Displa
AnalyzerHelpers::GetTimeString( frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128 );

char number_str[ 128 ];
AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 16, number_str, 128 );
AnalyzerHelpers::GetNumberString( frame.mData1, display_base, mSettings->dataBits(), number_str, 128 );

ss << time_str << "," << number_str << std::endl;

Expand Down
11 changes: 10 additions & 1 deletion src/SimpleParallelAnalyzerSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ SimpleParallelAnalyzerSettings::SimpleParallelAnalyzerSettings()

mDataChannelsInterface.push_back( data_channel_interface );
}
mDataBits = 0;


mClockChannelInterface.reset( new AnalyzerSettingInterfaceChannel() );
Expand Down Expand Up @@ -82,6 +83,7 @@ bool SimpleParallelAnalyzerSettings::SetSettingsFromInterfaces()
SetErrorText( "Please select at least one channel to use in the parallel bus" );
return false;
}
mDataBits = num_used_channels;

for( U32 i = 0; i < count; i++ )
{
Expand All @@ -107,10 +109,14 @@ bool SimpleParallelAnalyzerSettings::SetSettingsFromInterfaces()
void SimpleParallelAnalyzerSettings::UpdateInterfacesFromSettings()
{
U32 count = mDataChannels.size();
U32 num_used_channels = 0;
for( U32 i = 0; i < count; i++ )
{
mDataChannelsInterface[ i ]->SetChannel( mDataChannels[ i ] );
if( mDataChannels[ i ] != UNDEFINED_CHANNEL )
num_used_channels++;
}
mDataBits = num_used_channels;

mClockChannelInterface->SetChannel( mClockChannel );
mClockEdgeInterface->SetNumber( static_cast<double>( mClockEdge ) );
Expand All @@ -122,11 +128,14 @@ void SimpleParallelAnalyzerSettings::LoadSettings( const char* settings )
text_archive.SetString( settings );

U32 count = mDataChannels.size();

U32 num_used_channels = 0;
for( U32 i = 0; i < count; i++ )
{
text_archive >> mDataChannels[ i ];
if( mDataChannels[ i ] != UNDEFINED_CHANNEL )
num_used_channels++;
}
mDataBits = num_used_channels;

text_archive >> mClockChannel;
U32 edge;
Expand Down
6 changes: 6 additions & 0 deletions src/SimpleParallelAnalyzerSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ class SimpleParallelAnalyzerSettings : public AnalyzerSettings
void UpdateInterfacesFromSettings();
virtual void LoadSettings( const char* settings );
virtual const char* SaveSettings();
U32 dataBits() const
{
return mDataBits;
}


std::vector<Channel> mDataChannels;
Expand All @@ -34,6 +38,8 @@ class SimpleParallelAnalyzerSettings : public AnalyzerSettings

std::unique_ptr<AnalyzerSettingInterfaceChannel> mClockChannelInterface;
std::unique_ptr<AnalyzerSettingInterfaceNumberList> mClockEdgeInterface;

U32 mDataBits; // valid channel number of mDataChannels
};

#endif // SIMPLEPARALLEL_ANALYZER_SETTINGS

0 comments on commit aa12199

Please sign in to comment.