diff options
-rw-r--r-- | .cproject | 20 | ||||
-rw-r--r-- | src/CAN/CanInterface.cpp | 40 | ||||
-rw-r--r-- | src/CAN/CanInterface.h | 3 | ||||
-rw-r--r-- | src/CAN/CanMotion.cpp | 10 | ||||
-rw-r--r-- | src/Comms/PanelDueUpdater.cpp | 28 | ||||
-rw-r--r-- | src/Fans/LocalFan.h | 2 | ||||
-rw-r--r-- | src/GCodes/GCodeBuffer/StringParser.cpp | 16 | ||||
-rw-r--r-- | src/GCodes/GCodeBuffer/StringParser.h | 2 | ||||
-rw-r--r-- | src/GCodes/GCodes2.cpp | 2 | ||||
-rw-r--r-- | src/GCodes/GCodes3.cpp | 28 | ||||
-rw-r--r-- | src/Heating/RemoteHeater.cpp | 9 | ||||
-rw-r--r-- | src/Movement/DDA.cpp | 2 | ||||
-rw-r--r-- | src/Movement/DDA.h | 10 | ||||
-rw-r--r-- | src/Movement/DDARing.cpp | 7 | ||||
-rw-r--r-- | src/Movement/Kinematics/FiveBarScaraKinematics.h | 4 | ||||
-rw-r--r-- | src/Networking/ESP8266WiFi/WiFiSocket.h | 25 | ||||
-rw-r--r-- | src/Networking/W5500Ethernet/W5500Interface.h | 2 | ||||
-rw-r--r-- | src/Platform/TaskPriorities.h | 4 | ||||
-rw-r--r-- | src/PrintMonitor/PrintMonitor.cpp | 8 | ||||
-rw-r--r-- | src/PrintMonitor/PrintMonitor.h | 1 | ||||
-rw-r--r-- | src/bossa/EefcFlash.h | 20 |
21 files changed, 155 insertions, 88 deletions
@@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/CoreN2G/src}""/> @@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/CoreN2G/src}""/> @@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/CoreN2G/src}""/> @@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/CoreN2G/src}""/> @@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/CoreN2G/src}""/> @@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/CoreN2G/src}""/> @@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/FreeRTOS/src/include}""/> @@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/RRFLibraries}""/> @@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/FreeRTOS/src/include}""/> @@ -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 "-Wa,-ahl=$*.s" -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 "-Wa,-ahl=$*.s" -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=""${workspace_loc:/CoreN2G}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/CoreN2G/src}""/> 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; |