DBC Framework
DBC parsing and CAN signal decoding framework
Loading...
Searching...
No Matches
multiplexing.h
1// SPDX-License-Identifier: MIT
2#ifndef MULTIPLEXING_H
3#define MULTIPLEXING_H
4
5#include <cstdint>
6#include <string>
7#include <vector>
8
10enum class MultiplexRole {
11 Unconditional,
12 Selector,
13 Branch,
14 BranchSelector
15};
16
19 std::uint64_t minimum = 0U;
20 std::uint64_t maximum = 0U;
21};
22
25 MultiplexRole role = MultiplexRole::Unconditional;
26 std::uint64_t value = 0U;
27 std::string selector;
28 std::vector<MultiplexRange> ranges;
29};
30
31inline bool IsMultiplexSelector(MultiplexRole role) {
32 return role == MultiplexRole::Selector || role == MultiplexRole::BranchSelector;
33}
34
35inline bool IsMultiplexBranch(MultiplexRole role) {
36 return role == MultiplexRole::Branch || role == MultiplexRole::BranchSelector;
37}
38
39#endif
Inclusive raw selector range, without expanding individual values.
Basic markers and optional explicit extended multiplexing condition.
std::uint64_t value
std::vector< MultiplexRange > ranges
std::string selector