diff --git a/device/device.cpp b/device/device.cpp index 6fdbb9d..6c0b0b2 100644 --- a/device/device.cpp +++ b/device/device.cpp @@ -435,7 +435,13 @@ bool Device::reconnect(std::chrono::milliseconds timeout, std::chrono::milliseco // Pause reads again com->pauseReads(); } - return com->open(); + if(com->open()) { + return true; + } else { + if(readsArePaused) { + com->resumeReads(); + } + } } } std::this_thread::sleep_for(interval); diff --git a/include/icsneo/device/tree/neoviconnect/neoviconnect.h b/include/icsneo/device/tree/neoviconnect/neoviconnect.h index 250f6f7..5982d10 100644 --- a/include/icsneo/device/tree/neoviconnect/neoviconnect.h +++ b/include/icsneo/device/tree/neoviconnect/neoviconnect.h @@ -52,6 +52,7 @@ public: .add(ChipID::Connect_LINUX, BootloaderCommunication::Application, false, false, false) .add(ChipID::Connect_ZCHIP, BootloaderCommunication::Application) .add(ChipID::Connect_LINUX, BootloaderCommunication::Application) + .add(ChipID::Connect_ZCHIP) .add() .addSetting(BootloaderSetting::UpdateAll, true); } diff --git a/include/icsneo/device/tree/neovifire3/neovifire3.h b/include/icsneo/device/tree/neovifire3/neovifire3.h index be8c923..cefb6d8 100644 --- a/include/icsneo/device/tree/neovifire3/neovifire3.h +++ b/include/icsneo/device/tree/neovifire3/neovifire3.h @@ -75,6 +75,7 @@ public: .add(ChipID::neoVIFIRE3_SCHIP, BootloaderCommunication::Application) .add(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application) .add(ChipID::VEM_01_8DW_ZCHIP, BootloaderCommunication::Application) + .add(ChipID::neoVIFIRE3_ZCHIP) .add() .addSetting(BootloaderSetting::UpdateAll, true); } diff --git a/include/icsneo/device/tree/neovifire3flexray/neovifire3flexray.h b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexray.h index 289cedd..d55791c 100644 --- a/include/icsneo/device/tree/neovifire3flexray/neovifire3flexray.h +++ b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexray.h @@ -80,6 +80,7 @@ public: .add(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application) .add(ChipID::VEM_02_FR_FCHIP, BootloaderCommunication::Application) .add(ChipID::VEM_02_FR_ZCHIP, BootloaderCommunication::Application) + .add(ChipID::neoVIFIRE3_ZCHIP) .add() .addSetting(BootloaderSetting::UpdateAll, true); } diff --git a/include/icsneo/device/tree/neovired2/neovired2.h b/include/icsneo/device/tree/neovired2/neovired2.h index 8ede865..bc0a9be 100644 --- a/include/icsneo/device/tree/neovired2/neovired2.h +++ b/include/icsneo/device/tree/neovired2/neovired2.h @@ -58,6 +58,7 @@ public: .add(ChipID::neoVIFIRE3_ZCHIP, BootloaderCommunication::Application) .add(ChipID::neoVIFIRE3_SCHIP, BootloaderCommunication::Application) .add(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application) + .add(ChipID::neoVIFIRE3_ZCHIP) .add() .addSetting(BootloaderSetting::UpdateAll, true); } diff --git a/include/icsneo/device/tree/rada2b/rada2b.h b/include/icsneo/device/tree/rada2b/rada2b.h index 3337ed5..da51d0a 100644 --- a/include/icsneo/device/tree/rada2b/rada2b.h +++ b/include/icsneo/device/tree/rada2b/rada2b.h @@ -58,7 +58,7 @@ public: return BootloaderPipeline() .add() .add(ChipID::RADA2B_ZCHIP, BootloaderCommunication::RAD) - .add() + // .add() .add(std::chrono::milliseconds(3000)); } protected: diff --git a/include/icsneo/device/tree/radcomet/radcometbase.h b/include/icsneo/device/tree/radcomet/radcometbase.h index 71be654..97aa22b 100644 --- a/include/icsneo/device/tree/radcomet/radcometbase.h +++ b/include/icsneo/device/tree/radcomet/radcometbase.h @@ -45,8 +45,8 @@ public: return BootloaderPipeline() .add() .add(ChipID::RADComet_ZYNQ, BootloaderCommunication::RAD) - .add() - .add(std::chrono::milliseconds(3000)); + .add(std::chrono::milliseconds(3000)) + .add(); } protected: diff --git a/include/icsneo/device/tree/radcomet3/radcomet3.h b/include/icsneo/device/tree/radcomet3/radcomet3.h index 09ff634..9c066fe 100644 --- a/include/icsneo/device/tree/radcomet3/radcomet3.h +++ b/include/icsneo/device/tree/radcomet3/radcomet3.h @@ -69,8 +69,8 @@ public: return BootloaderPipeline() .add() .add(ChipID::RADCOMET3_ZCHIP, BootloaderCommunication::RAD) - .add() - .add(std::chrono::milliseconds(3000)); + .add(std::chrono::milliseconds(5000)) + .add(); } protected: diff --git a/include/icsneo/device/tree/radepsilon/radepsilon.h b/include/icsneo/device/tree/radepsilon/radepsilon.h index 868b0db..8c26dd5 100644 --- a/include/icsneo/device/tree/radepsilon/radepsilon.h +++ b/include/icsneo/device/tree/radepsilon/radepsilon.h @@ -40,6 +40,7 @@ public: return BootloaderPipeline() .add() .add(ChipID::RADEpsilon_MCHIP, BootloaderCommunication::RED) + .add(ChipID::RADEpsilon_MCHIP) .add(); } bool supportsComponentVersions() const override { return true; } diff --git a/include/icsneo/device/tree/radgalaxy2/radgalaxy2.h b/include/icsneo/device/tree/radgalaxy2/radgalaxy2.h index 5ef3b5d..1611322 100644 --- a/include/icsneo/device/tree/radgalaxy2/radgalaxy2.h +++ b/include/icsneo/device/tree/radgalaxy2/radgalaxy2.h @@ -85,6 +85,7 @@ public: .add(ChipID::RAD_GALAXY_2_ZMPCHIP_ID, BootloaderCommunication::RAD) .add() .add(ChipID::RADGALAXY2_SYSMON_CHIP, BootloaderCommunication::RADGalaxy2Peripheral) + .add(ChipID::RAD_GALAXY_2_ZMPCHIP_ID) .add() .add(std::chrono::milliseconds(3000)); } diff --git a/include/icsneo/device/tree/radgigastar/radgigastar.h b/include/icsneo/device/tree/radgigastar/radgigastar.h index 06442b8..774983c 100644 --- a/include/icsneo/device/tree/radgigastar/radgigastar.h +++ b/include/icsneo/device/tree/radgigastar/radgigastar.h @@ -84,8 +84,8 @@ public: pipeline.add(version.id, BootloaderCommunication::RADMultiChip); } pipeline.add(mainChipID); - pipeline.add(); pipeline.add(std::chrono::milliseconds(3000)); + pipeline.add(); return pipeline; } } @@ -93,13 +93,13 @@ public: if(com->driver->isEthernet()) { return BootloaderPipeline() .add(ChipID::RADGigastar_ZYNQ, BootloaderCommunication::RAD) - .add() - .add(std::chrono::milliseconds(3000)); + .add(std::chrono::milliseconds(3000)) + .add(); } return BootloaderPipeline() .add(ChipID::RADGigastar_USBZ_ZYNQ, BootloaderCommunication::RAD) - .add() - .add(std::chrono::milliseconds(3000)); + .add(std::chrono::milliseconds(3000)) + .add(); } std::vector getChipVersions(bool refreshComponents = true) override { diff --git a/include/icsneo/device/tree/radgigastar2/radgigastar2.h b/include/icsneo/device/tree/radgigastar2/radgigastar2.h index 4e22e20..5131182 100644 --- a/include/icsneo/device/tree/radgigastar2/radgigastar2.h +++ b/include/icsneo/device/tree/radgigastar2/radgigastar2.h @@ -163,8 +163,8 @@ public: pipeline.add(version.id, BootloaderCommunication::RADMultiChip); } pipeline.add(mainChipID); - pipeline.add(); pipeline.add(std::chrono::milliseconds(3000)); + pipeline.add(); return pipeline; } diff --git a/include/icsneo/device/tree/radmoon2/radmoon2.h b/include/icsneo/device/tree/radmoon2/radmoon2.h index 656cb18..5ad7428 100644 --- a/include/icsneo/device/tree/radmoon2/radmoon2.h +++ b/include/icsneo/device/tree/radmoon2/radmoon2.h @@ -33,8 +33,9 @@ public: return BootloaderPipeline() .add() .add(ChipID::RADMoon2_ZYNQ, BootloaderCommunication::RAD) - .add() - .add(std::chrono::milliseconds(3000)); + .add(ChipID::RADMoon2_ZYNQ) + .add(std::chrono::milliseconds(3000)) + .add(); } protected: RADMoon2(neodevice_t neodevice, const driver_factory_t& makeDriver) : RADMoon2Base(neodevice) { diff --git a/include/icsneo/device/tree/radmoon2/radmoon2zl.h b/include/icsneo/device/tree/radmoon2/radmoon2zl.h index ee8382b..a0e35e0 100644 --- a/include/icsneo/device/tree/radmoon2/radmoon2zl.h +++ b/include/icsneo/device/tree/radmoon2/radmoon2zl.h @@ -33,6 +33,8 @@ public: return BootloaderPipeline() .add() .add(ChipID::RADMoon2_ZL_MCHIP, BootloaderCommunication::RED) + .add(ChipID::RADMoon2_ZL_MCHIP) + .add(std::chrono::milliseconds(3000)) .add(); } protected: diff --git a/include/icsneo/device/tree/radmoon3/radmoon3.h b/include/icsneo/device/tree/radmoon3/radmoon3.h index c5268a0..333695f 100644 --- a/include/icsneo/device/tree/radmoon3/radmoon3.h +++ b/include/icsneo/device/tree/radmoon3/radmoon3.h @@ -45,8 +45,9 @@ public: return BootloaderPipeline() .add() .add(ChipID::RADMoon3_MCHIP, BootloaderCommunication::RED) - .add() - .add(std::chrono::milliseconds(3000)); + .add(ChipID::RADMoon3_MCHIP) + .add(std::chrono::milliseconds(3000)) + .add(); } protected: RADMoon3(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) { diff --git a/include/icsneo/device/tree/valuecan4/valuecan4-1.h b/include/icsneo/device/tree/valuecan4/valuecan4-1.h index e2e0463..b51b9e3 100644 --- a/include/icsneo/device/tree/valuecan4/valuecan4-1.h +++ b/include/icsneo/device/tree/valuecan4/valuecan4-1.h @@ -31,11 +31,13 @@ public: }; return chips; } - + BootloaderPipeline getBootloader() override { return BootloaderPipeline() .add() .add(ChipID::ValueCAN4_1_MCHIP, BootloaderCommunication::RED) + .add(ChipID::ValueCAN4_1_MCHIP) + .add(std::chrono::milliseconds(3000)) .add(); } diff --git a/include/icsneo/device/tree/valuecan4/valuecan4-2.h b/include/icsneo/device/tree/valuecan4/valuecan4-2.h index 57ba487..3afc872 100644 --- a/include/icsneo/device/tree/valuecan4/valuecan4-2.h +++ b/include/icsneo/device/tree/valuecan4/valuecan4-2.h @@ -61,8 +61,9 @@ public: return BootloaderPipeline() .add() .add(ChipID::ValueCAN4_2_MCHIP, BootloaderCommunication::RED) - .add() - .add(std::chrono::milliseconds(3000)); + .add(ChipID::ValueCAN4_2_MCHIP) + .add(std::chrono::milliseconds(3000)) + .add(); } protected: diff --git a/include/icsneo/device/tree/valuecan4/valuecan4-2el.h b/include/icsneo/device/tree/valuecan4/valuecan4-2el.h index 8723c04..0072508 100644 --- a/include/icsneo/device/tree/valuecan4/valuecan4-2el.h +++ b/include/icsneo/device/tree/valuecan4/valuecan4-2el.h @@ -66,7 +66,7 @@ public: const std::vector& getChipInfo() const override { static std::vector chips = { - {ChipID::ValueCAN4_2EL_MCHIP, true, "MCHIP", "vcan44_mchip_ief", 0, FirmwareType::IEF} + {ChipID::ValueCAN4_2EL_MCHIP, true, "MCHIP", "vcan44_mchip_ief", 0, FirmwareType::IEF}, }; return chips; } @@ -75,6 +75,8 @@ public: return BootloaderPipeline() .add() .add(ChipID::ValueCAN4_2EL_MCHIP, BootloaderCommunication::RED) + .add(ChipID::ValueCAN4_2EL_MCHIP) + .add(std::chrono::milliseconds(3000)) .add(); } diff --git a/include/icsneo/device/tree/valuecan4/valuecan4-4.h b/include/icsneo/device/tree/valuecan4/valuecan4-4.h index b881412..44b005d 100644 --- a/include/icsneo/device/tree/valuecan4/valuecan4-4.h +++ b/include/icsneo/device/tree/valuecan4/valuecan4-4.h @@ -64,7 +64,8 @@ public: const std::vector& getChipInfo() const override { static std::vector chips = { {ChipID::ValueCAN4_4_MCHIP, true, "MCHIP", "vcan44_mchip_ief", 0, FirmwareType::IEF}, - {ChipID::ValueCAN4_4_SCHIP, true, "SCHIP", "vcan44_schip_ief", 1, FirmwareType::IEF} + {ChipID::ValueCAN4_4_SCHIP, true, "SCHIP", "vcan44_schip_ief", 1, FirmwareType::IEF}, + {ChipID::ValueCAN4_4_2EL_Core, true, "Core", "vcan44_core_ief", 2, FirmwareType::IEF} }; return chips; } @@ -73,7 +74,10 @@ public: return BootloaderPipeline() .add() .add(ChipID::ValueCAN4_4_MCHIP, BootloaderCommunication::RED) - .add(ChipID::ValueCAN4_4_SCHIP, BootloaderCommunication::RED, false, true) + .add(ChipID::ValueCAN4_4_SCHIP, BootloaderCommunication::RED) + .add(ChipID::ValueCAN4_4_2EL_Core, BootloaderCommunication::REDCore) + .add(ChipID::ValueCAN4_4_MCHIP) + .add(std::chrono::milliseconds(3000)) .add(); } protected: