1
0
mirror of https://github.com/esphome/esphome.git synced 2025-03-16 07:38:17 +00:00

working version for simple triggers

This commit is contained in:
mvturnho 2019-08-07 21:27:44 +02:00
parent d2c812cdaa
commit 52e6b8d4f2
2 changed files with 17 additions and 12 deletions

View File

@ -20,11 +20,11 @@ void Canbus::send_data(uint32_t can_id, const std::vector<uint8_t> data) {
struct can_frame can_message;
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)
size = CAN_MAX_DLC;
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++) {
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);
}
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() {
struct can_frame can_message;
// readmessage
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
for (int i = 0; i < can_message.can_dlc; i++)
ESP_LOGD(TAG, "data[%d]=%02x", i, can_message.data[i]);

View File

@ -68,7 +68,7 @@ class Canbus : public Component {
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 add_trigger(CanbusTrigger *trigger) {this->triggers_.push_back(trigger);};
void add_trigger(CanbusTrigger *trigger);
protected:
std::vector<CanbusTrigger *> triggers_{};