diff --git a/include/icsneo/device/device.h b/include/icsneo/device/device.h index e4c9409..2217bd8 100644 --- a/include/icsneo/device/device.h +++ b/include/icsneo/device/device.h @@ -210,6 +210,11 @@ public: NODISCARD("If the Lifetime is not held, disconnects will be immediately unsuppressed") Lifetime suppressDisconnects(); + /** + * Some alternate communication protocols do not support DFU + */ + virtual bool currentDriverSupportsDFU() const { return true; } + const device_eventhandler_t& getEventHandler() const { return report; } std::shared_ptr com; diff --git a/include/icsneo/device/tree/neovifire2/neovifire2eth.h b/include/icsneo/device/tree/neovifire2/neovifire2eth.h index ca980c4..7771c37 100644 --- a/include/icsneo/device/tree/neovifire2/neovifire2eth.h +++ b/include/icsneo/device/tree/neovifire2/neovifire2eth.h @@ -50,6 +50,8 @@ public: productId = PRODUCT_ID; } + bool currentDriverSupportsDFU() const override { return false; } + protected: void setupSettings(IDeviceSettings& ssettings) override { // TODO Check firmware version, old firmwares will reset Ethernet settings on settings send diff --git a/include/icsneo/device/tree/valuecan4/valuecan4-2eleth.h b/include/icsneo/device/tree/valuecan4/valuecan4-2eleth.h index 48e3e2f..75aed6a 100644 --- a/include/icsneo/device/tree/valuecan4/valuecan4-2eleth.h +++ b/include/icsneo/device/tree/valuecan4/valuecan4-2eleth.h @@ -56,6 +56,8 @@ public: return supportedNetworks; } + bool currentDriverSupportsDFU() const override { return false; } + protected: virtual void setupSupportedRXNetworks(std::vector& rxNetworks) override { for(auto& netid : GetSupportedNetworks()) diff --git a/include/icsneo/device/tree/valuecan4/valuecan4industrialeth.h b/include/icsneo/device/tree/valuecan4/valuecan4industrialeth.h index 3eb1539..bc7aa8c 100644 --- a/include/icsneo/device/tree/valuecan4/valuecan4industrialeth.h +++ b/include/icsneo/device/tree/valuecan4/valuecan4industrialeth.h @@ -56,6 +56,8 @@ public: return supportedNetworks; } + bool currentDriverSupportsDFU() const override { return false; } + protected: virtual void setupSupportedRXNetworks(std::vector& rxNetworks) override { for(auto& netid : GetSupportedNetworks())