CAN FD baudrate settings

This commit is contained in:
Paul Hollinsky
2018-10-30 15:38:15 -04:00
parent 92d98f8bd5
commit 1a9c907fea
9 changed files with 100 additions and 9 deletions
+1
View File
@@ -294,6 +294,7 @@ public:
bool applyDefaults(bool temporary = false);
virtual bool setBaudrateFor(Network net, uint32_t baudrate);
virtual bool setFDBaudrateFor(Network net, uint32_t baudrate);
virtual CAN_SETTINGS* getCANSettingsFor(Network net) { (void)net; return nullptr; }
virtual CANFD_SETTINGS* getCANFDSettingsFor(Network net) { (void)net; return nullptr; }
@@ -137,7 +137,29 @@ public:
return nullptr;
}
}
// CANFD_SETTINGS* getCANFDSettingsFor(Network net) override { return nullptr; }
CANFD_SETTINGS* getCANFDSettingsFor(Network net) override {
auto cfg = getStructurePointer<neovifire2_settings_t>();
switch(net.getNetID()) {
case Network::NetID::HSCAN:
return &(cfg->canfd1);
case Network::NetID::MSCAN:
return &(cfg->canfd2);
case Network::NetID::HSCAN2:
return &(cfg->canfd3);
case Network::NetID::HSCAN3:
return &(cfg->canfd4);
case Network::NetID::HSCAN4:
return &(cfg->canfd5);
case Network::NetID::HSCAN5:
return &(cfg->canfd6);
case Network::NetID::HSCAN6:
return &(cfg->canfd7);
case Network::NetID::HSCAN7:
return &(cfg->canfd8);
default:
return nullptr;
}
}
};
}
@@ -19,7 +19,6 @@ public:
return nullptr;
}
}
// CANFD_SETTINGS* getCANFDSettingsFor(Network net) override { return nullptr; }
};
}
@@ -18,15 +18,21 @@ public:
return &(cfg->can1);
case Network::NetID::HSCAN2:
return &(cfg->can2);
case Network::NetID::HSCAN3:
return &(cfg->can3);
case Network::NetID::HSCAN4:
return &(cfg->can4);
default:
return nullptr;
}
}
// CANFD_SETTINGS* getCANFDSettingsFor(Network net) override { return nullptr; }
CANFD_SETTINGS* getCANFDSettingsFor(Network net) override {
auto cfg = getStructurePointer<valuecan4_4_2el_settings_t>();
switch(net.getNetID()) {
case Network::NetID::HSCAN:
return &(cfg->canfd1);
case Network::NetID::HSCAN2:
return &(cfg->canfd2);
default:
return nullptr;
}
}
};
}
@@ -21,7 +21,17 @@ public:
return nullptr;
}
}
// CANFD_SETTINGS* getCANFDSettingsFor(Network net) override { return nullptr; }
CANFD_SETTINGS* getCANFDSettingsFor(Network net) override {
auto cfg = getStructurePointer<valuecan4_1_2_settings_t>();
switch(net.getNetID()) {
case Network::NetID::HSCAN:
return &(cfg->canfd1);
case Network::NetID::HSCAN2:
return &(cfg->canfd2);
default:
return nullptr;
}
}
};
}
@@ -26,7 +26,21 @@ public:
return nullptr;
}
}
// CANFD_SETTINGS* getCANFDSettingsFor(Network net) override { return nullptr; }
CANFD_SETTINGS* getCANFDSettingsFor(Network net) override {
auto cfg = getStructurePointer<valuecan4_4_2el_settings_t>();
switch(net.getNetID()) {
case Network::NetID::HSCAN:
return &(cfg->canfd1);
case Network::NetID::HSCAN2:
return &(cfg->canfd2);
case Network::NetID::HSCAN3:
return &(cfg->canfd3);
case Network::NetID::HSCAN4:
return &(cfg->canfd4);
default:
return nullptr;
}
}
};
}