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:
-rw-r--r--.cproject20
-rw-r--r--src/CAN/CanInterface.cpp40
-rw-r--r--src/CAN/CanInterface.h3
-rw-r--r--src/CAN/CanMotion.cpp10
-rw-r--r--src/Comms/PanelDueUpdater.cpp28
-rw-r--r--src/Fans/LocalFan.h2
-rw-r--r--src/GCodes/GCodeBuffer/StringParser.cpp16
-rw-r--r--src/GCodes/GCodeBuffer/StringParser.h2
-rw-r--r--src/GCodes/GCodes2.cpp2
-rw-r--r--src/GCodes/GCodes3.cpp28
-rw-r--r--src/Heating/RemoteHeater.cpp9
-rw-r--r--src/Movement/DDA.cpp2
-rw-r--r--src/Movement/DDA.h10
-rw-r--r--src/Movement/DDARing.cpp7
-rw-r--r--src/Movement/Kinematics/FiveBarScaraKinematics.h4
-rw-r--r--src/Networking/ESP8266WiFi/WiFiSocket.h25
-rw-r--r--src/Networking/W5500Ethernet/W5500Interface.h2
-rw-r--r--src/Platform/TaskPriorities.h4
-rw-r--r--src/PrintMonitor/PrintMonitor.cpp8
-rw-r--r--src/PrintMonitor/PrintMonitor.h1
-rw-r--r--src/bossa/EefcFlash.h20
21 files changed, 155 insertions, 88 deletions
diff --git a/.cproject b/.cproject
index 72cd1216..6a390cdc 100644
--- a/.cproject
+++ b/.cproject
@@ -87,7 +87,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.1835678360" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.size" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.737051102" 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.1225557122" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.1423466590" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1423466590" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1505018967" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G/src}&quot;"/>
@@ -233,7 +233,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.1017091230" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.size" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.326047343" 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.1316817271" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.434744183" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.434744183" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1102345734" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G/src}&quot;"/>
@@ -380,7 +380,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.1342318357" 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.299293344" 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.913195266" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.731452074" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.731452074" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1319376517" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G/src}&quot;"/>
@@ -532,7 +532,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.853356157" 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.1666050145" 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.513668348" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.1799333383" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -mno-unaligned-access -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1799333383" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -mno-unaligned-access -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1493725201" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G/src}&quot;"/>
@@ -692,7 +692,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.1733994699" 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.977407101" 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.300036040" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.1461332896" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1461332896" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.842937172" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G/src}&quot;"/>
@@ -850,7 +850,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.2036964129" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.size" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.734389459" 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.516508660" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.2058032643" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.2058032643" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.2008633041" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G/src}&quot;"/>
@@ -995,7 +995,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.787596539" 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.1654001240" 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.434057491" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.1892624010" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage -fdump-rtl-expand" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1892624010" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage -fdump-rtl-expand" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.828643136" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/FreeRTOS/src/include}&quot;"/>
@@ -1149,7 +1149,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.118452777" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.optimize" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.1370417201" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.other.verbose.313278382" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.1951413447" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1951413447" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1562950186" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/RRFLibraries}&quot;"/>
@@ -1307,7 +1307,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.2132731079" 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.165649260" 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.418237960" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.191622413" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.191622413" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1076828318" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/FreeRTOS/src/include}&quot;"/>
@@ -1476,7 +1476,7 @@
<option id="gnu.cpp.compiler.option.optimization.level.1984091712" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.size" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.1089618663" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.other.verbose.2120996990" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="gnu.cpp.compiler.option.other.other.1858600173" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -mno-unaligned-access -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1858600173" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="true" value="-c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -mno-unaligned-access -ffunction-sections -fdata-sections -fno-threadsafe-statics -fno-rtti -fexceptions -nostdlib -Wundef -Wdouble-promotion -Werror=return-type -Wsuggest-override -fsingle-precision-constant &quot;-Wa,-ahl=$*.s&quot; -fstack-usage" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1843583751" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CoreN2G/src}&quot;"/>
diff --git a/src/CAN/CanInterface.cpp b/src/CAN/CanInterface.cpp
index f61e6ec5..e95cba95 100644
--- a/src/CAN/CanInterface.cpp
+++ b/src/CAN/CanInterface.cpp
@@ -179,8 +179,12 @@ static Task<CanReceiverTaskStackWords> canReceiverTask;
constexpr size_t CanClockTaskStackWords = 400; // used to be 300 but RD had a stack overflow
static Task<CanSenderTaskStackWords> canClockTask;
-static CanMessageBuffer * volatile pendingBuffers;
-static CanMessageBuffer * volatile lastBuffer; // only valid when pendingBuffers != nullptr
+static CanMessageBuffer * volatile pendingMotionBuffers = nullptr;
+static CanMessageBuffer * volatile lastMotionBuffer; // only valid when pendingBuffers != nullptr
+
+#if 0 //unused
+static unsigned int numPendingMotionBuffers = 0;
+#endif
extern "C" [[noreturn]] void CanSenderLoop(void *) noexcept;
extern "C" [[noreturn]] void CanClockLoop(void *) noexcept;
@@ -239,7 +243,7 @@ void TxCallback(uint8_t marker, CanId id, uint16_t timeStamp) noexcept
void CanInterface::Init() noexcept
{
CanMessageBuffer::Init(NumCanBuffers);
- pendingBuffers = nullptr;
+ pendingMotionBuffers = nullptr;
transactionMutex.Create("CanTrans");
@@ -377,13 +381,16 @@ extern "C" [[noreturn]] void CanSenderLoop(void *) noexcept
{
can0dev->SendMessage(TxBufferIndexUrgent, MaxUrgentSendWait, urgentMessage);
}
- else if (pendingBuffers != nullptr)
+ else if (pendingMotionBuffers != nullptr)
{
CanMessageBuffer *buf;
{
TaskCriticalSectionLocker lock;
- buf = pendingBuffers;
- pendingBuffers = buf->next;
+ buf = pendingMotionBuffers;
+ pendingMotionBuffers = buf->next;
+#if 0 //unused
+ --numPendingMotionBuffers;
+#endif
}
// Send the message
@@ -625,20 +632,33 @@ void CanInterface::SendMotion(CanMessageBuffer *buf) noexcept
{
TaskCriticalSectionLocker lock;
- if (pendingBuffers == nullptr)
+ if (pendingMotionBuffers == nullptr)
{
- pendingBuffers = buf;
+ pendingMotionBuffers = buf;
}
else
{
- lastBuffer->next = buf;
+ lastMotionBuffer->next = buf;
}
- lastBuffer = buf;
+ lastMotionBuffer = buf;
+#if 0 //unused
+ ++numPendingMotionBuffers;
+#endif
}
canSenderTask.Give();
}
+#if 0 // not currently used
+
+// Get the number of motion messages waiting to be sent through the Tx fifo
+unsigned int CanInterface::GetNumPendingMotionMessages() noexcept
+{
+ return can0dev->NumTxMessagesPending(TxBufferIndexMotion) + numPendingMotionBuffers;
+}
+
+#endif
+
// Send a request to an expansion board and append the response to 'reply'
GCodeResult CanInterface::SendRequestAndGetStandardReply(CanMessageBuffer *buf, CanRequestId rid, const StringRef& reply, uint8_t *extra) noexcept
{
diff --git a/src/CAN/CanInterface.h b/src/CAN/CanInterface.h
index 444a0e39..9293ad09 100644
--- a/src/CAN/CanInterface.h
+++ b/src/CAN/CanInterface.h
@@ -111,6 +111,9 @@ namespace CanInterface
GCodeResult SetRemoteDriverStepsPerMmAndMicrostepping(const CanDriversData<StepsPerUnitAndMicrostepping>& data, const StringRef& reply) noexcept;
GCodeResult ConfigureRemoteDriver(DriverId driver, GCodeBuffer& gb, const StringRef& reply) THROWS(GCodeException);
GCodeResult GetSetRemoteDriverStallParameters(const CanDriversList& drivers, GCodeBuffer& gb, const StringRef& reply, OutputBuffer *& buf) THROWS(GCodeException);
+#if 0 // not currently used
+ unsigned int GetNumPendingMotionMessages() noexcept;
+#endif
void WakeAsyncSenderFromIsr() noexcept;
// Remote handle functions
diff --git a/src/CAN/CanMotion.cpp b/src/CAN/CanMotion.cpp
index 78927c6d..8ba75919 100644
--- a/src/CAN/CanMotion.cpp
+++ b/src/CAN/CanMotion.cpp
@@ -17,6 +17,10 @@ static CanMessageBuffer *movementBufferList = nullptr;
static CanMessageBuffer *urgentMessageBuffer = nullptr;
static uint32_t currentMoveClocks;
+#if 0
+static unsigned int numMotionMessagesSentLast = 0;
+#endif
+
static volatile uint32_t hiccupToInsert = 0;
static CanDriversList driversToStop[2];
static size_t driversToStopIndexBeingFilled = 0;
@@ -144,6 +148,9 @@ uint32_t CanMotion::FinishMovement(uint32_t moveStartTime) noexcept
return 0;
}
+#if 0
+ numMotionMessagesSentLast = 0;
+#endif
do
{
boardsActiveInLastMove.SetBit(buf->id.Dst()); //TODO should we set this if there were no steps for drives on the board, just drives to be enabled?
@@ -154,6 +161,9 @@ uint32_t CanMotion::FinishMovement(uint32_t moveStartTime) noexcept
buf->dataLength = buf->msg.moveLinear.GetActualDataLength();
CanMessageBuffer * const nextBuffer = buf->next; // must get this before sending the buffer, because sending the buffer releases it
CanInterface::SendMotion(buf); // queues the buffer for sending and frees it when done
+#if 0
+ ++numMotionMessagesSentLast;
+#endif
buf = nextBuffer;
} while (buf != nullptr);
diff --git a/src/Comms/PanelDueUpdater.cpp b/src/Comms/PanelDueUpdater.cpp
index 9b0da7a0..78261eb7 100644
--- a/src/Comms/PanelDueUpdater.cpp
+++ b/src/Comms/PanelDueUpdater.cpp
@@ -21,20 +21,20 @@ public:
bool open(int baud = 115200,
int data = 8,
SerialPort::Parity parity = SerialPort::ParityNone,
- SerialPort::StopBit stop = SerialPort::StopBitOne) noexcept { return true; }
- void close() noexcept {}
+ SerialPort::StopBit stop = SerialPort::StopBitOne) noexcept override { return true; }
+ void close() noexcept override {}
- bool isUsb() noexcept { return false; }
+ bool isUsb() noexcept override { return false; }
- int read(uint8_t* data, int size) noexcept;
- int write(const uint8_t* data, int size) noexcept { return this->uart.write(data, size); }
- int get() noexcept;
- int put(int c) noexcept { return this->uart.write(c); }
+ int read(uint8_t* data, int size) noexcept override;
+ int write(const uint8_t* data, int size) noexcept override { return this->uart.write(data, size); }
+ int get() noexcept override;
+ int put(int c) noexcept override { return this->uart.write(c); }
- bool timeout(int millisecs) noexcept { _timeout = millisecs; return true; }
- void flush() noexcept { this->uart.flush(); }
- void setDTR(bool dtr) noexcept {}
- void setRTS(bool rts) noexcept {}
+ bool timeout(int millisecs) noexcept override { _timeout = millisecs; return true; }
+ void flush() noexcept override { this->uart.flush(); }
+ void setDTR(bool dtr) noexcept override {}
+ void setRTS(bool rts) noexcept override {}
private:
UARTClass& uart;
int _timeout;
@@ -71,9 +71,9 @@ public:
DebugObserver() noexcept : lastPercentage(0) {}
virtual ~DebugObserver() {}
- virtual void onStatus(const char *message, ...) noexcept;
- virtual void onProgress(int num, int div) noexcept;
- virtual void Reset() noexcept { lastPercentage = 0; };
+ void onStatus(const char *message, ...) noexcept override;
+ void onProgress(int num, int div) noexcept override;
+ void Reset() noexcept override { lastPercentage = 0; };
private:
uint8_t lastPercentage;
};
diff --git a/src/Fans/LocalFan.h b/src/Fans/LocalFan.h
index 469053a7..7178833f 100644
--- a/src/Fans/LocalFan.h
+++ b/src/Fans/LocalFan.h
@@ -46,7 +46,7 @@ private:
float lastVal; // the last PWM value we sent to the fan, not allowing for blipping, or -1 if we don't know it
// Variables used to read the tacho
- static constexpr uint32_t fanMaxInterruptCount = 32; // number of fan interrupts that we average over
+ static constexpr uint32_t fanMaxInterruptCount = 16; // number of fan interrupts that we average over. We time out after 3 seconds, so a count of 16 allows us to read rpm down to (16/3) * (60/2) = 160.
uint32_t fanInterruptCount; // accessed only in ISR, so no need to declare it volatile
volatile uint32_t fanLastResetTime; // time (in step clocks) at which we last reset the interrupt count, accessed inside and outside ISR
volatile uint32_t fanInterval; // written by ISR, read outside the ISR
diff --git a/src/GCodes/GCodeBuffer/StringParser.cpp b/src/GCodes/GCodeBuffer/StringParser.cpp
index abf822e5..8b4df0f0 100644
--- a/src/GCodes/GCodeBuffer/StringParser.cpp
+++ b/src/GCodes/GCodeBuffer/StringParser.cpp
@@ -266,7 +266,7 @@ bool StringParser::Put(char c) noexcept
// This is called when we are fed a null, CR or LF character.
// Return true if there is a completed command ready to be executed.
-bool StringParser::LineFinished()
+bool StringParser::LineFinished() noexcept
{
if (hadLineNumber)
{
@@ -1486,9 +1486,21 @@ void StringParser::PrintCommand(const StringRef& s) const noexcept
}
// Append the full command content to a string
+// This is called when we report a "Bad command" error, so make sure we display any control characters.
void StringParser::AppendFullCommand(const StringRef &s) const noexcept
{
- s.cat(gb.buffer);
+ for (size_t i = commandStart; i < commandEnd; ++i)
+ {
+ const char c = gb.buffer[i];
+ if (c < 0x20)
+ {
+ s.catf("[0x%02x]", (unsigned int)c);
+ }
+ else
+ {
+ s.cat(c);
+ }
+ }
}
// Called when we start a new file
diff --git a/src/GCodes/GCodeBuffer/StringParser.h b/src/GCodes/GCodeBuffer/StringParser.h
index a4b828fe..3e7c515b 100644
--- a/src/GCodes/GCodeBuffer/StringParser.h
+++ b/src/GCodes/GCodeBuffer/StringParser.h
@@ -92,7 +92,7 @@ private:
void AddToChecksum(char c) noexcept;
void StoreAndAddToChecksum(char c) noexcept;
- bool LineFinished() THROWS(GCodeException); // Deal with receiving end-of-line and return true if we have a command
+ bool LineFinished() noexcept; // Deal with receiving end-of-line and return true if we have a command
void InternalGetQuotedString(const StringRef& str) THROWS(GCodeException)
pre (readPointer >= 0; gb.buffer[readPointer] == '"'; str.IsEmpty());
void InternalGetPossiblyQuotedString(const StringRef& str) THROWS(GCodeException)
diff --git a/src/GCodes/GCodes2.cpp b/src/GCodes/GCodes2.cpp
index cc5940d6..0e0d5f70 100644
--- a/src/GCodes/GCodes2.cpp
+++ b/src/GCodes/GCodes2.cpp
@@ -4622,7 +4622,7 @@ bool GCodes::HandleTcode(GCodeBuffer& gb, const StringRef& reply)
if (seen)
{
- if (!LockMovementAndWaitForStandstill(gb))
+ if (!LockMovementAndWaitForStandstill(gb) || !IsCodeQueueIdle())
{
return false;
}
diff --git a/src/GCodes/GCodes3.cpp b/src/GCodes/GCodes3.cpp
index ed140fb7..b48ae06b 100644
--- a/src/GCodes/GCodes3.cpp
+++ b/src/GCodes/GCodes3.cpp
@@ -38,9 +38,11 @@
#endif
#ifdef I2C_IFACE
-# include "Wire.h"
+# include <Wire.h>
#endif
+#include <cctype>
+
// Deal with G60
GCodeResult GCodes::SavePosition(GCodeBuffer& gb, const StringRef& reply) THROWS(GCodeException)
{
@@ -1650,29 +1652,29 @@ bool GCodes::ProcessWholeLineComment(GCodeBuffer& gb, const StringRef& reply) TH
"BEGIN_LAYER_OBJECT z=", // KISSlicer (followed by Z height)
"HEIGHT", // Ideamaker
"PRINTING", // Ideamaker
- "REMAINING_TIME" // Ideamaker
+ "REMAINING_TIME", // Ideamaker
+ "LAYER_CHANGE" // SuperSlicer
};
String<StringLength100> comment;
gb.GetCompleteParameters(comment.GetRef());
- const char *text = comment.c_str();
- while (*text == ' ')
+ const char *fullText = comment.c_str();
+ while (*fullText == ' ')
{
- ++text;
+ ++fullText;
}
for (size_t i = 0; i < ARRAY_SIZE(StartStrings); ++i)
{
- if (StringStartsWith(text, StartStrings[i]))
+ if (StringStartsWith(fullText, StartStrings[i]))
{
- text += strlen(StartStrings[i]);
- if (*text == ' ' || *text == ':') // need this test to avoid recognising "processName" as "process"
+ const char *text = fullText + strlen(StartStrings[i]);
+ if (!isalpha(*text) && *text != '_') // need this test to avoid recognising "processName" as "process"
{
- do
+ while (*text == ' ' || *text == ':')
{
++text;
}
- while (*text == ' ' || *text == ':');
switch (i)
{
@@ -1717,7 +1719,7 @@ bool GCodes::ProcessWholeLineComment(GCodeBuffer& gb, const StringRef& reply) TH
case 4: // layer (counting from 1)
case 5: // layer (counting from 0)
- case 6: // later (counting from 0)
+ case 6: // layer (counting from 0)
{
const char *endptr;
const int32_t layer = StrToI32(text, &endptr); // IdeaMaker uses negative layer numbers for the raft, so read a signed number here
@@ -1756,6 +1758,10 @@ bool GCodes::ProcessWholeLineComment(GCodeBuffer& gb, const StringRef& reply) TH
}
}
break;
+
+ case 11: // LAYER_CHANGE (SuperSlicer). No layer number provided.
+ reprap.GetPrintMonitor().LayerChange();
+ break;
}
break;
}
diff --git a/src/Heating/RemoteHeater.cpp b/src/Heating/RemoteHeater.cpp
index e4cf368d..8bdfe5f3 100644
--- a/src/Heating/RemoteHeater.cpp
+++ b/src/Heating/RemoteHeater.cpp
@@ -385,7 +385,14 @@ GCodeResult RemoteHeater::SwitchOn(const StringRef& reply) noexcept
msg->heaterNumber = GetHeaterNumber();
msg->setPoint = GetTargetTemperature();
msg->command = CanMessageSetHeaterTemperature::commandOn;
- return CanInterface::SendRequestAndGetStandardReply(buf, rid, reply);
+ const GCodeResult rslt = CanInterface::SendRequestAndGetStandardReply(buf, rid, reply);
+ if (lastMode == HeaterMode::off && rslt <= GCodeResult::warning)
+ {
+ // If the heater was previously off then we need to change lastMode, otherwise if M116 is executed before we get an update from the expansion board
+ // then it will treat the heater as inactive and not wait for it to reach temperature
+ lastMode = HeaterMode::heating;
+ }
+ return rslt;
}
// This is called when the heater model has been updated
diff --git a/src/Movement/DDA.cpp b/src/Movement/DDA.cpp
index a0373d0f..e6b91c6b 100644
--- a/src/Movement/DDA.cpp
+++ b/src/Movement/DDA.cpp
@@ -1447,7 +1447,7 @@ void DDA::Prepare(uint8_t simMode) noexcept
const DDAState st = prev->state;
afterPrepare.moveStartTime = (st == DDAState::executing || st == DDAState::frozen)
? prev->afterPrepare.moveStartTime + prev->clocksNeeded // this move will follow the previous one, so calculate the start time assuming no more hiccups
- : StepTimer::GetTimerTicks() + MovementStartDelayClocks; // else this move is the first so start it after a short delay
+ : StepTimer::GetTimerTicks() + AbsoluteMinimumPreparedTime; // else this move is the first so start it after a short delay
if (flags.checkEndstops)
{
diff --git a/src/Movement/DDA.h b/src/Movement/DDA.h
index 766ccd3c..b4a02378 100644
--- a/src/Movement/DDA.h
+++ b/src/Movement/DDA.h
@@ -156,6 +156,7 @@ public:
#if SUPPORT_LASER || SUPPORT_IOBITS
LaserPwmOrIoBits GetLaserPwmOrIoBits() const noexcept { return laserPwmOrIoBits; }
+ bool ControlLaser() const noexcept { return flags.controlLaser; }
#endif
#if SUPPORT_LASER
@@ -178,6 +179,8 @@ public:
void DebugPrint(const char *tag) const noexcept; // print the DDA only
void DebugPrintAll(const char *tag) const noexcept; // print the DDA and active DMs
+ static void PrintMoves() noexcept; // print saved moves for debugging
+
// Note on the following constant:
// If we calculate the step interval on every clock, we reach a point where the calculation time exceeds the step interval.
// The worst case is pure Z movement on a delta. On a Mini Kossel with 80 steps/mm with this firmware running on a Duet (84MHx SAM3X8 processor),
@@ -206,7 +209,8 @@ public:
static constexpr uint32_t WakeupTime = (100 * StepTimer::StepClockRate)/1000000; // stop resting 100us before the move is due to end
static constexpr uint32_t HiccupIncrement = HiccupTime/2; // how much we increase the hiccup time by on each attempt
- static void PrintMoves() noexcept; // print saved moves for debugging
+ static constexpr uint32_t UsualMinimumPreparedTime = StepTimer::StepClockRate/10; // 100ms
+ static constexpr uint32_t AbsoluteMinimumPreparedTime = StepTimer::StepClockRate/20; // 50ms
#if DDA_LOG_PROBE_CHANGES
static const size_t MaxLoggedProbePositions = 40;
@@ -214,10 +218,6 @@ public:
static int32_t loggedProbePositions[XYZ_AXES * MaxLoggedProbePositions];
#endif
-#if SUPPORT_LASER || SUPPORT_IOBITS
- bool ControlLaser() const noexcept { return flags.controlLaser; }
-#endif
-
static uint32_t lastStepLowTime; // when we last completed a step pulse to a slow driver
static uint32_t lastDirChangeTime; // when we last change the DIR signal to a slow driver
diff --git a/src/Movement/DDARing.cpp b/src/Movement/DDARing.cpp
index f112ef9b..8500dd9b 100644
--- a/src/Movement/DDARing.cpp
+++ b/src/Movement/DDARing.cpp
@@ -15,9 +15,6 @@
# include "CAN/CanMotion.h"
#endif
-constexpr uint32_t UsualMinimumPreparedTime = StepTimer::StepClockRate/10; // 100ms
-constexpr uint32_t AbsoluteMinimumPreparedTime = StepTimer::StepClockRate/20; // 50ms
-
// Object model table and functions
// Note: if using GCC version 7.3.1 20180622 and lambda functions are used in this table, you must compile this file with option -std=gnu++17.
// Otherwise the table will be allocated in RAM instead of flash, which wastes too much RAM.
@@ -356,9 +353,9 @@ void DDARing::PrepareMoves(DDA *firstUnpreparedMove, int32_t moveTimeLeft, unsig
// If the number of prepared moves will execute in less than the minimum time, prepare another move.
// Try to avoid preparing deceleration-only moves too early
while ( firstUnpreparedMove->GetState() == DDA::provisional
- && moveTimeLeft < (int32_t)UsualMinimumPreparedTime // prepare moves one eighth of a second ahead of when they will be needed
+ && moveTimeLeft < (int32_t)DDA::UsualMinimumPreparedTime // prepare moves one tenth of a second ahead of when they will be needed
&& alreadyPrepared * 2 < numDdasInRing // but don't prepare more than half the ring
- && (firstUnpreparedMove->IsGoodToPrepare() || moveTimeLeft < (int32_t)AbsoluteMinimumPreparedTime)
+ && (firstUnpreparedMove->IsGoodToPrepare() || moveTimeLeft < (int32_t)DDA::AbsoluteMinimumPreparedTime)
#if SUPPORT_CAN_EXPANSION
&& CanMotion::CanPrepareMove()
#endif
diff --git a/src/Movement/Kinematics/FiveBarScaraKinematics.h b/src/Movement/Kinematics/FiveBarScaraKinematics.h
index 4f97fafe..8fc137eb 100644
--- a/src/Movement/Kinematics/FiveBarScaraKinematics.h
+++ b/src/Movement/Kinematics/FiveBarScaraKinematics.h
@@ -42,8 +42,8 @@ public:
void OnHomingSwitchTriggered(size_t axis, bool highEnd, const float stepsPerMm[], DDA& dda) const noexcept override;
void LimitSpeedAndAcceleration(DDA& dda, const float *normalisedDirectionVector, size_t numVisibleAxes, bool continuousRotationShortcut) const noexcept override;
bool IsContinuousRotationAxis(size_t axis) const noexcept override;
- AxesBitmap GetLinearAxes() const noexcept;
- AxesBitmap GetConnectedAxes(size_t axis) const noexcept;
+ AxesBitmap GetLinearAxes() const noexcept override;
+ AxesBitmap GetConnectedAxes(size_t axis) const noexcept override;
protected:
DECLARE_OBJECT_MODEL
diff --git a/src/Networking/ESP8266WiFi/WiFiSocket.h b/src/Networking/ESP8266WiFi/WiFiSocket.h
index 923f7020..7549e8c4 100644
--- a/src/Networking/ESP8266WiFi/WiFiSocket.h
+++ b/src/Networking/ESP8266WiFi/WiFiSocket.h
@@ -21,21 +21,22 @@ public:
WiFiSocket(NetworkInterface *iface) noexcept;
void Init(SocketNumber n) noexcept;
int State() const noexcept { return (int)state; } // used only for reporting debug info, hence the 'int' return
- void Poll() noexcept;
- void Close() noexcept;
- bool IsClosing() const noexcept { return (state == SocketState::closing); }
- void Terminate() noexcept;
- void TerminateAndDisable() noexcept { Terminate(); }
- bool ReadChar(char& c) noexcept;
- bool ReadBuffer(const uint8_t *&buffer, size_t &len) noexcept;
- void Taken(size_t len) noexcept;
- bool CanRead() const noexcept;
- bool CanSend() const noexcept;
- size_t Send(const uint8_t *data, size_t length) noexcept;
- void Send() noexcept;
void SetNeedsPolling() noexcept { needsPolling = true; }
bool NeedsPolling() const noexcept;
+ void Poll() noexcept override;
+ void Close() noexcept override;
+ bool IsClosing() const noexcept { return (state == SocketState::closing); }
+ void Terminate() noexcept override;
+ void TerminateAndDisable() noexcept override { Terminate(); }
+ bool ReadChar(char& c) noexcept override;
+ bool ReadBuffer(const uint8_t *&buffer, size_t &len) noexcept override;
+ void Taken(size_t len) noexcept override;
+ bool CanRead() const noexcept override;
+ bool CanSend() const noexcept override;
+ size_t Send(const uint8_t *data, size_t length) noexcept override;
+ void Send() noexcept override;
+
private:
enum class SocketState : uint8_t
{
diff --git a/src/Networking/W5500Ethernet/W5500Interface.h b/src/Networking/W5500Ethernet/W5500Interface.h
index fe9de794..e0176891 100644
--- a/src/Networking/W5500Ethernet/W5500Interface.h
+++ b/src/Networking/W5500Ethernet/W5500Interface.h
@@ -41,7 +41,7 @@ public:
GCodeResult EnableInterface(int mode, const StringRef& ssid, const StringRef& reply) noexcept override; // enable or disable the network
GCodeResult EnableProtocol(NetworkProtocol protocol, int port, int secure, const StringRef& reply) noexcept override;
- bool IsProtocolEnabled(NetworkProtocol protocol) noexcept;
+ bool IsProtocolEnabled(NetworkProtocol protocol) noexcept override;
GCodeResult DisableProtocol(NetworkProtocol protocol, const StringRef& reply) noexcept override;
GCodeResult ReportProtocols(const StringRef& reply) const noexcept override;
diff --git a/src/Platform/TaskPriorities.h b/src/Platform/TaskPriorities.h
index b65f1568..36545a55 100644
--- a/src/Platform/TaskPriorities.h
+++ b/src/Platform/TaskPriorities.h
@@ -14,7 +14,7 @@ namespace TaskPriority
constexpr int IdlePriority = 0;
constexpr int SpinPriority = 1; // priority for tasks that rarely block
#if HAS_LINUX_INTERFACE
- constexpr int SbcPriority = 1; // priority for SBC task
+ constexpr int SbcPriority = 1; // priority for SBC task. TODO increase this when we are certain that it never spins.
#endif
#if defined(LPC_NETWORKING)
constexpr int TcpPriority = 2;
@@ -26,7 +26,9 @@ namespace TaskPriority
constexpr int TmcPriority = 4;
constexpr int AinPriority = 4;
constexpr int HeightFollowingPriority = 4;
+#ifdef DUET_NG
constexpr int DueXPriority = 5;
+#endif
constexpr int LaserPriority = 5;
constexpr int CanSenderPriority = 5;
constexpr int CanReceiverPriority = 5;
diff --git a/src/PrintMonitor/PrintMonitor.cpp b/src/PrintMonitor/PrintMonitor.cpp
index 64661cb9..4cf8f2ed 100644
--- a/src/PrintMonitor/PrintMonitor.cpp
+++ b/src/PrintMonitor/PrintMonitor.cpp
@@ -346,6 +346,14 @@ void PrintMonitor::SetLayerZ(float layerZ) noexcept
// Currently we don't use the layerZ value
}
+// Report that a new layer has started
+void PrintMonitor::LayerChange() noexcept
+{
+ ++currentLayer;
+ lastLayerChangeTime = millis64();
+ lastLayerChangeNonPrintingTime = GetWarmUpDuration() + GetPauseDuration();
+}
+
float PrintMonitor::FractionOfFilePrinted() const noexcept
{
ReadLocker locker(printMonitorLock);
diff --git a/src/PrintMonitor/PrintMonitor.h b/src/PrintMonitor/PrintMonitor.h
index 16ae6b62..5ff5406f 100644
--- a/src/PrintMonitor/PrintMonitor.h
+++ b/src/PrintMonitor/PrintMonitor.h
@@ -44,6 +44,7 @@ public:
void StoppedPrint() noexcept; // Called whenever a file print has stopped
void SetLayerNumber(uint32_t layerNumber) noexcept; // Set the current layer number
void SetLayerZ(float layerZ) noexcept; // Set the printing height of the new layer
+ void LayerChange() noexcept; // Report that a new layer has started
float FractionOfFilePrinted() const noexcept; // Return the fraction printed (0..1)
// Return an estimate in seconds based on a specific estimation method
diff --git a/src/bossa/EefcFlash.h b/src/bossa/EefcFlash.h
index 91dc3682..a92241e6 100644
--- a/src/bossa/EefcFlash.h
+++ b/src/bossa/EefcFlash.h
@@ -49,30 +49,30 @@ public:
bool canBrownout) THROWS(GCodeException);
virtual ~EefcFlash();
- void eraseAll(uint32_t offset) THROWS(GCodeException);
- void eraseAuto(bool enable) noexcept;
+ void eraseAll(uint32_t offset) THROWS(GCodeException) override;
+ void eraseAuto(bool enable) noexcept override;
- Vector<bool, 16> getLockRegions() THROWS(GCodeException);
+ Vector<bool, 16> getLockRegions() THROWS(GCodeException) override;
#if ORIGINAL_BOSSA_CODE
bool getSecurity();
bool getBod();
#endif
- bool canBod() noexcept { return _canBrownout; }
+ bool canBod() noexcept override { return _canBrownout; }
#if ORIGINAL_BOSSA_CODE
bool getBor();
#endif
- bool canBor() noexcept { return _canBrownout; }
+ bool canBor() noexcept override { return _canBrownout; }
- bool getBootFlash() THROWS(GCodeException);
- bool canBootFlash() noexcept { return true; }
+ bool getBootFlash() THROWS(GCodeException) override;
+ bool canBootFlash() noexcept override { return true; }
- void writeOptions() THROWS(GCodeException);
+ void writeOptions() THROWS(GCodeException) override;
- void writePage(uint32_t page) THROWS(GCodeException);
- void readPage(uint32_t page, uint8_t* data) THROWS(GCodeException);
+ void writePage(uint32_t page) THROWS(GCodeException) override;
+ void readPage(uint32_t page, uint8_t* data) THROWS(GCodeException) override;
static const uint32_t PagesPerErase;