27 std::vector<std::uint8_t>
data;
39 PhysicalConversionFailed
76 std::vector<DecodedSignalValue> signals;
97 bool isExtended)
const;
119 const std::vector<SignalKey> &selection)
const;
123 std::uint32_t canId,
bool isExtended);
127 const std::vector<SignalKey> *selection)
const;
129 static bool IsValidDefinition(
const DecodeSignal &signal, std::uint8_t dlc);
131 struct SelectorState {
134 bool available =
false;
135 std::uint64_t value = 0U;
142 const SelectorState &selector);
144 static bool ExtractUnsigned(
const std::vector<std::uint8_t> &data,
146 std::uint64_t &value);
148 static bool ExtractIntel(
const std::vector<std::uint8_t> &data,
149 std::uint32_t startBit,
150 std::uint32_t length,
151 std::uint64_t &value);
153 static bool ExtractMotorola(
const std::vector<std::uint8_t> &data,
154 std::uint32_t startBit,
155 std::uint32_t length,
156 std::uint64_t &value);
158 static std::int64_t SignExtend(std::uint64_t value, std::uint32_t bitLength);
Runtime CAN decoder using prebuilt decode database.
DecodedFrameValue Decode(const DecodeDatabase &database, const RawCanFrame &frame) const
Decode one raw CAN frame.
std::shared_ptr< const DecodeFrame > FindFrame(const DecodeDatabase &database, std::uint32_t canId, bool isExtended) const
Find exact CAN ID first, then unique PGN among explicitly J1939 definitions.
Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...
SignalDecodeStatus
Outcome of signal extraction and physical conversion.
Runtime definitions and immutable indexed database.
Runtime-ready frame definition.
Runtime-ready signal definition.
std::shared_ptr< const DecodeFrame > definition
One decoded signal value.
std::shared_ptr< const DecodeSignal > definition
SignalDecodeStatus status
const std::string * GetValueDescription() const
Stable frame identifier: normalized CAN ID and frame type.
Raw CAN frame used for runtime or trace decoding.
std::vector< std::uint8_t > data