Files
dbc/core/frame_info.h
T
2026-10-20 13:21:43 -04:00

45 lines
1.3 KiB
C++

/**
* @file frame_info.h
* @brief
*
* Created: 2026-03-13
* Author: Deeaitch (Dim. Himro)
*
* Licensed under the MIT License.
* See LICENSE file in the project root for full license text.
*/
#ifndef FRAME_INFO_H
#define FRAME_INFO_H
#include "attributes.h"
#include <cstdint>
#include <string>
#include <vector>
#include "signal_info.h"
/**
* @brief Describes one CAN frame from a DBC file.
*/
struct FrameInfo {
std::string name; /**< Frame name. */
std::uint32_t canId = 0U; /**< Normalized CAN identifier. */
bool isExtended = false; /**< true for extended frame. */
std::uint32_t pgn = 0U; /**< J1939 PGN if applicable. */
bool hasPgn = false; /**< Explicit J1939 opt-in; pgn is derived from canId. */
std::uint8_t dlc = 0U; /**< Frame payload length. */
std::string transmitter; /**< Transmitter ECU name. */
std::string comment; /**< Optional frame comment. */
std::vector<SignalInfo> signals; /**< Signals contained in the frame. */
std::optional<std::string> frameFormat; /**< VFrameFormat enum label. */
std::optional<std::uint32_t> cycleTimeMs; /**< GenMsgCycleTime; zero means unspecified. */
AttributeMap attributes; /**< Effective values, including defaults. */
FrameInfo() = default;
};
#endif /* FRAME_INFO_H */