27 std::vector<std::uint8_t>
data;
32enum class SignalDecodeStatus {
38 PhysicalConversionFailed
58 SignalDecodeStatus status = SignalDecodeStatus::InvalidDefinition;
74 std::vector<DecodedSignalValue> signals;
95 bool isExtended)
const;
108 static bool IsValidDefinition(
const DecodeSignal &signal, std::uint8_t dlc);
110 struct SelectorState {
113 bool available =
false;
114 std::uint64_t value = 0U;
121 const SelectorState &selector);
123 static bool ExtractUnsigned(
const std::vector<std::uint8_t> &data,
125 std::uint64_t &value);
127 static bool ExtractIntel(
const std::vector<std::uint8_t> &data,
128 std::uint32_t startBit,
129 std::uint32_t length,
130 std::uint64_t &value);
132 static bool ExtractMotorola(
const std::vector<std::uint8_t> &data,
133 std::uint32_t startBit,
134 std::uint32_t length,
135 std::uint64_t &value);
137 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 frame definition by CAN ID.
Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...
Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
Runtime-ready frame definition.
Runtime-ready signal definition.
std::shared_ptr< const DecodeFrame > definition
One decoded signal value.
std::shared_ptr< const DecodeSignal > definition
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