Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2021-09-10 15:00:16 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-09-10 15:00:16 +0300
commitc81d175f0419cbd813e7afd944af4eb273a8ed3b (patch)
treeccba54400a2454ddceb89c763c482c463e87bddc
parent33397d6279fd243b5d6a5fe4040814ca78b421a9 (diff)
parent1b9a248dd5e1cb4c1a03c0c6159183f45de359d5 (diff)
Merge branch '3.3-dev' of https://github.com/Duet3D/RepRapFirmware.git into 3.3-dev
-rw-r--r--src/Comms/FirmwareUpdater.cpp2
-rw-r--r--src/GCodes/GCodes3.cpp2
-rw-r--r--src/Networking/ESP8266WiFi/WifiFirmwareUploader.cpp13
-rw-r--r--src/Networking/ESP8266WiFi/WifiFirmwareUploader.h2
-rw-r--r--src/Platform/RepRap.cpp14
5 files changed, 21 insertions, 12 deletions
diff --git a/src/Comms/FirmwareUpdater.cpp b/src/Comms/FirmwareUpdater.cpp
index 3d7d2de7..5b671bcf 100644
--- a/src/Comms/FirmwareUpdater.cpp
+++ b/src/Comms/FirmwareUpdater.cpp
@@ -122,7 +122,7 @@ namespace FirmwareUpdater
if (uploader != nullptr)
{
const char* binaryFilename = filenameRef.IsEmpty() ? WIFI_FIRMWARE_FILE : filenameRef.c_str();
- uploader->SendUpdateFile(binaryFilename, FIRMWARE_DIRECTORY, WifiFirmwareUploader::FirmwareAddress);
+ uploader->SendUpdateFile(binaryFilename, WifiFirmwareUploader::FirmwareAddress);
}
}
break;
diff --git a/src/GCodes/GCodes3.cpp b/src/GCodes/GCodes3.cpp
index 000da338..2520da70 100644
--- a/src/GCodes/GCodes3.cpp
+++ b/src/GCodes/GCodes3.cpp
@@ -1186,7 +1186,7 @@ GCodeResult GCodes::UpdateFirmware(GCodeBuffer& gb, const StringRef &reply)
{
if (firmwareUpdateModuleMap.CountSetBits() > 1)
{
- reply.copy("Filename can only be provided when updating excactly one module\n");
+ reply.copy("Filename can only be provided when updating exactly one module\n");
firmwareUpdateModuleMap.Clear();
return GCodeResult::error;
}
diff --git a/src/Networking/ESP8266WiFi/WifiFirmwareUploader.cpp b/src/Networking/ESP8266WiFi/WifiFirmwareUploader.cpp
index fe38ee6d..17a922c2 100644
--- a/src/Networking/ESP8266WiFi/WifiFirmwareUploader.cpp
+++ b/src/Networking/ESP8266WiFi/WifiFirmwareUploader.cpp
@@ -733,14 +733,19 @@ void WifiFirmwareUploader::Spin() noexcept
}
// Try to upload the given file at the given address
-void WifiFirmwareUploader::SendUpdateFile(const char *file, const char *dir, uint32_t address) noexcept
+void WifiFirmwareUploader::SendUpdateFile(const char *file, uint32_t address) noexcept
{
Platform& platform = reprap.GetPlatform();
- uploadFile = platform.OpenFile(dir, file, OpenMode::read);
+ uploadFile = platform.OpenFile(FIRMWARE_DIRECTORY, file, OpenMode::read);
if (uploadFile == nullptr)
{
- MessageF("Failed to open file %s\n", file);
- return;
+ // Fall back to /sys if the wifi file wasn't found in /firmware
+ uploadFile = platform.OpenFile(DEFAULT_SYS_DIR, file, OpenMode::read);
+ if (uploadFile == nullptr)
+ {
+ MessageF("Failed to open file %s%s\n", FIRMWARE_DIRECTORY, file);
+ return;
+ }
}
fileSize = uploadFile->Length();
diff --git a/src/Networking/ESP8266WiFi/WifiFirmwareUploader.h b/src/Networking/ESP8266WiFi/WifiFirmwareUploader.h
index 470d1328..77c60203 100644
--- a/src/Networking/ESP8266WiFi/WifiFirmwareUploader.h
+++ b/src/Networking/ESP8266WiFi/WifiFirmwareUploader.h
@@ -17,7 +17,7 @@ class WifiFirmwareUploader
public:
WifiFirmwareUploader(UARTClass& port, WiFiInterface &iface) noexcept;
bool IsReady() const noexcept;
- void SendUpdateFile(const char *file, const char *dir, uint32_t address) noexcept;
+ void SendUpdateFile(const char *file, uint32_t address) noexcept;
void Spin() noexcept;
static const uint32_t FirmwareAddress = 0x00000000;
diff --git a/src/Platform/RepRap.cpp b/src/Platform/RepRap.cpp
index 55b6d239..091a4322 100644
--- a/src/Platform/RepRap.cpp
+++ b/src/Platform/RepRap.cpp
@@ -2744,7 +2744,7 @@ bool RepRap::CheckFirmwareUpdatePrerequisites(const StringRef& reply, const Stri
return false;
}
- if (!platform->FileExists(FIRMWARE_DIRECTORY, IAP_UPDATE_FILE))
+ if (!platform->FileExists(FIRMWARE_DIRECTORY, IAP_UPDATE_FILE) && !platform->FileExists(DEFAULT_SYS_DIR, IAP_UPDATE_FILE))
{
reply.printf("In-application programming binary \"%s\" not found", FIRMWARE_DIRECTORY IAP_UPDATE_FILE);
return false;
@@ -2758,14 +2758,18 @@ bool RepRap::CheckFirmwareUpdatePrerequisites(const StringRef& reply, const Stri
void RepRap::UpdateFirmware(const StringRef& filenameRef) noexcept
{
#if HAS_MASS_STORAGE
- FileStore * const iapFile = platform->OpenFile(FIRMWARE_DIRECTORY, IAP_UPDATE_FILE, OpenMode::read);
+ FileStore * iapFile = platform->OpenFile(FIRMWARE_DIRECTORY, IAP_UPDATE_FILE, OpenMode::read);
if (iapFile == nullptr)
{
- platform->Message(FirmwareUpdateMessage, "IAP file '" FIRMWARE_DIRECTORY IAP_UPDATE_FILE "' not found\n");
- return;
+ iapFile = platform->OpenFile(DEFAULT_SYS_DIR, IAP_UPDATE_FILE, OpenMode::read);
+ if (iapFile == nullptr)
+ {
+ // This should not happen because we already checked that the file exists, so use a simplified error message
+ platform->Message(FirmwareUpdateMessage, "Missing IAP");
+ return;
+ }
}
-
PrepareToLoadIap();
// Use RAM-based IAP