Go to the documentation of this file.
52 template<auto Context,
template<auto>
typename CanImpl>
56 using Impl = CanImpl<Context>;
64 static auto init(
auto ... args) {
65 return Impl::init(args...);
73 return Impl::deinit(args...);
80 return Impl::enable();
87 return Impl::disable();
99 static_assert(
sizeof(T) <= 8,
"CAN data can be 8 byte maximal");
101 std::array<u8, 8> data;
104 rxPacket.
data = bit_cast<T>(data);
117 static_assert(
sizeof(T) <= 8,
"CAN data can be 8 byte maximal");
119 return Impl::write(packet);
132 static_assert(
sizeof(T) <= 8,
"CAN data can be 8 byte maximal");
134 if(
id <= 0x7FF) packet.
id = id;
137 return Impl::write(packet);
150 return Impl::setStdFilter(bank,
id, mask);
164 return Impl::setExtFilter(bank, id, mask);
173 static bool disableFilter(u8 bank) {
174 return Impl::disableFilter(bank);
uint16_t u16
Definition: types.h:37
Commonly used helper functions.
uint8_t u8
Unsigned integer definitions.
Definition: types.h:36
static u32 write(u32 id, const T &data)
CAN write function.
Definition: can.hpp:131
static bool setExtFilter(u8 bank, u32 id, u32 mask=0x1FFF 'FFFF)
Extended ID filter configuration function.
Definition: can.hpp:163
static bool setStdFilter(u8 bank, u16 id, u16 mask=0x7FF)
Standard ID filter configuration function.
Definition: can.hpp:149
u32 id
Definition: can.hpp:39
static u32 write(CANPacket< T > packet)
CAN write function.
Definition: can.hpp:116
static auto deinit(auto ... args)
Deinit function.
Definition: can.hpp:72
u32 extendedId
Definition: can.hpp:39
static auto init(auto ... args)
Init function.
Definition: can.hpp:64
CanImpl< Context > Impl
Definition: can.hpp:56
uint32_t u32
Definition: types.h:38
T data
Definition: can.hpp:43
u32 transmitGlobalTime
Definition: can.hpp:41
Base class for CAN abstraction.
Definition: can.hpp:53
Zero-cost abstraction for accessing registers and bits/bitfields within them.
static bool enable()
Can enable.
Definition: can.hpp:79
static bool disable()
Can disable.
Definition: can.hpp:86
static CANPacket< T > read()
CAN read function.
Definition: can.hpp:98
Commonly used C++ and GNU attributes.
Definition: display.hpp:37
u32 timestamp
Definition: can.hpp:41