From 749552e4434da786f55cb5be44393f65d58fbfec Mon Sep 17 00:00:00 2001 From: Bryant Jones Date: Wed, 24 Jun 2026 13:28:12 -0400 Subject: [PATCH] Device: Fix coremini loading For: - RADA2B - RADComet2 - RADComet3 - RADGalaxy2 - RADMoonT1S - RADStar2 --- device/device.cpp | 31 ++++++++++--------- include/icsneo/device/tree/rada2b/rada2b.h | 4 --- .../icsneo/device/tree/radcomet2/radcomet2.h | 2 +- .../icsneo/device/tree/radcomet3/radcomet3.h | 2 +- .../device/tree/radgalaxy2/radgalaxy2.h | 2 +- .../device/tree/radmoont1s/radmoont1s.h | 6 +++- .../icsneo/device/tree/radstar2/radstar2.h | 8 ++--- 7 files changed, 27 insertions(+), 28 deletions(-) diff --git a/device/device.cpp b/device/device.cpp index b766d5e..6600da1 100644 --- a/device/device.cpp +++ b/device/device.cpp @@ -737,15 +737,17 @@ bool Device::uploadCoremini(std::istream& stream, Disk::MemoryType memType) { return false; } - auto connected = isLogicalDiskConnected(); - - if(!connected) { - return false; // Already added an API error - } - - if(!(*connected)) { - report(APIEvent::Type::DiskNotConnected, APIEvent::Severity::Error); - return false; + if (memType == Disk::MemoryType::SD) { + auto connected = isLogicalDiskConnected(); + + if(!connected) { + return false; // Already added an API error + } + + if(!(*connected)) { + report(APIEvent::Type::DiskNotConnected, APIEvent::Severity::Error); + return false; + } } if(!stopScript()) { @@ -756,7 +758,6 @@ bool Device::uploadCoremini(std::istream& stream, Disk::MemoryType memType) { return false; } - if(!eraseScriptMemory(memType, static_cast(bin.size()))) { return false; } @@ -846,10 +847,12 @@ std::optional Device::readCoreminiHeader(Disk::MemoryType memTyp return std::nullopt; } - auto connected = isLogicalDiskConnected(); - - if(!connected) { - return std::nullopt; // Already added an API error + if (memType == Disk::MemoryType::SD) { + auto connected = isLogicalDiskConnected(); + + if(!connected) { + return std::nullopt; // Already added an API error + } } #pragma pack(push, 2) diff --git a/include/icsneo/device/tree/rada2b/rada2b.h b/include/icsneo/device/tree/rada2b/rada2b.h index a822160..ecc4927 100644 --- a/include/icsneo/device/tree/rada2b/rada2b.h +++ b/include/icsneo/device/tree/rada2b/rada2b.h @@ -96,10 +96,6 @@ protected: return 15*1024*1024; } - std::optional getCoreminiStartAddressSD() const override { - return 0; - } - }; } diff --git a/include/icsneo/device/tree/radcomet2/radcomet2.h b/include/icsneo/device/tree/radcomet2/radcomet2.h index 97ac010..2cc978d 100644 --- a/include/icsneo/device/tree/radcomet2/radcomet2.h +++ b/include/icsneo/device/tree/radcomet2/radcomet2.h @@ -69,7 +69,7 @@ public: protected: RADComet2(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) { - initialize(makeDriver); + initialize(makeDriver); } void setupPacketizer(Packetizer& packetizer) override { diff --git a/include/icsneo/device/tree/radcomet3/radcomet3.h b/include/icsneo/device/tree/radcomet3/radcomet3.h index 930df20..ca42f7b 100644 --- a/include/icsneo/device/tree/radcomet3/radcomet3.h +++ b/include/icsneo/device/tree/radcomet3/radcomet3.h @@ -76,7 +76,7 @@ public: protected: RADComet3(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) { - initialize(makeDriver); + initialize(makeDriver); } void setupPacketizer(Packetizer& packetizer) override { diff --git a/include/icsneo/device/tree/radgalaxy2/radgalaxy2.h b/include/icsneo/device/tree/radgalaxy2/radgalaxy2.h index a4b3679..fffde8a 100644 --- a/include/icsneo/device/tree/radgalaxy2/radgalaxy2.h +++ b/include/icsneo/device/tree/radgalaxy2/radgalaxy2.h @@ -131,7 +131,7 @@ protected: } std::optional getCoreminiStartAddressFlash() const override { - return 512*4; + return 92*1024*1024; } std::optional getCoreminiStartAddressSD() const override { diff --git a/include/icsneo/device/tree/radmoont1s/radmoont1s.h b/include/icsneo/device/tree/radmoont1s/radmoont1s.h index 9f1b18b..8614d2e 100644 --- a/include/icsneo/device/tree/radmoont1s/radmoont1s.h +++ b/include/icsneo/device/tree/radmoont1s/radmoont1s.h @@ -55,7 +55,7 @@ public: } protected: RADMoonT1S(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) { - initialize(makeDriver); + initialize(makeDriver); } void setupPacketizer(Packetizer& packetizer) override { @@ -83,6 +83,10 @@ protected: void setupSupportedTXNetworks(std::vector& txNetworks) override { setupSupportedRXNetworks(txNetworks); } + + std::optional getCoreminiStartAddressFlash() const override { + return 32*1024*1024; + } }; } diff --git a/include/icsneo/device/tree/radstar2/radstar2.h b/include/icsneo/device/tree/radstar2/radstar2.h index d8f4263..2aa02e9 100644 --- a/include/icsneo/device/tree/radstar2/radstar2.h +++ b/include/icsneo/device/tree/radstar2/radstar2.h @@ -52,7 +52,7 @@ public: } protected: RADStar2(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) { - initialize(makeDriver); + initialize(makeDriver); } virtual void setupPacketizer(Packetizer& packetizer) override { @@ -80,11 +80,7 @@ protected: void setupSupportedTXNetworks(std::vector& txNetworks) override { setupSupportedRXNetworks(txNetworks); } std::optional getCoreminiStartAddressFlash() const override { - return 512*4; - } - - std::optional getCoreminiStartAddressSD() const override { - return 0; + return 14*1024*1024; } bool supportsGetAllMACAddresses() const override {