8inline std::uint64_t SignalStartCoordinate(std::uint32_t startBit,
bool littleEndian) {
9 return littleEndian ? std::uint64_t(startBit)
10 : std::uint64_t(startBit / 8U) * 8U + 7U - startBit % 8U;
13inline bool IsValidSignalLayout(std::uint32_t startBit, std::uint32_t length,
14 bool littleEndian, std::uint8_t dlc) {
15 return length >= 1U && length <= 64U &&
16 SignalStartCoordinate(startBit, littleEndian) + length <= std::uint64_t(dlc) * 8U;