Skip to content

Commit 58a2104

Browse files
committed
Fix last WUS decoded as CAS
1 parent 7e003e2 commit 58a2104

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

src/FlexRayAnalyzer.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,14 @@ void FlexRayAnalyzer::WorkerThread()
279279
const double high_after_tss_samples = static_cast<double>( first_edge_after_tss - tss_end_sample );
280280
const U32 observed_post_low_high_bits = RoundBitsFromSamples( first_edge_after_tss - tss_end_sample, bit_width );
281281
const double observed_wakeup_symbol_window_samples = static_cast<double>( first_edge_after_tss - tss_start_sample );
282-
283-
if( observed_tss_bits >= wakeup_timing.mRxLowMinBits && observed_post_low_high_bits >= wakeup_timing.mRxIdleMinBits &&
284-
observed_wakeup_symbol_window_samples + ( bit_width * 0.25 ) <= maximum_wakeup_window_samples )
282+
const U32 relaxed_wakeup_low_min_bits =
283+
std::max( kCasRxLowMinBits, static_cast<U32>( std::lround( static_cast<double>( wakeup_timing.mRxLowMinBits ) * 0.875 ) ) );
284+
const bool wakeup_low_idle_ok =
285+
observed_tss_bits >= relaxed_wakeup_low_min_bits && observed_post_low_high_bits >= wakeup_timing.mRxIdleMinBits;
286+
const bool wakeup_fits_rx_window =
287+
observed_wakeup_symbol_window_samples + ( bit_width * 0.25 ) <= maximum_wakeup_window_samples;
288+
289+
if( wakeup_low_idle_ok && ( wakeup_fits_rx_window || have_pending_wakeup_pattern ) )
285290
{
286291
const U32 displayed_idle_bits = std::min( observed_post_low_high_bits, wakeup_timing.mTxIdleBits );
287292
const U64 nominal_wakeup_end_sample =

0 commit comments

Comments
 (0)