File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 =
You can’t perform that action at this time.
0 commit comments