47template<
typename... Ts>
class CanbusSendAction;
50static const uint8_t CAN_MAX_DATA_LENGTH = 8;
68 void setup()
override;
73 void send_data(uint32_t can_id,
bool use_extended_id,
bool remote_transmission_request,
74 const std::vector<uint8_t> &data);
75 void send_data(uint32_t can_id,
bool use_extended_id,
const std::vector<uint8_t> &data) {
77 this->
send_data(can_id, use_extended_id,
false, data);
95 std::function<
void(uint32_t can_id,
bool extended_id,
bool rtr,
const std::vector<uint8_t> &data)> callback) {
105 CallbackManager<void(uint32_t can_id,
bool extended_id,
bool rtr,
const std::vector<uint8_t> &data)>
134 auto use_extended_id =
158 const bool use_extended_id)
Helper class to easily give an object a parent of type T.
CallbackManager< void(uint32_t can_id, bool extended_id, bool rtr, const std::vector< uint8_t > &data)> callback_manager_
void send_data(uint32_t can_id, bool use_extended_id, bool remote_transmission_request, const std::vector< uint8_t > &data)
void set_use_extended_id(bool use_extended_id)
void add_trigger(CanbusTrigger *trigger)
virtual Error send_message(struct CanFrame *frame)
void add_callback(std::function< void(uint32_t can_id, bool extended_id, bool rtr, const std::vector< uint8_t > &data)> callback)
Add a callback to be called when a CAN message is received.
void set_bitrate(CanSpeed bit_rate)
void set_can_id(uint32_t can_id)
float get_setup_priority() const override
void dump_config() override
void send_data(uint32_t can_id, bool use_extended_id, const std::vector< uint8_t > &data)
virtual bool setup_internal()
virtual Error read_message(struct CanFrame *frame)
std::vector< CanbusTrigger * > triggers_
bool remote_transmission_request_
std::function< std::vector< uint8_t >(Ts...)> data_func_
void set_data_template(const std::function< std::vector< uint8_t >(Ts...)> func)
void set_remote_transmission_request(bool remote_transmission_request)
void set_data_static(const std::vector< uint8_t > &data)
void play(Ts... x) override
optional< uint32_t > can_id_
void set_use_extended_id(bool use_extended_id)
optional< bool > use_extended_id_
std::vector< uint8_t > data_static_
void set_can_id(uint32_t can_id)
optional< bool > remote_transmission_request_
CanbusTrigger(Canbus *parent, const std::uint32_t can_id, const std::uint32_t can_id_mask, const bool use_extended_id)
void set_remote_transmission_request(bool remote_transmission_request)
const float HARDWARE
For components that deal with hardware and are very important like GPIO switch.
Providing packet encoding functions for exchanging data with a remote host.
uint8_t can_data_length_code
uint8_t data[CAN_MAX_DATA_LENGTH] __attribute__((aligned(8)))
bool remote_transmission_request