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>2018-12-24 16:25:20 +0300
committerDavid Crocker <dcrocker@eschertech.com>2018-12-24 16:25:20 +0300
commitc4a62480eb4e4b9acfe967a09142326345628b1d (patch)
treed6ea8d40a5e27fd611cbc14294cd3da3ac3229f7
parentdc455f5361d905b1bf70f01c075e849cdbf18cf5 (diff)
2.02 release2.02
Fixes for Duet 06/085 build
-rw-r--r--.cproject28
-rw-r--r--src/BugList.txt6
-rw-r--r--src/Duet/MCP4461/MCP4461.cpp8
-rw-r--r--src/Duet/Webserver.cpp75
-rw-r--r--src/Networking/HttpResponder.cpp12
-rw-r--r--src/Platform.h2
-rw-r--r--src/Version.h6
7 files changed, 76 insertions, 61 deletions
diff --git a/.cproject b/.cproject
index 744af8f1..4d952da2 100644
--- a/.cproject
+++ b/.cproject
@@ -20,13 +20,13 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850" name="Duet085" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating binary file" postbuildStep="arm-none-eabi-objcopy -O binary ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.elf ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.bin">
+ <configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850" name="Duet085" optionalBuildProperties="" parent="cdt.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating binary file" postbuildStep="arm-none-eabi-objcopy -O binary ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.elf ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.bin">
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.release.947353540" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.release">
<option id="cdt.managedbuild.option.gnu.cross.path.1742191832" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" useByScannerDiscovery="false" value="${GccPath}" valueType="string"/>
<option id="cdt.managedbuild.option.gnu.cross.prefix.1660769040" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix" useByScannerDiscovery="false" value="arm-none-eabi-" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.223860525" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
- <builder buildPath="${workspace_loc:/RepRapFirmware}/Release" id="cdt.managedbuild.builder.gnu.cross.13059261" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.builder.gnu.cross"/>
+ <builder buildPath="${workspace_loc:/RepRapFirmware}/Duet085" id="cdt.managedbuild.builder.gnu.cross.1509050538" keepEnvironmentInBuildfile="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.builder.gnu.cross"/>
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.163742171" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.230262206" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
@@ -138,7 +138,7 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="elf" artifactName="${ProjName}-RADDS" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850.1027429289" name="RADDS_RTOS" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=" parent="cdt.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating binary file" postbuildStep="arm-none-eabi-objcopy -O binary ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.elf ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.bin">
+ <configuration artifactExtension="elf" artifactName="${ProjName}-RADDS" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850.1027429289" name="RADDS_RTOS" parent="cdt.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating binary file" postbuildStep="arm-none-eabi-objcopy -O binary ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.elf ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.bin">
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850.1027429289." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.release.1973208555" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.release">
<option id="cdt.managedbuild.option.gnu.cross.path.2092504710" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" useByScannerDiscovery="false" value="${GccPath}" valueType="string"/>
@@ -249,11 +249,11 @@
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
@@ -263,7 +263,7 @@
<option id="cdt.managedbuild.option.gnu.cross.path.645044151" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" useByScannerDiscovery="false" value="${GccPath}" valueType="string"/>
<option id="cdt.managedbuild.option.gnu.cross.prefix.629438941" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix" useByScannerDiscovery="false" value="arm-none-eabi-" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.878309876" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
- <builder buildPath="${workspace_loc:/RepRapFirmware}/Release" id="cdt.managedbuild.builder.gnu.cross.56178753" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.builder.gnu.cross"/>
+ <builder buildPath="${workspace_loc:/RepRapFirmware}/Alligator" id="cdt.managedbuild.builder.gnu.cross.1518897616" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.builder.gnu.cross"/>
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.384615201" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1769413014" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
@@ -318,7 +318,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.1431609218" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.more" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.1167774913" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.other.verbose.68487747" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.1532821901" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="false" value="-c -std=gnu++17 -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fno-exceptions -nostdlib -Wdouble-promotion -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot;" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1532821901" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="false" value="-c -std=gnu++17 -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fno-exceptions -nostdlib -Wdouble-promotion -fsingle-precision-constant -Wa,-ahl=&quot;$*.s&quot;" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1825159078" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${CoreName}/cores/arduino}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${CoreName}/libraries/Flash}&quot;"/>
@@ -381,7 +381,7 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="elf" artifactName="Duet2CombinedFirmware" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850.241502451.170574622" name="Duet2_RTOS" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating binary file" postbuildStep="arm-none-eabi-objcopy -O binary ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.elf ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.bin">
+ <configuration artifactExtension="elf" artifactName="Duet2CombinedFirmware" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850.241502451.170574622" name="Duet2_RTOS" parent="cdt.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating binary file" postbuildStep="arm-none-eabi-objcopy -O binary ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.elf ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.bin">
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850.241502451.170574622." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.release.435431950" name="Cross GCC" nonInternalBuilderId="cdt.managedbuild.builder.gnu.cross" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.release">
<option id="cdt.managedbuild.option.gnu.cross.path.1881231799" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" useByScannerDiscovery="false" value="${GccPath}" valueType="string"/>
@@ -1150,7 +1150,7 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850.1168118439" name="Duet085_RTOS" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating binary file" postbuildStep="arm-none-eabi-objcopy -O binary ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.elf ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.bin">
+ <configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850.1168118439" name="Duet085_RTOS" optionalBuildProperties="" parent="cdt.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating binary file" postbuildStep="arm-none-eabi-objcopy -O binary ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.elf ${workspace_loc:/${ProjName}/${ConfigName}}/${BuildArtifactFileBaseName}.bin">
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.release.516195201.976458850.1168118439." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.release.734437241" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.release">
<option id="cdt.managedbuild.option.gnu.cross.path.546334814" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" useByScannerDiscovery="false" value="${GccPath}" valueType="string"/>
@@ -1190,7 +1190,7 @@
</tool>
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.1773357270" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.1736790466" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
- <tool command="gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${LinkFlags1} &quot;${workspace_loc}/${CoreName}/SAM3X8E/cores/arduino/syscalls.o&quot; ${INPUTS} ${LinkFlags2}" id="cdt.managedbuild.tool.gnu.cross.cpp.linker.1544286968" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
+ <tool command="gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${LinkFlags1} &quot;${workspace_loc}/${CoreName}/SAM3X8E_RTOS/cores/arduino/syscalls.o&quot; ${INPUTS} ${LinkFlags2}" id="cdt.managedbuild.tool.gnu.cross.cpp.linker.1544286968" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
<option id="gnu.cpp.link.option.nostdlibs.808535222" name="No startup or default libs (-nostdlib)" superClass="gnu.cpp.link.option.nostdlibs" useByScannerDiscovery="false" value="false" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.link.option.paths.1574037015" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" useByScannerDiscovery="false" valueType="libPaths">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${CoreName}/SAM3X8E_RTOS/}&quot;"/>
@@ -1261,18 +1261,20 @@
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="refreshScope" versionNumber="2">
+ <configuration configurationName="RADDS_RTOS"/>
<configuration configurationName="DuetM_RTOS"/>
- <configuration configurationName="Alligator"/>
+ <configuration configurationName="Duet085_RTOS"/>
<configuration configurationName="SAME70"/>
<configuration configurationName="RADDS"/>
- <configuration configurationName="Duet2_RTOS"/>
<configuration configurationName="Duet2"/>
<configuration configurationName="Duet3"/>
+ <configuration configurationName="SAME70XPLD"/>
+ <configuration configurationName="Alligator"/>
+ <configuration configurationName="Duet2_RTOS"/>
<configuration configurationName="PCCB"/>
<configuration configurationName="DuetM"/>
<configuration configurationName="PCCB_X5"/>
<configuration configurationName="Duet085"/>
- <configuration configurationName="SAME70XPLD"/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
diff --git a/src/BugList.txt b/src/BugList.txt
index 7c658d2c..b158730d 100644
--- a/src/BugList.txt
+++ b/src/BugList.txt
@@ -225,11 +225,11 @@ Done in 2.02RC7:
- [done, ok] Support Fanuc-style G2/G3 whole circle moves
- [done, ok] Add SD card write timing
-Todo before 2.02 release:
+Done in 2.02 release:
- [done] Step clock on Duet Maestro going backwards, https://forum.duet3d.com/topic/8264/steptimer-getinterruptclocks-isn-t-incrementing
-- Investigate Duet Maestro socket behaviour when cable disconnected, see email from chris
+- [can't reproduce] Investigate Duet Maestro socket behaviour when cable disconnected, see email from chris
-2.03:
+2.03 planned:
- Object model
- Conditionals, loops and maths in GCode commands
- S-curve acceleration
diff --git a/src/Duet/MCP4461/MCP4461.cpp b/src/Duet/MCP4461/MCP4461.cpp
index 6e742daf..1c4e6f04 100644
--- a/src/Duet/MCP4461/MCP4461.cpp
+++ b/src/Duet/MCP4461/MCP4461.cpp
@@ -68,7 +68,9 @@ void MCP4461::setVolatileWiper(uint8_t wiper, uint16_t wiper_value)
uint8_t i2cBytes[2] = { c_byte, d_byte };
MutexLocker lock(Tasks::GetI2CMutex());
- MCP_WIRE.Transfer(_mcp4461_address, i2cBytes, 2, 0, nullptr);
+ MCP_WIRE.Transfer(_mcp4461_address, i2cBytes, 2, 0);
+
+ delayMicroseconds(5); // bus needs to be free for 4.7us before the next command
}
void MCP4461::setNonVolatileWiper(uint8_t wiper, uint16_t wiper_value)
@@ -101,7 +103,9 @@ void MCP4461::setNonVolatileWiper(uint8_t wiper, uint16_t wiper_value)
uint8_t i2cBytes[2] = { c_byte, d_byte };
MutexLocker lock(Tasks::GetI2CMutex());
- MCP_WIRE.Transfer(_mcp4461_address, i2cBytes, 2, 0, nullptr);
+ MCP_WIRE.Transfer(_mcp4461_address, i2cBytes, 2, 0);
+
+ delay(20); // writing to nonvolatile memory takes up to 10ms to complete
}
// End
diff --git a/src/Duet/Webserver.cpp b/src/Duet/Webserver.cpp
index 07df853f..4585eea2 100644
--- a/src/Duet/Webserver.cpp
+++ b/src/Duet/Webserver.cpp
@@ -619,29 +619,48 @@ void Webserver::HttpInterpreter::SendFile(const char* nameOfFileToSend, bool isW
if (nameOfFileToSend[0] == '/')
{
++nameOfFileToSend; // all web files are relative to the /www folder, so remove the leading '/'
- if (nameOfFileToSend[0] == 0)
- {
- nameOfFileToSend = INDEX_PAGE_FILE;
- }
}
- // Try to open a gzipped version of the file first
- if (!StringEndsWithIgnoreCase(nameOfFileToSend, ".gz") && strlen(nameOfFileToSend) + 3 <= MaxFilenameLength)
+ if (nameOfFileToSend[0] == 0)
{
- char nameBuf[MaxFilenameLength + 1];
- strcpy(nameBuf, nameOfFileToSend);
- strcat(nameBuf, ".gz");
- fileToSend = platform->OpenFile(platform->GetWebDir(), nameBuf, OpenMode::read);
- if (fileToSend != nullptr)
- {
- zip = true;
- }
+ nameOfFileToSend = INDEX_PAGE_FILE;
}
- // If that failed, try to open the normal version of the file
- if (fileToSend == nullptr)
+ for (;;)
{
+ // Try to open a gzipped version of the file first
+ if (!StringEndsWithIgnoreCase(nameOfFileToSend, ".gz") && strlen(nameOfFileToSend) + 3 <= MaxFilenameLength)
+ {
+ char nameBuf[MaxFilenameLength + 1];
+ strcpy(nameBuf, nameOfFileToSend);
+ strcat(nameBuf, ".gz");
+ fileToSend = platform->OpenFile(platform->GetWebDir(), nameBuf, OpenMode::read);
+ if (fileToSend != nullptr)
+ {
+ zip = true;
+ break;
+ }
+ }
+
+ // That failed, try to open the normal version of the file
fileToSend = platform->OpenFile(platform->GetWebDir(), nameOfFileToSend, OpenMode::read);
+ if (fileToSend != nullptr)
+ {
+ break;
+ }
+
+ if (StringEqualsIgnoreCase(nameOfFileToSend, INDEX_PAGE_FILE))
+ {
+ nameOfFileToSend = OLD_INDEX_PAGE_FILE; // the index file wasn't found, so try the old one
+ }
+ else if (!strchr(nameOfFileToSend, '.')) // if we were asked to return a file without a '.' in the name, return the index page
+ {
+ nameOfFileToSend = INDEX_PAGE_FILE;
+ }
+ else
+ {
+ break;
+ }
}
// If we still couldn't find the file and it was an HTML file, return the 404 error page
@@ -650,25 +669,19 @@ void Webserver::HttpInterpreter::SendFile(const char* nameOfFileToSend, bool isW
nameOfFileToSend = FOUR04_PAGE_FILE;
fileToSend = platform->OpenFile(platform->GetWebDir(), nameOfFileToSend, OpenMode::read);
}
-
- if (fileToSend == nullptr)
- {
- RejectMessage("not found", 404);
- return;
- }
- transaction->SetFileToWrite(fileToSend);
}
else
{
fileToSend = platform->OpenFile(FS_PREFIX, nameOfFileToSend, OpenMode::read);
- if (fileToSend == nullptr)
- {
- RejectMessage("not found", 404);
- return;
- }
- transaction->SetFileToWrite(fileToSend);
}
+ if (fileToSend == nullptr)
+ {
+ RejectMessage("not found", 404);
+ return;
+ }
+
+ transaction->SetFileToWrite(fileToSend);
transaction->Write("HTTP/1.1 200 OK\r\n");
// Don't cache files served by rr_download
@@ -716,12 +729,12 @@ void Webserver::HttpInterpreter::SendFile(const char* nameOfFileToSend, bool isW
}
transaction->Printf("Content-Type: %s\r\n", contentType);
- if (zip && fileToSend != nullptr)
+ if (zip)
{
transaction->Write("Content-Encoding: gzip\r\n");
- transaction->Printf("Content-Length: %lu\r\n", fileToSend->Length());
}
+ transaction->Printf("Content-Length: %lu\r\n", fileToSend->Length());
transaction->Write("Connection: close\r\n\r\n");
transaction->Commit(false);
}
diff --git a/src/Networking/HttpResponder.cpp b/src/Networking/HttpResponder.cpp
index 1a81756e..8a859ca8 100644
--- a/src/Networking/HttpResponder.cpp
+++ b/src/Networking/HttpResponder.cpp
@@ -779,7 +779,6 @@ void HttpResponder::SendFile(const char* nameOfFileToSend, bool isWebFile)
RejectMessage("page not found<br>Check that the SD card is mounted and has the correct files in its /www folder", 404);
return;
}
- fileBeingSent = fileToSend;
}
else
{
@@ -789,9 +788,9 @@ void HttpResponder::SendFile(const char* nameOfFileToSend, bool isWebFile)
RejectMessage("file not found", 404);
return;
}
- fileBeingSent = fileToSend;
}
+ fileBeingSent = fileToSend;
outBuf->copy("HTTP/1.1 200 OK\r\n");
// Don't cache files served by rr_download
@@ -840,15 +839,12 @@ void HttpResponder::SendFile(const char* nameOfFileToSend, bool isWebFile)
}
outBuf->catf("Content-Type: %s\r\n", contentType);
- if (fileToSend != nullptr)
+ if (zip)
{
- if (zip)
- {
- outBuf->cat("Content-Encoding: gzip\r\n");
- }
- outBuf->catf("Content-Length: %lu\r\n", fileToSend->Length());
+ outBuf->cat("Content-Encoding: gzip\r\n");
}
+ outBuf->catf("Content-Length: %lu\r\n", fileToSend->Length());
outBuf->cat("Connection: close\r\n\r\n");
Commit();
}
diff --git a/src/Platform.h b/src/Platform.h
index d94289b9..93076d62 100644
--- a/src/Platform.h
+++ b/src/Platform.h
@@ -760,7 +760,7 @@ private:
// Digipots
MCP4461 mcpDuet;
MCP4461 mcpExpansion;
- Pin potWipes[8]; // we have only 8 digipots, on the Duet 0.8.5 we use the DAC for the 9th
+ uint8_t potWipes[8]; // we have only 8 digipots, on the Duet 0.8.5 we use the DAC for the 9th
float senseResistor;
float maxStepperDigipotVoltage;
float stepperDacVoltageRange, stepperDacVoltageOffset;
diff --git a/src/Version.h b/src/Version.h
index 43e34b18..4f682e7f 100644
--- a/src/Version.h
+++ b/src/Version.h
@@ -12,9 +12,9 @@
#ifndef VERSION
#ifdef RTOS
# define RTOSVER "(RTOS)"
-# define MAIN_VERSION "2.02RC7+"
+# define MAIN_VERSION "2.02"
#else
-# define MAIN_VERSION "1.22"
+# define MAIN_VERSION "1.23"
# define RTOSVER
#endif
@@ -22,7 +22,7 @@
#endif
#ifndef DATE
-# define DATE "2018-12-23b2"
+# define DATE "2018-12-24b1"
#endif
#define AUTHORS "reprappro, dc42, chrishamm, t3p3, dnewman, printm3d"