diff --git a/include/icsneo/device/tree/valuecan4/settings/valuecan4-4-2elsettings.h b/include/icsneo/device/tree/valuecan4/settings/valuecan4-4-2elsettings.h index 12e4b7f..8a2c382 100644 --- a/include/icsneo/device/tree/valuecan4/settings/valuecan4-4-2elsettings.h +++ b/include/icsneo/device/tree/valuecan4/settings/valuecan4-4-2elsettings.h @@ -11,7 +11,32 @@ namespace icsneo { class ValueCAN4_4_2ELSettings : public IDeviceSettings { public: ValueCAN4_4_2ELSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(valuecan4_4_2el_settings_t)) {} - // We do not override getCANSettingsFor, getCANFDSettingsFor, or getEthernetSettingsFor here because they will be device specific + const CAN_SETTINGS* getCANSettingsFor(Network net) const override { + auto cfg = getStructurePointer(); + if(cfg == nullptr) + return nullptr; + switch(net.getNetID()) { + case Network::NetID::HSCAN: + return &(cfg->can1); + case Network::NetID::HSCAN2: + return &(cfg->can2); + default: + return nullptr; + } + } + const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override { + auto cfg = getStructurePointer(); + if(cfg == nullptr) + return nullptr; + switch(net.getNetID()) { + case Network::NetID::HSCAN: + return &(cfg->canfd1); + case Network::NetID::HSCAN2: + return &(cfg->canfd2); + default: + return nullptr; + } + } }; }