20#include "multiplex_graph.h"
28 std::vector<std::uint8_t>
data;
40 PhysicalConversionFailed
77 std::vector<DecodedSignalValue> signals;
98 bool isExtended)
const;
120 const std::vector<SignalKey> &selection)
const;
124 std::uint32_t canId,
bool isExtended);
128 const std::vector<SignalKey> *selection)
const;
130 static bool IsValidDefinition(
const DecodeSignal &signal, std::uint8_t dlc);
141 static bool ExtractUnsigned(
const std::vector<std::uint8_t> &data,
143 std::uint64_t &value);
145 static bool ExtractIntel(
const std::vector<std::uint8_t> &data,
146 std::uint32_t startBit,
147 std::uint32_t length,
148 std::uint64_t &value);
150 static bool ExtractMotorola(
const std::vector<std::uint8_t> &data,
151 std::uint32_t startBit,
152 std::uint32_t length,
153 std::uint64_t &value);
155 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