Skip to content

Commit 48a57ee

Browse files
author
Andreas Ringlstetter
committed
Fixup meaning of having multiple SignalMultiplexerValues
1 parent 038333c commit 48a57ee

File tree

2 files changed

+2
-18
lines changed

2 files changed

+2
-18
lines changed

include/dbcppp/Signal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,11 @@ namespace dbcppp
136136
DBCPPP_MAKE_ITERABLE(ISignal, ValueEncodingDescriptions, IValueEncodingDescription);
137137
DBCPPP_MAKE_ITERABLE(ISignal, AttributeValues, IAttribute);
138138

139-
/// \brief Mapping of this multiplexed signal to specific value ranges of a selected multiplexor switch signal.
139+
/// \brief Mapping of this multiplexed signal to specific value ranges of a selected multiplexor switch signals.
140140
///
141-
/// In a valid DBC, this can only have 0 or 1 entries.
142141
/// Requires EMultiplexer::MuxValue to be set in MultiplexerIndicator in order to be valid.
143142
/// If empty, simple multiplexing rules by ISignal::MultiplexerSwitchValue and IMessage::MuxSignal apply instead.
143+
/// If not empty, all listed multiplexor signals must match the specified value ranges simultaniously.
144144
DBCPPP_MAKE_ITERABLE(ISignal, SignalMultiplexerValues, ISignalMultiplexerValue);
145145

146146
protected:

src/SignalImpl.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -517,22 +517,6 @@ SignalImpl::SignalImpl(
517517
_phys_to_raw = ::phys_to_raw<double>;
518518
break;
519519
}
520-
// Permitted due to faulty interface design in ISignal only - doesn't happen with real DBC files.
521-
if (_signal_multiplexer_values.size() > 1)
522-
{
523-
SetError(EErrorCode::ConflictingMultiplexDefinition);
524-
}
525-
else if (_signal_multiplexer_values.size() == 1)
526-
{
527-
const auto ranges = _signal_multiplexer_values[0].ValueRanges();
528-
if (!std::any_of(std::begin(ranges), std::end(ranges), [&](const ISignalMultiplexerValue::Range& range) -> bool
529-
{
530-
return range.from <= _multiplexer_switch_value && range.to >= _multiplexer_switch_value;
531-
}))
532-
{
533-
SetError(EErrorCode::ConflictingMultiplexDefinition);
534-
}
535-
}
536520
}
537521
std::unique_ptr<ISignal> SignalImpl::Clone() const
538522
{

0 commit comments

Comments
 (0)