mirror of
https://github.com/esphome/esphome.git
synced 2025-03-16 15:48:16 +00:00
working version for simple triggers
This commit is contained in:
parent
d2c812cdaa
commit
52e6b8d4f2
@ -20,11 +20,11 @@ void Canbus::send_data(uint32_t can_id, const std::vector<uint8_t> data) {
|
|||||||
struct can_frame can_message;
|
struct can_frame can_message;
|
||||||
|
|
||||||
uint8_t size = static_cast<uint8_t>(data.size());
|
uint8_t size = static_cast<uint8_t>(data.size());
|
||||||
ESP_LOGD(TAG, "size=%d", size);
|
ESP_LOGD(TAG, "canid=%d size=%d", can_id, size);
|
||||||
if (size > CAN_MAX_DLC)
|
if (size > CAN_MAX_DLC)
|
||||||
size = CAN_MAX_DLC;
|
size = CAN_MAX_DLC;
|
||||||
can_message.can_dlc = size;
|
can_message.can_dlc = size;
|
||||||
can_message.can_id = this->sender_id_;
|
can_message.can_id = can_id;
|
||||||
|
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
can_message.data[i] = data[i];
|
can_message.data[i] = data[i];
|
||||||
@ -34,11 +34,16 @@ void Canbus::send_data(uint32_t can_id, const std::vector<uint8_t> data) {
|
|||||||
this->send_message_(&can_message);
|
this->send_message_(&can_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Canbus::add_trigger(CanbusTrigger *trigger) {
|
||||||
|
ESP_LOGD(TAG, "add trigger for canid:%d", trigger->can_id_);
|
||||||
|
this->triggers_.push_back(trigger);
|
||||||
|
};
|
||||||
|
|
||||||
void Canbus::loop() {
|
void Canbus::loop() {
|
||||||
struct can_frame can_message;
|
struct can_frame can_message;
|
||||||
// readmessage
|
// readmessage
|
||||||
if (this->read_message_(&can_message) == canbus::ERROR_OK) {
|
if (this->read_message_(&can_message) == canbus::ERROR_OK) {
|
||||||
ESP_LOGD(TAG,"received can message can_id=%04x length=%d",can_message.can_id, can_message.can_dlc);
|
ESP_LOGD(TAG, "received can message can_id=%d length=%d", can_message.can_id, can_message.can_dlc);
|
||||||
// show data received
|
// show data received
|
||||||
for (int i = 0; i < can_message.can_dlc; i++)
|
for (int i = 0; i < can_message.can_dlc; i++)
|
||||||
ESP_LOGD(TAG, "data[%d]=%02x", i, can_message.data[i]);
|
ESP_LOGD(TAG, "data[%d]=%02x", i, can_message.data[i]);
|
||||||
|
@ -68,7 +68,7 @@ class Canbus : public Component {
|
|||||||
void set_sender_id(int sender_id) { this->sender_id_ = sender_id; }
|
void set_sender_id(int sender_id) { this->sender_id_ = sender_id; }
|
||||||
void set_bitrate(CAN_SPEED bit_rate) { this->bit_rate_ = bit_rate; }
|
void set_bitrate(CAN_SPEED bit_rate) { this->bit_rate_ = bit_rate; }
|
||||||
|
|
||||||
void add_trigger(CanbusTrigger *trigger) {this->triggers_.push_back(trigger);};
|
void add_trigger(CanbusTrigger *trigger);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::vector<CanbusTrigger *> triggers_{};
|
std::vector<CanbusTrigger *> triggers_{};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user