From bac9eb516e950940fa1641ee64338c90f94e1471 Mon Sep 17 00:00:00 2001 From: David Crocker Date: Wed, 9 Mar 2016 14:34:01 +0000 Subject: [PATCH] Version 1.09s beta 4 Enhancements: - Implemented M143 and M350 - Wait until movement finished when processing M906 - Allow for additional axes in M906 reporting code - Added support for external drivers module - Aux2 device support is now conditional - Added separate error code for temperature above safety limit Bug fixes: - Fixed spurious error report when processing corrupt input line - When there is a temperature error, return the correct error code - Update the overheat ADC value when changing thermistor parameters - Fixed occasional divide by zero problem in PrintMonitor that led to AJAX errors - Cold extrusion prevention only checks the active tool, to allow the same extruder and heater to be configured in multiple tools - If extrusion is prevented because of a temperature fault, display a message instead of silently preventing extrusion --- Configuration.h | 11 +- ExternalDrivers.h | 21 ++ GCodeBuffer.cpp | 10 +- GCodes.cpp | 106 ++++++++-- Heat.cpp | 86 ++++++++- Heat.h | 69 ------- Libraries/SamNonDuePin/SamNonDuePin.cpp | 10 +- Libraries/SamNonDuePin/SamNonDuePin.h | 28 +-- Platform.cpp | 215 ++++++++++++++++----- Platform.h | 19 +- PrintMonitor.cpp | 45 +++-- Release/RepRapFirmware-1.09sbeta4-dc42.bin | Bin 0 -> 240376 bytes Reprap.cpp | 51 ++--- Tool.cpp | 75 +++---- Webserver.cpp | 4 +- 15 files changed, 498 insertions(+), 252 deletions(-) create mode 100644 ExternalDrivers.h create mode 100644 Release/RepRapFirmware-1.09sbeta4-dc42.bin diff --git a/Configuration.h b/Configuration.h index 1d88b20..e80a2b2 100644 --- a/Configuration.h +++ b/Configuration.h @@ -26,17 +26,20 @@ Licence: GPL #define NAME "RepRapFirmware" #ifndef VERSION -#define VERSION "1.09r-dc42" +#define VERSION "1.09s-dc42-beta4" #endif #ifndef DATE -#define DATE "2016-01-16" +#define DATE "2016-03-08" #endif #define AUTHORS "reprappro, dc42, zpl, t3p3, dnewman" #define FLASH_SAVE_ENABLED (1) +//#define EXTERNAL_DRIVERS (1) +//#define FIRST_EXTERNAL_DRIVE (4) + // Other firmware that we might switch to be compatible with. enum Compatibility @@ -81,9 +84,9 @@ const float HOT_ENOUGH_TO_EXTRUDE = 160.0; // Celsius const float HOT_ENOUGH_TO_RETRACT = 90.0; // Celsius const float TIME_TO_HOT = 150.0; // Seconds -const uint8_t MAX_BAD_TEMPERATURE_COUNT = 6; // Number of bad temperature samples before a heater fault is reported +const uint8_t MAX_BAD_TEMPERATURE_COUNT = 4; // Number of bad temperature samples permitted before a heater fault is reported const float BAD_LOW_TEMPERATURE = -10.0; // Celsius -const float BAD_HIGH_TEMPERATURE = 300.0; // Celsius +const float DEFAULT_TEMPERATURE_LIMIT = 300.0; // Celsius const float HOT_END_FAN_TEMPERATURE = 45.0; // Temperature at which a thermostatic hot end fan comes on const float BAD_ERROR_TEMPERATURE = 2000.0; // must exceed BAD_HIGH_TEMPERATURE diff --git a/ExternalDrivers.h b/ExternalDrivers.h new file mode 100644 index 0000000..f20245e --- /dev/null +++ b/ExternalDrivers.h @@ -0,0 +1,21 @@ +/* + * ExternalDrivers.h + * + * Created on: 23 Jan 2016 + * Author: David + */ + +#ifndef EXTERNALDRIVERS_H_ +#define EXTERNALDRIVERS_H_ + +namespace ExternalDrivers +{ + void Init(); + void SetCurrent(size_t drive, float current); + void EnableDrive(size_t drive, bool en); + uint32_t GetStatus(size_t drive); + bool SetMicrostepping(size_t drive, int microsteps, int mode); + unsigned int GetMicrostepping(size_t drive, bool& interpolation); +}; + +#endif /* EXTERNALDRIVERS_H_ */ diff --git a/GCodeBuffer.cpp b/GCodeBuffer.cpp index 2ad8d4c..a4240d5 100644 --- a/GCodeBuffer.cpp +++ b/GCodeBuffer.cpp @@ -65,12 +65,14 @@ bool GCodeBuffer::Put(char c) // Deal with line numbers and checksums if (Seen('*')) { - int csSent = GetIValue(); - int csHere = CheckSum(); - Seen('N'); + const int csSent = GetIValue(); + const int csHere = CheckSum(); if (csSent != csHere) { - snprintf(gcodeBuffer, GCODE_LENGTH, "M998 P%d", GetIValue()); + if (Seen('N')) + { + snprintf(gcodeBuffer, GCODE_LENGTH, "M998 P%d", GetIValue()); + } Init(); return true; } diff --git a/GCodes.cpp b/GCodes.cpp index 6b9560a..14454f8 100644 --- a/GCodes.cpp +++ b/GCodes.cpp @@ -3550,8 +3550,19 @@ bool GCodes::HandleMcode(GCodeBuffer* gb, StringRef& reply) } break; + case 143: // Set temperature limit + if (gb->Seen('S')) + { + platform->SetTemperatureLimit(gb->GetFValue()); + } + else + { + reply.printf("Temperature limit is %.1fC", platform->GetTemperatureLimit()); + } + break; + case 144: // Set bed to standby -#if BED_HEATER != -1 +#if BED_HEATER >= 0 reprap.GetHeat()->Standby(BED_HEATER); #else reply.copy("Hot bed is not present!"); @@ -3559,14 +3570,7 @@ bool GCodes::HandleMcode(GCodeBuffer* gb, StringRef& reply) #endif break; - // case 160: //number of mixing filament drives TODO: With tools defined, is this needed? -// if(gb->Seen('S')) -// { -// platform->SetMixingDrives(gb->GetIValue()); -// } -// break; - - case 190: // Deprecated... + case 190: // Set bed temperature and wait if (!AllMovesAreFinishedAndMoveBufferIsLoaded()) // tell Move not to wait for more moves { return false; @@ -3818,9 +3822,75 @@ bool GCodes::HandleMcode(GCodeBuffer* gb, StringRef& reply) SetHeaterParameters(gb, reply); break; + case 350: // Set/report microstepping + if (!AllMovesAreFinishedAndMoveBufferIsLoaded()) + { + return false; + } + { + // interp is current an int not a bool, because we use special values of interp to set the chopper control register + int interp = 0; + if (gb->Seen('I')) + { + interp = gb->GetIValue(); + } + + bool seen = false; + for (size_t axis = 0; axis < AXES; axis++) + { + if (gb->Seen(axisLetters[axis])) + { + seen = true; + int microsteps = gb->GetIValue(); + if (!platform->SetMicrostepping(axis, microsteps, interp)) + { + platform->MessageF(GENERIC_MESSAGE, "Drive %c does not support %dx microstepping%s\n", + axisLetters[axis], microsteps, (interp) ? " with interpolation" : ""); + } + } + } + + if (gb->Seen(extrudeLetter)) + { + seen = true; + long eVals[DRIVES - AXES]; + size_t eCount = DRIVES - AXES; + gb->GetLongArray(eVals, eCount); + for (size_t e = 0; e < eCount; e++) + { + if (!platform->SetMicrostepping(AXES + e, (int)eVals[e], interp)) + { + platform->MessageF(GENERIC_MESSAGE, "Drive E%u does not support %dx microstepping%s\n", + e, (int)eVals[e], (interp) ? " with interpolation" : ""); + } + } + } + + if (!seen) + { + reply.copy("Microstepping - "); + for (size_t axis = 0; axis < AXES; ++axis) + { + bool interp; + int microsteps = platform->GetMicrostepping(axis, interp); + reply.catf("%c:%d%s, ", axisLetters[axis], microsteps, (interp) ? "(on)" : ""); + } + reply.cat("E"); + for (size_t drive = AXES; drive < DRIVES; drive++) + { + bool interp; + int microsteps = platform->GetMicrostepping(drive, interp); + reply.catf(":%d%s", microsteps, (interp) ? "(on)" : ""); + } + } + } + break; + case 400: // Wait for current moves to finish if (!AllMovesAreFinishedAndMoveBufferIsLoaded()) + { return false; + } break; case 404: // Filament width and nozzle diameter @@ -4610,7 +4680,7 @@ bool GCodes::HandleMcode(GCodeBuffer* gb, StringRef& reply) break; #endif - case 579: // Scale Cartesian axes (for Delta configurations) + case 579: // Scale Cartesian axes (mostly for Delta configurations) { bool seen = false; for(size_t axis = 0; axis < AXES; axis++) @@ -4820,6 +4890,10 @@ bool GCodes::HandleMcode(GCodeBuffer* gb, StringRef& reply) break; case 906: // Set/report Motor currents + if (!AllMovesAreFinishedAndMoveBufferIsLoaded()) + { + return false; + } { bool seen = false; for (size_t axis = 0; axis < AXES; axis++) @@ -4856,13 +4930,17 @@ bool GCodes::HandleMcode(GCodeBuffer* gb, StringRef& reply) if (!seen) { - reply.printf("Axis currents (mA) - X:%d, Y:%d, Z:%d, E:", (int) platform->MotorCurrent(X_AXIS), - (int) platform->MotorCurrent(Y_AXIS), (int) platform->MotorCurrent(Z_AXIS)); + reply.copy("Axis currents (mA) - "); + for (size_t axis = 0; axis < AXES; ++axis) + { + reply.catf("%c:%d, ", axisLetters[axis], (int) platform->MotorCurrent(axis)); + } + reply.cat("E"); for (size_t drive = AXES; drive < DRIVES; drive++) { - reply.catf("%d%c", (int) platform->MotorCurrent(drive), (drive < DRIVES - 1) ? ':' : ','); + reply.catf(":%d", (int) platform->MotorCurrent(drive)); } - reply.catf(" idle factor %d", (int)(platform->GetIdleCurrentFactor() * 100.0)); + reply.catf(", idle factor %d%%", (int)(platform->GetIdleCurrentFactor() * 100.0)); } } break; diff --git a/Heat.cpp b/Heat.cpp index cebe933..ec04e87 100644 --- a/Heat.cpp +++ b/Heat.cpp @@ -163,8 +163,8 @@ void PID::Spin() // Always know our temperature, regardless of whether we have been switched on or not - Platform::TempError err = Platform::TempError::errOpen; // Initially assign an error; call should update but if it doesn't, we'll treat as an error - temperature = platform->GetTemperature(heater, &err); // In the event of an error, err is set and BAD_ERROR_TEMPERATURE is returned + Platform::TempError err = Platform::TempError::errOk; // assume no error + temperature = platform->GetTemperature(heater, &err); // in the event of an error, err is set and BAD_ERROR_TEMPERATURE is returned // If we're not switched on, or there's a fault, turn the power off and go home. // If we're not switched on, then nothing is using us. This probably means that @@ -180,7 +180,16 @@ void PID::Spin() // We are switched on. Check for faults. Temperature silly-low or silly-high mean open-circuit // or shorted thermistor respectively. - if (temperature < BAD_LOW_TEMPERATURE || temperature > BAD_HIGH_TEMPERATURE) + if (temperature < BAD_LOW_TEMPERATURE) + { + err = Platform::TempError::errOpen; + } + else if (temperature > platform->GetTemperatureLimit()) + { + err = Platform::TempError::errTooHigh; + } + + if (err != Platform::TempError::errOk) { if (platform->DoThermistorAdc(heater) || !(Platform::TempErrorPermanent(err))) { @@ -209,7 +218,7 @@ void PID::Spin() } else { - badTemperatureCount = 0; + badTemperatureCount = 0; } // Now check how long it takes to warm up. If too long, maybe the thermistor is not in contact with the heater @@ -303,6 +312,75 @@ void PID::Spin() // debugPrintf("Heater %d: e=%f, P=%f, I=%f, d=%f, r=%f\n", heater, error, pp.kP*error, temp_iState, temp_dState, result); } +void PID::SetActiveTemperature(float t) +{ + if (t > platform->GetTemperatureLimit()) + { + platform->MessageF(GENERIC_MESSAGE, "Error: Temperature %.1f too high for heater %d!\n", t, heater); + } + + SwitchOn(); + activeTemperature = t; +} + +void PID::SetStandbyTemperature(float t) +{ + if (t > platform->GetTemperatureLimit()) + { + platform->MessageF(GENERIC_MESSAGE, "Error: Temperature %.1f too high for heater %d!\n", t, heater); + } + + SwitchOn(); + standbyTemperature = t; +} + +void PID::Activate() +{ + if (temperatureFault) + { + return; + } + + SwitchOn(); + active = true; + if (!heatingUp) + { + timeSetHeating = platform->Time(); + } + heatingUp = activeTemperature > temperature; +} + +void PID::Standby() +{ + if (temperatureFault) + { + return; + } + + SwitchOn(); + active = false; + if (!heatingUp) + { + timeSetHeating = platform->Time(); + } + heatingUp = standbyTemperature > temperature; +} + +void PID::ResetFault() +{ + temperatureFault = false; + timeSetHeating = platform->Time(); // otherwise we will get another timeout immediately + badTemperatureCount = 0; +} + +void PID::SwitchOff() +{ + SetHeater(0.0); + active = false; + switchedOff = true; + heatingUp = false; +} + float PID::GetAveragePWM() const { return averagePWM * invHeatPwmAverageCount; diff --git a/Heat.h b/Heat.h index 90fd951..b2582e0 100644 --- a/Heat.h +++ b/Heat.h @@ -137,33 +137,11 @@ inline bool PID::Active() const return active; } -inline void PID::SetActiveTemperature(float t) -{ - if (t > BAD_HIGH_TEMPERATURE) - { - platform->MessageF(GENERIC_MESSAGE, "Error: Temperature %.1f too high for heater %d!\n", t, heater); - } - - SwitchOn(); - activeTemperature = t; -} - inline float PID::GetActiveTemperature() const { return activeTemperature; } -inline void PID::SetStandbyTemperature(float t) -{ - if (t > BAD_HIGH_TEMPERATURE) - { - platform->MessageF(GENERIC_MESSAGE, "Error: Temperature %.1f too high for heater %d!\n", t, heater); - } - - SwitchOn(); - standbyTemperature = t; -} - inline float PID::GetStandbyTemperature() const { return standbyTemperature; @@ -174,58 +152,11 @@ inline float PID::GetTemperature() const return temperature; } -inline void PID::Activate() -{ - if (temperatureFault) - { - return; - } - - SwitchOn(); - active = true; - if (!heatingUp) - { - timeSetHeating = platform->Time(); - } - heatingUp = activeTemperature > temperature; -} - -inline void PID::Standby() -{ - if (temperatureFault) - { - return; - } - - SwitchOn(); - active = false; - if (!heatingUp) - { - timeSetHeating = platform->Time(); - } - heatingUp = standbyTemperature > temperature; -} - inline bool PID::FaultOccurred() const { return temperatureFault; } -inline void PID::ResetFault() -{ - temperatureFault = false; - timeSetHeating = platform->Time(); // otherwise we will get another timeout immediately - badTemperatureCount = 0; -} - -inline void PID::SwitchOff() -{ - SetHeater(0.0); - active = false; - switchedOff = true; - heatingUp = false; -} - inline bool PID::SwitchedOff() const { return switchedOff; diff --git a/Libraries/SamNonDuePin/SamNonDuePin.cpp b/Libraries/SamNonDuePin/SamNonDuePin.cpp index 7b2e98f..f28eca7 100644 --- a/Libraries/SamNonDuePin/SamNonDuePin.cpp +++ b/Libraries/SamNonDuePin/SamNonDuePin.cpp @@ -85,7 +85,7 @@ extern void pinModeNonDue(uint32_t ulPin, uint32_t ulMode, uint32_t debounceCuto return; } - const PinDescription& pinDesc = (ulPin >= X0) ? nonDuePinDescription[ulPin - X0] : g_APinDescription[ulPin]; + const PinDescription& pinDesc = GetPinDescription(ulPin); if (pinDesc.ulPinType == PIO_NOT_A_PIN) { return; @@ -153,7 +153,7 @@ extern void digitalWriteNonDue(uint32_t ulPin, uint32_t ulVal) return; } - const PinDescription& pinDesc = (ulPin >= X0) ? nonDuePinDescription[ulPin - X0] : g_APinDescription[ulPin]; + const PinDescription& pinDesc = GetPinDescription(ulPin); if (pinDesc.ulPinType != PIO_NOT_A_PIN) { if (ulVal) // we make use of the fact that LOW is zero and HIGH is nonzero @@ -179,7 +179,7 @@ extern int digitalReadNonDue( uint32_t ulPin ) return LOW; } - const PinDescription& pinDesc = (ulPin >= X0) ? nonDuePinDescription[ulPin - X0] : g_APinDescription[ulPin]; + const PinDescription& pinDesc = GetPinDescription(ulPin); if (pinDesc.ulPinType == PIO_NOT_A_PIN) { return LOW ; @@ -191,7 +191,7 @@ extern int digitalReadNonDue( uint32_t ulPin ) // Build a short-form pin descriptor for a IO pin OutputPin::OutputPin(unsigned int pin) { - const PinDescription& pinDesc = (pin >= X0) ? nonDuePinDescription[pin - X0] : g_APinDescription[pin]; + const PinDescription& pinDesc = GetPinDescription(pin); pPort = pinDesc.pPort; ulPin = pinDesc.ulPin; } @@ -249,7 +249,7 @@ void analogWriteNonDue(uint32_t ulPin, uint32_t ulValue, uint16_t freq) ulValue = 255; } - const PinDescription& pinDesc = (ulPin >= X0) ? nonDuePinDescription[ulPin - X0] : g_APinDescription[ulPin]; + const PinDescription& pinDesc = GetPinDescription(ulPin); uint32_t attr = pinDesc.ulPinAttribute; if ((attr & PIN_ATTR_ANALOG) == PIN_ATTR_ANALOG) { diff --git a/Libraries/SamNonDuePin/SamNonDuePin.h b/Libraries/SamNonDuePin/SamNonDuePin.h index 974c01b..775be28 100644 --- a/Libraries/SamNonDuePin/SamNonDuePin.h +++ b/Libraries/SamNonDuePin/SamNonDuePin.h @@ -84,18 +84,22 @@ public: void SetLow() const { pPort->PIO_CODR = ulPin; } }; -// struct used to hold the descriptions for the "non Arduino" pins. -// from the Arduino.h files -extern const PinDescription nonDuePinDescription[] ; -extern void pinModeNonDue(uint32_t ulPin, uint32_t ulMode, uint32_t debounceCutoff = 0); // NB only one debounce cutoff frequency can be set per PIO -extern void digitalWriteNonDue(uint32_t ulPin, uint32_t ulVal); -extern int digitalReadNonDue(uint32_t ulPin); -extern OutputPin getPioPin(uint32_t ulPin); -extern void analogWriteNonDue(uint32_t ulPin, uint32_t ulValue, uint16_t freq); -extern void analogOutputNonDue(); -extern void hsmciPinsinit(); -extern void ethPinsInit(); -extern adc_channel_num_t PinToAdcChannel(int pin); // convert an analog pin number to an ADC channel +extern const PinDescription nonDuePinDescription[]; + +inline const PinDescription& GetPinDescription(uint32_t ulPin) +{ + return (ulPin >= X0) ? nonDuePinDescription[ulPin - X0] : g_APinDescription[ulPin]; +} + +void pinModeNonDue(uint32_t ulPin, uint32_t ulMode, uint32_t debounceCutoff = 0); // NB only one debounce cutoff frequency can be set per PIO +void digitalWriteNonDue(uint32_t ulPin, uint32_t ulVal); +int digitalReadNonDue(uint32_t ulPin); +OutputPin getPioPin(uint32_t ulPin); +void analogWriteNonDue(uint32_t ulPin, uint32_t ulValue, uint16_t freq); +void analogOutputNonDue(); +void hsmciPinsinit(); +void ethPinsInit(); +adc_channel_num_t PinToAdcChannel(int pin); // convert an analog pin number to an ADC channel #endif /* SAM_NON_DUE_PIN_H */ diff --git a/Platform.cpp b/Platform.cpp index 0a7a589..9a3cbcd 100644 --- a/Platform.cpp +++ b/Platform.cpp @@ -22,6 +22,10 @@ #include "RepRapFirmware.h" #include "DueFlashStorage.h" +#ifdef EXTERNAL_DRIVERS +#include "ExternalDrivers.h" +#endif + extern char _end; extern "C" char *sbrk(int i); @@ -109,8 +113,7 @@ bool PidParameters::operator==(const PidParameters& other) const Platform::Platform() : autoSaveEnabled(false), board(DEFAULT_BOARD_TYPE), active(false), errorCodeBits(0), - fileStructureInitialised(false), tickState(0), debugCode(0), - messageString(messageStringBuffer, ARRAY_SIZE(messageStringBuffer)) + fileStructureInitialised(false), tickState(0), debugCode(0) { // Output auxOutput = new OutputStack(); @@ -148,7 +151,9 @@ void Platform::Init() SERIAL_MAIN_DEVICE.begin(baudRates[0]); SERIAL_AUX_DEVICE.begin(baudRates[1]); // this can't be done in the constructor because the Arduino port initialisation isn't complete at that point +#ifdef SERIAL_AUX2_DEVICE SERIAL_AUX2_DEVICE.begin(baudRates[2]); +#endif // Reconfigure the ADC to avoid crosstalk between channels (especially on Duet 0.8.5) adc_init(ADC, SystemCoreClock, ADC_FREQ_MIN, ADC_STARTUP_FAST); // reduce clock rate @@ -240,7 +245,11 @@ void Platform::Init() { pinModeNonDue(directionPins[drive], OUTPUT); } +#ifdef EXTERNAL_DRIVERS + if (drive < FIRST_EXTERNAL_DRIVE && enablePins[drive] >= 0) +#else if (enablePins[drive] >= 0) +#endif { pinModeNonDue(enablePins[drive], OUTPUT); } @@ -261,6 +270,10 @@ void Platform::Init() } } +#ifdef EXTERNAL_DRIVERS + ExternalDrivers::Init(); +#endif + extrusionAncilliaryPWM = 0.0; // HEATERS - Bed is assumed to be index 0 @@ -275,14 +288,8 @@ void Platform::Init() thermistorAdcChannels[heater] = PinToAdcChannel(tempSensePins[heater]); // Translate the Arduino Due Analog pin number to the SAM ADC channel number SetThermistorNumber(heater, heater); // map the thermistor straight through thermistorFilters[heater].Init(analogRead(tempSensePins[heater])); - - // Calculate and store the ADC average sum that corresponds to an overheat condition, so that we can check is quickly in the tick ISR - float thermistorOverheatResistance = nvData.pidParams[heater].GetRInf() - * exp(-nvData.pidParams[heater].GetBeta() / (BAD_HIGH_TEMPERATURE - ABS_ZERO)); - float thermistorOverheatAdcValue = (AD_RANGE_REAL + 1) * thermistorOverheatResistance - / (thermistorOverheatResistance + nvData.pidParams[heater].thermistorSeriesR); - thermistorOverheatSums[heater] = (uint32_t) (thermistorOverheatAdcValue + 0.9) * THERMISTOR_AVERAGE_READINGS; } + SetTemperatureLimit(DEFAULT_TEMPERATURE_LIMIT); InitFans(); @@ -338,6 +345,20 @@ void Platform::InvalidateFiles() } } +void Platform::SetTemperatureLimit(float t) +{ + temperatureLimit = t; + for (size_t heater = 0; heater < HEATERS; heater++) + { + // Calculate and store the ADC average sum that corresponds to an overheat condition, so that we can check it quickly in the tick ISR + float thermistorOverheatResistance = nvData.pidParams[heater].GetRInf() + * exp(-nvData.pidParams[heater].GetBeta() / (temperatureLimit - ABS_ZERO)); + float thermistorOverheatAdcValue = (AD_RANGE_REAL + 1) * thermistorOverheatResistance + / (thermistorOverheatResistance + nvData.pidParams[heater].thermistorSeriesR); + thermistorOverheatSums[heater] = (uint32_t) (thermistorOverheatAdcValue + 0.9) * THERMISTOR_AVERAGE_READINGS; + } +} + // Specify which thermistor channel a particular heater uses void Platform::SetThermistorNumber(size_t heater, size_t thermistor) //pre(heater < HEATERS && thermistor < HEATERS) @@ -781,6 +802,7 @@ void Platform::Spin() OutputBuffer *aux2OutputBuffer = aux2Output->GetFirstItem(); if (aux2OutputBuffer != nullptr) { +#ifdef SERIAL_AUX2_DEVICE size_t bytesToWrite = min(SERIAL_AUX2_DEVICE.canWrite(), aux2OutputBuffer->BytesLeft()); if (bytesToWrite > 0) { @@ -792,6 +814,9 @@ void Platform::Spin() aux2OutputBuffer = OutputBuffer::Release(aux2OutputBuffer); aux2Output->SetFirstItem(aux2OutputBuffer); } +#else + aux2OutputBuffer = OutputBuffer::Release(aux2OutputBuffer); +#endif } // Write non-blocking data to the USB line @@ -868,7 +893,11 @@ void Platform::SoftwareReset(uint16_t reason) { reason |= (uint16_t)SoftwareResetReason::inLwipSpin; } - if (!SERIAL_AUX_DEVICE.canWrite() || !SERIAL_AUX2_DEVICE.canWrite()) + if (!SERIAL_AUX_DEVICE.canWrite() +#ifdef SERIAL_AUX2_DEVICE + || !SERIAL_AUX2_DEVICE.canWrite() +#endif + ) { reason |= (uint16_t)SoftwareResetReason::inAuxOutput; // if we are resetting because we are stuck in a Spin function, record whether we are trying to send to aux } @@ -880,15 +909,6 @@ void Platform::SoftwareReset(uint16_t reason) temp.magic = SoftwareResetData::magicValue; temp.resetReason = reason; GetStackUsage(NULL, NULL, &temp.neverUsedRam); - if (reason != (uint16_t)SoftwareResetReason::user) - { - strncpy(temp.lastMessage, messageString.Pointer(), sizeof(temp.lastMessage) - 1); - temp.lastMessage[sizeof(temp.lastMessage) - 1] = 0; - } - else - { - temp.lastMessage[0] = 0; - } // Save diagnostics data to Flash and reset the software DueFlashStorage::write(SoftwareResetData::nvAddress, &temp, sizeof(SoftwareResetData)); @@ -1022,10 +1042,6 @@ void Platform::Diagnostics() { MessageF(GENERIC_MESSAGE, "Last software reset code & available RAM: 0x%04x, %u\n", temp.resetReason, temp.neverUsedRam); MessageF(GENERIC_MESSAGE, "Spinning module during software reset: %s\n", moduleName[temp.resetReason & 0x0F]); - if (temp.lastMessage[0]) - { - MessageF(GENERIC_MESSAGE, "Last message before reset: %s", temp.lastMessage); // usually ends with NL - } } } @@ -1178,7 +1194,10 @@ float Platform::GetTemperature(size_t heater, TempError* err) const else { // thermistor short circuit, return a high temperature - if (err) *err = TempError::errShort; + if (err) + { + *err = TempError::errShort; + } return BAD_ERROR_TEMPERATURE; } } @@ -1216,6 +1235,7 @@ float Platform::GetTemperature(size_t heater, TempError* err) const case TempError::errShortVcc : return "sensor circuit is shorted to the voltage rail"; case TempError::errShortGnd : return "sensor circuit is shorted to ground"; case TempError::errOpen : return "sensor circuit is open/disconnected"; + case TempError::errTooHigh: return "temperature above safety limit"; case TempError::errTimeout : return "communication error whilst reading sensor; read took too long"; case TempError::errIO: return "communication error whilst reading sensor; check sensor connections"; } @@ -1238,6 +1258,7 @@ bool Platform::AnyHeaterHot(uint16_t heaters, float t) const return false; } +// Update the heater PID parameters or thermistor resistance etc. void Platform::SetPidParameters(size_t heater, const PidParameters& params) { if (heater < HEATERS && params != nvData.pidParams[heater]) @@ -1247,6 +1268,7 @@ void Platform::SetPidParameters(size_t heater, const PidParameters& params) { WriteNvData(); } + SetTemperatureLimit(temperatureLimit); // recalculate the thermistor resistance at max allowed temperature for the tick ISR } } const PidParameters& Platform::GetPidParameters(size_t heater) const @@ -1329,11 +1351,22 @@ void Platform::EnableDrive(size_t drive) { UpdateMotorCurrent(driver); // the current may have been reduced by the idle timeout - const int pin = enablePins[driver]; - if (pin >= 0) +#ifdef EXTERNAL_DRIVERS + if (drive >= FIRST_EXTERNAL_DRIVE) { - digitalWriteNonDue(pin, enableValues[driver]); + ExternalDrivers::EnableDrive(driver - FIRST_EXTERNAL_DRIVE, true); } + else + { +#endif + const int pin = enablePins[driver]; + if (pin >= 0) + { + digitalWriteNonDue(pin, enableValues[driver]); + } +#ifdef EXTERNAL_DRIVERS + } +#endif } } } @@ -1344,12 +1377,23 @@ void Platform::DisableDrive(size_t drive) if (drive < DRIVES) { const size_t driver = driverNumbers[drive]; - const int pin = enablePins[driver]; - if (pin >= 0) +#ifdef EXTERNAL_DRIVERS + if (drive >= FIRST_EXTERNAL_DRIVE) { - digitalWriteNonDue(pin, !enableValues[driver]); + ExternalDrivers::EnableDrive(driver - FIRST_EXTERNAL_DRIVE, false); } - driveState[drive] = DriveStatus::disabled; + else + { +#endif + const int pin = enablePins[driver]; + if (pin >= 0) + { + digitalWriteNonDue(pin, !enableValues[driver]); + } + driveState[drive] = DriveStatus::disabled; +#ifdef EXTERNAL_DRIVERS + } +#endif } } @@ -1387,35 +1431,46 @@ void Platform::UpdateMotorCurrent(size_t drive) { current *= idleCurrentFactor; } - unsigned short pot = (unsigned short)((0.256*current*8.0*senseResistor + maxStepperDigipotVoltage/2)/maxStepperDigipotVoltage); - unsigned short dac = (unsigned short)((0.256*current*8.0*senseResistor + maxStepperDACVoltage/2)/maxStepperDACVoltage); const size_t driver = driverNumbers[drive]; - if (driver < 4) +#ifdef EXTERNAL_DRIVERS + if (driver >= FIRST_EXTERNAL_DRIVE) { - mcpDuet.setNonVolatileWiper(potWipes[driver], pot); - mcpDuet.setVolatileWiper(potWipes[driver], pot); + ExternalDrivers::SetCurrent(driver - FIRST_EXTERNAL_DRIVE, current); } else { - if (board == BoardType::Duet_085) +#endif + unsigned short pot = (unsigned short)((0.256*current*8.0*senseResistor + maxStepperDigipotVoltage/2)/maxStepperDigipotVoltage); + unsigned short dac = (unsigned short)((0.256*current*8.0*senseResistor + maxStepperDACVoltage/2)/maxStepperDACVoltage); + if (driver < 4) { - // Extruder 0 is on DAC channel 0 - if (driver == 4) - { - analogWrite(DAC0, dac); - } - else - { - mcpExpansion.setNonVolatileWiper(potWipes[driver-1], pot); - mcpExpansion.setVolatileWiper(potWipes[driver-1], pot); - } + mcpDuet.setNonVolatileWiper(potWipes[driver], pot); + mcpDuet.setVolatileWiper(potWipes[driver], pot); } else { - mcpExpansion.setNonVolatileWiper(potWipes[driver], pot); - mcpExpansion.setVolatileWiper(potWipes[driver], pot); - } + if (board == BoardType::Duet_085) + { + // Extruder 0 is on DAC channel 0 + if (driver == 4) + { + analogWrite(DAC0, dac); + } + else + { + mcpExpansion.setNonVolatileWiper(potWipes[driver-1], pot); + mcpExpansion.setVolatileWiper(potWipes[driver-1], pot); + } + } + else + { + mcpExpansion.setNonVolatileWiper(potWipes[driver], pot); + mcpExpansion.setVolatileWiper(potWipes[driver], pot); + } } +#ifdef EXTERNAL_DRIVERS + } +#endif } } @@ -1437,6 +1492,48 @@ void Platform::SetIdleCurrentFactor(float f) } } +// Set the microstepping, returning true if successful +bool Platform::SetMicrostepping(size_t drive, int microsteps, int mode) +{ + if (drive < DRIVES) + { +#ifdef EXTERNAL_DRIVERS + const size_t driver = driverNumbers[drive]; + if (driver >= FIRST_EXTERNAL_DRIVE) + { + return ExternalDrivers::SetMicrostepping(driver - FIRST_EXTERNAL_DRIVE, microsteps, mode); + } + else + { +#endif + // On-board drivers only support x16 microstepping. + // We ignore the interpolation on/off parameter so that e.g. M350 I1 E16:128 won't give an error if E1 supports interpolation but E0 doesn't. + return microsteps == 16; +#ifdef EXTERNAL_DRIVERS + } +#endif + } + return false; +} + +unsigned int Platform::GetMicrostepping(size_t drive, bool& interpolation) const +{ +#ifdef EXTERNAL_DRIVERS + if (drive < DRIVES) + { + const size_t driver = driverNumbers[drive]; + if (driver >= FIRST_EXTERNAL_DRIVE) + { + return ExternalDrivers::GetMicrostepping(driver - FIRST_EXTERNAL_DRIVE, interpolation); + } + } +#endif + + // On-board drivers only support x16 microstepping without interpolation + interpolation = false; + return 16; +} + // Set the physical drive (i.e. axis or extruder) number used by this driver void Platform::SetPhysicalDrive(size_t driverNumber, int8_t physicalDrive) { @@ -1513,7 +1610,7 @@ void Platform::InitFans() for (size_t i = 0; i < NUM_FANS; ++i) { // The cooling fan 0 output pin gets inverted if HEAT_ON == 0 on a Duet 0.4, 0.6 or 0.7 - fans[i].Init(COOLING_FAN_PINS[i], !HEAT_ON && board != BoardType::Duet_085); + fans[i].Init(COOLING_FAN_PINS[i], !HEAT_ON && (board == BoardType::Duet_06 || board == BoardType::Duet_07)); } if (NUM_FANS > 1) @@ -1711,6 +1808,7 @@ void Platform::Message(MessageType type, const char *message) break; case AUX2_MESSAGE: +#ifdef SERIAL_AUX2_DEVICE // Message that is to be sent to the second auxiliary device (blocking) if (!aux2Output->IsEmpty()) { @@ -1723,6 +1821,7 @@ void Platform::Message(MessageType type, const char *message) SERIAL_AUX2_DEVICE.write(message); SERIAL_AUX2_DEVICE.flush(); } +#endif break; case DISPLAY_MESSAGE: @@ -1965,10 +2064,12 @@ void Platform::ResetChannel(size_t chan) SERIAL_AUX_DEVICE.end(); SERIAL_AUX_DEVICE.begin(baudRates[1]); break; +#ifdef SERIAL_AUX2_DEVICE case 2: SERIAL_AUX2_DEVICE.end(); SERIAL_AUX2_DEVICE.begin(baudRates[2]); break; +#endif default: break; } @@ -1981,7 +2082,7 @@ void Platform::SetBoardType(BoardType bt) // Determine whether this is a Duet 0.6 or a Duet 0.8.5 board. // If it is a 0.85 board then DAC0 (AKA digital pin 67) is connected to ground via a diode and a 2.15K resistor. // So we enable the pullup (value 150K-150K) on pin 67 and read it, expecting a LOW on a 0.8.5 board and a HIGH on a 0.6 board. - // This may fail if anyone connects a load to the DAC0 pin on and Dur=et 0.6, hence we implement board selection in M115 as well. + // This may fail if anyone connects a load to the DAC0 pin on and Duet 0.6, hence we implement board selection in M115 as well. pinModeNonDue(Dac0DigitalPin, INPUT_PULLUP); board = (digitalReadNonDue(Dac0DigitalPin)) ? BoardType::Duet_06 : BoardType::Duet_085; pinModeNonDue(Dac0DigitalPin, INPUT); // turn pullup off @@ -2088,7 +2189,11 @@ bool Platform::GCodeAvailable(const SerialSource source) const return SERIAL_AUX_DEVICE.available() > 0; case SerialSource::AUX2: +#ifdef SERIAL_AUX2_DEVICE return SERIAL_AUX2_DEVICE.available() > 0; +#else + return false; +#endif } return false; @@ -2105,7 +2210,11 @@ char Platform::ReadFromSource(const SerialSource source) return static_cast(SERIAL_AUX_DEVICE.read()); case SerialSource::AUX2: +#ifdef SERIAL_AUX2_DEVICE return static_cast(SERIAL_AUX2_DEVICE.read()); +#else + return 0; +#endif } return 0; @@ -2180,7 +2289,7 @@ void Platform::Tick() // averaging. As such, the temperature reading is taken directly by Platform::GetTemperature() and // periodically called by PID::Spin() where temperature fault handling is taken care of. However, we // must guard against overly long delays between successive calls of PID::Spin(). - + // Do not call Time() here, it isn't safe. We use millis() instead. StartAdcConversion(zProbeAdcChannel); if ((millis() - reprap.GetHeat()->GetLastSampleTime(currentHeater)) > maxPidSpinDelay) { diff --git a/Platform.h b/Platform.h index 84d37cd..3f2f969 100644 --- a/Platform.h +++ b/Platform.h @@ -175,12 +175,6 @@ const uint8_t MAC_ADDRESS[6] = { 0xBE, 0xEF, 0xDE, 0xAD, 0xFE, 0xED }; /****************************************************************************************************/ -// Miscellaneous... - -const size_t messageStringLength = 256; // max length of a message chunk sent via Message or AppendMessage - -/****************************************************************************************************/ - enum class BoardType : uint8_t { Auto = 0, @@ -423,7 +417,7 @@ public: enum class DriveStatus : uint8_t { disabled, idle, enabled }; // Error results generated by GetTemperature() - enum class TempError : uint8_t { errOk, errShort, errShortVcc, errShortGnd, errOpen, errTimeout, errIO }; + enum class TempError : uint8_t { errOk, errShort, errShortVcc, errShortGnd, errOpen, errTooHigh, errTimeout, errIO }; Platform(); @@ -515,6 +509,8 @@ public: float MotorCurrent(size_t drive) const; void SetIdleCurrentFactor(float f); float GetIdleCurrentFactor() const { return idleCurrentFactor; } + bool SetMicrostepping(size_t drive, int microsteps, int mode); + unsigned int GetMicrostepping(size_t drive, bool& interpolation) const; float DriveStepsPerUnit(size_t drive) const; const float *GetDriveStepsPerUnit() const { return driveStepsPerUnit; } void SetDriveStepsPerUnit(size_t drive, float value); @@ -574,7 +570,8 @@ public: void SetThermistorNumber(size_t heater, size_t thermistor); int GetThermistorNumber(size_t heater) const; bool DoThermistorAdc(uint8_t heater) const; - MAX31855 Max31855Devices[MAX31855_DEVICES]; + void SetTemperatureLimit(float t); + float GetTemperatureLimit() const { return temperatureLimit; } static const char* TempErrorStr(TempError err); static bool TempErrorPermanent(TempError err); @@ -638,7 +635,6 @@ private: uint16_t magic; uint16_t resetReason; // this records why we did a software reset, for diagnostic purposes size_t neverUsedRam; // the amount of never used RAM at the last abnormal software reset - char lastMessage[256]; // the last known message before a software reset occurred }; struct FlashData @@ -759,11 +755,13 @@ private: Pin tempSensePins[HEATERS]; Pin heatOnPins[HEATERS]; + MAX31855 Max31855Devices[MAX31855_DEVICES]; Pin max31855CsPins[MAX31855_DEVICES]; float heatSampleTime; float standbyTemperatures[HEATERS]; float activeTemperatures[HEATERS]; float timeToHot; + float temperatureLimit; // Fans @@ -836,9 +834,6 @@ private: static uint16_t GetAdcReading(adc_channel_num_t chan); static void StartAdcConversion(adc_channel_num_t chan); - char messageStringBuffer[messageStringLength]; - StringRef messageString; - // Hotend configuration float filamentWidth; float nozzleDiameter; diff --git a/PrintMonitor.cpp b/PrintMonitor.cpp index 6964819..213b674 100644 --- a/PrintMonitor.cpp +++ b/PrintMonitor.cpp @@ -723,23 +723,27 @@ float PrintMonitor::EstimateTimeLeft(PrintEstimationMethod method) const const float fractionPrinted = gCodes->FractionOfFilePrinted(); if (numLayerSamples < 2 || !printingFileParsed || printingFileInfo.objectHeight == 0.0) { - return (fractionPrinted < 0.01) - ? 0.0 - : realPrintDuration * (1.0 / fractionPrinted) - realPrintDuration; + if (fractionPrinted < 0.01) + { + break; + } + return realPrintDuration * (1.0 / fractionPrinted) - realPrintDuration; } // Work out how much progress we made in the layers we have data for, and how long it took. // Can't use the first layer sample in the table because we don't know the fraction printed at the start. float duration = 0.0; - for(size_t layer = 1; layer < numLayerSamples; layer++) + for (size_t layer = 1; layer < numLayerSamples; layer++) { duration += layerDurations[layer]; } const float fractionPrintedInLayers = fileProgressPerLayer[numLayerSamples - 1] - fileProgressPerLayer[0]; - return (fractionPrintedInLayers < 0.01) - ? 0.0 - : duration * (1.0 - fractionPrinted)/fractionPrintedInLayers; + if (fractionPrintedInLayers >= 0.01) + { + return duration * (1.0 - fractionPrinted)/fractionPrintedInLayers; + } } + break; case filamentBased: { @@ -750,7 +754,7 @@ float PrintMonitor::EstimateTimeLeft(PrintEstimationMethod method) const #endif ) { - return 0.0; + break; } // Sum up the filament usage and the filament needed @@ -770,22 +774,35 @@ float PrintMonitor::EstimateTimeLeft(PrintEstimationMethod method) const } if (extrRawTotal >= totalFilamentNeeded) { - return 0.0; // Avoid division by zero, else the web interface will report AJAX errors + break; // Avoid division by zero, else the web interface will report AJAX errors } float filamentRate; - if (numLayerSamples) + if (numLayerSamples != 0) { filamentRate = 0.0; - for(size_t i = 0; i < numLayerSamples; i++) + size_t numSamples = 0; + for (size_t i = 0; i < numLayerSamples; i++) { - filamentRate += filamentUsagePerLayer[i] / layerDurations[i]; + if (layerDurations[i] > 0.0) + { + filamentRate += filamentUsagePerLayer[i] / layerDurations[i]; + ++numSamples; + } } - filamentRate /= numLayerSamples; + if (numSamples == 0) + { + break; + } + filamentRate /= numSamples; + } + else if (firstLayerDuration > 0.0) + { + filamentRate = firstLayerFilament / firstLayerDuration; } else { - filamentRate = firstLayerFilament / firstLayerDuration; + break; } return (totalFilamentNeeded - extrRawTotal) / filamentRate; diff --git a/Release/RepRapFirmware-1.09sbeta4-dc42.bin b/Release/RepRapFirmware-1.09sbeta4-dc42.bin new file mode 100644 index 0000000000000000000000000000000000000000..109c4ddc0855638920b3fe8dabf59085550a0f4b GIT binary patch literal 240376 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 && ToolWarningsAllowed()) { - platform->MessageF(GENERIC_MESSAGE, "Warning: Tool %d was not driven because its heater temperatures were not high enough\n", t->myNumber); + platform->MessageF(GENERIC_MESSAGE, "Warning: Tool %d was not driven because its temperatures were not high enough or it has a heater fault\n", t->myNumber); } } @@ -1341,37 +1341,44 @@ void RepRap::SetName(const char* nm) network->SetHostname(myName); } -// Given that we want to extrude/etract the specified extruder drives, check if they are allowed. +// Given that we want to extrude/retract the specified extruder drives, check if they are allowed. // For each disallowed one, log an error to report later and return a bit in the bitmap. // This may be called by an ISR! unsigned int RepRap::GetProhibitedExtruderMovements(unsigned int extrusions, unsigned int retractions) { - unsigned int result = 0; - Tool *tool = toolList; - while (tool != nullptr) + if (GetHeat()->ColdExtrude()) { - for (size_t driveNum = 0; driveNum < tool->DriveCount(); driveNum++) + return 0; + } + + Tool *tool = currentTool; + if (tool == nullptr) + { + // This should not happen, but if on tool is selected then don't allow any extruder movement + return extrusions | retractions; + } + + unsigned int result = 0; + for (size_t driveNum = 0; driveNum < tool->DriveCount(); driveNum++) + { + const unsigned int extruderDrive = (unsigned int)(tool->Drive(driveNum)); + const unsigned int mask = 1 << extruderDrive; + if (extrusions & mask) { - const int extruderDrive = tool->Drive(driveNum); - unsigned int mask = 1 << extruderDrive; - if (extrusions & mask) + if (!tool->ToolCanDrive(true)) { - if (!tool->ToolCanDrive(true)) - { - result |= mask; - } - } - else if (retractions & (1 << extruderDrive)) - { - if (!tool->ToolCanDrive(false)) - { - result |= mask; - } + result |= mask; + } + } + else if (retractions & mask) + { + if (!tool->ToolCanDrive(false)) + { + result |= mask; } } - - tool = tool->Next(); } + return result; } diff --git a/Tool.cpp b/Tool.cpp index 99b98f4..3de3c3c 100644 --- a/Tool.cpp +++ b/Tool.cpp @@ -1,43 +1,45 @@ /**************************************************************************************************** -RepRapFirmware - Tool + RepRapFirmware - Tool -This class implements a tool in the RepRap machine, usually (though not necessarily) an extruder. + This class implements a tool in the RepRap machine, usually (though not necessarily) an extruder. -Tools may have zero or more drives associated with them and zero or more heaters. There are a fixed number -of tools in a given RepRap, with fixed heaters and drives. All this is specified on reboot, and cannot -be altered dynamically. This restriction may be lifted in the future. Tool descriptions are stored in -GCode macros that are loaded on reboot. + Tools may have zero or more drives associated with them and zero or more heaters. There are a fixed number + of tools in a given RepRap, with fixed heaters and drives. All this is specified on reboot, and cannot + be altered dynamically. This restriction may be lifted in the future. Tool descriptions are stored in + GCode macros that are loaded on reboot. ------------------------------------------------------------------------------------------------------ + ----------------------------------------------------------------------------------------------------- -Version 0.1 + Version 0.1 -Created on: Apr 11, 2014 + Created on: Apr 11, 2014 -Adrian Bowyer -RepRap Professional Ltd -http://reprappro.com + Adrian Bowyer + RepRap Professional Ltd + http://reprappro.com -Licence: GPL + Licence: GPL -****************************************************************************************************/ + ****************************************************************************************************/ #include "RepRapFirmware.h" Tool * Tool::freelist = nullptr; -/*static*/ Tool * Tool::Create(int toolNumber, long d[], size_t dCount, long h[], size_t hCount) +/*static*/Tool * Tool::Create(int toolNumber, long d[], size_t dCount, long h[], size_t hCount) { if (dCount > DRIVES - AXES) { - reprap.GetPlatform()->Message(GENERIC_MESSAGE, "Error: Tool creation: attempt to use more drives than there are in the RepRap"); + reprap.GetPlatform()->Message(GENERIC_MESSAGE, + "Error: Tool creation: attempt to use more drives than there are in the RepRap"); return nullptr; } if (hCount > HEATERS) { - reprap.GetPlatform()->Message(GENERIC_MESSAGE, "Error: Tool creation: attempt to use more heaters than there are in the RepRap"); + reprap.GetPlatform()->Message(GENERIC_MESSAGE, + "Error: Tool creation: attempt to use more heaters than there are in the RepRap"); return nullptr; } @@ -61,14 +63,14 @@ Tool * Tool::freelist = nullptr; t->mixing = false; t->displayColdExtrudeWarning = false; - for(size_t axis = 0; axis < AXES; axis++) + for (size_t axis = 0; axis < AXES; axis++) { t->offset[axis] = 0.0; } if (t->driveCount > 0) { - float r = 1.0/(float)(t->driveCount); + float r = 1.0 / (float) (t->driveCount); for (size_t drive = 0; drive < t->driveCount; drive++) { @@ -79,7 +81,7 @@ Tool * Tool::freelist = nullptr; if (t->heaterCount > 0) { - for(size_t heater = 0; heater < t->heaterCount; heater++) + for (size_t heater = 0; heater < t->heaterCount; heater++) { t->heaters[heater] = h[heater]; t->activeTemperatures[heater] = ABS_ZERO; @@ -90,7 +92,7 @@ Tool * Tool::freelist = nullptr; return t; } -/*static*/ void Tool::Delete(Tool *t) +/*static*/void Tool::Delete(Tool *t) { if (t != nullptr) { @@ -116,12 +118,11 @@ void Tool::Print(StringRef& reply) comma = ','; for (size_t heater = 0; heater < heaterCount; heater++) { - if (heater >= heaterCount - 1) - { - comma = ';'; - } - reply.catf("%d (%.1f/%.1f)%c", heaters[heater], - activeTemperatures[heater], standbyTemperatures[heater], comma); + if (heater >= heaterCount - 1) + { + comma = ';'; + } + reply.catf("%d (%.1f/%.1f)%c", heaters[heater], activeTemperatures[heater], standbyTemperatures[heater], comma); } reply.catf(" status: %s", active ? "selected" : "standby"); @@ -131,7 +132,8 @@ float Tool::MaxFeedrate() const { if (driveCount <= 0) { - reprap.GetPlatform()->Message(GENERIC_MESSAGE, "Error: Attempt to get maximum feedrate for a tool with no drives.\n"); + reprap.GetPlatform()->Message(GENERIC_MESSAGE, + "Error: Attempt to get maximum feedrate for a tool with no drives.\n"); return 1.0; } float result = 0.0; @@ -173,7 +175,7 @@ float Tool::InstantDv() const void Tool::FlagTemperatureFault(int8_t heater) { Tool* n = this; - while(n != nullptr) + while (n != nullptr) { n->SetTemperatureFault(heater); n = n->Next(); @@ -183,7 +185,7 @@ void Tool::FlagTemperatureFault(int8_t heater) void Tool::ClearTemperatureFault(int8_t heater) { Tool* n = this; - while(n != nullptr) + while (n != nullptr) { n->ResetTemperatureFault(heater); n = n->Next(); @@ -194,7 +196,7 @@ void Tool::SetTemperatureFault(int8_t dudHeater) { for (size_t heater = 0; heater < heaterCount; heater++) { - if(dudHeater == heaters[heater]) + if (dudHeater == heaters[heater]) { heaterFault = true; return; @@ -269,12 +271,12 @@ void Tool::SetVariables(const float* standby, const float* active) } else { - if (active[heater] < BAD_HIGH_TEMPERATURE) + if (active[heater] < reprap.GetPlatform()->GetTemperatureLimit()) { activeTemperatures[heater] = active[heater]; reprap.GetHeat()->SetActiveTemperature(heaters[heater], activeTemperatures[heater]); } - if (standby[heater] < BAD_HIGH_TEMPERATURE) + if (standby[heater] < reprap.GetPlatform()->GetTemperatureLimit()) { standbyTemperatures[heater] = standby[heater]; reprap.GetHeat()->SetStandbyTemperature(heaters[heater], standbyTemperatures[heater]); @@ -295,11 +297,10 @@ void Tool::GetVariables(float* standby, float* active) const // May be called from ISR bool Tool::ToolCanDrive(bool extrude) { - if (heaterFault) - return false; - - if (reprap.GetHeat()->ColdExtrude() || AllHeatersAtHighTemperature(extrude)) + if (!heaterFault && AllHeatersAtHighTemperature(extrude)) + { return true; + } displayColdExtrudeWarning = true; return false; diff --git a/Webserver.cpp b/Webserver.cpp index 149cf7d..f71db6e 100644 --- a/Webserver.cpp +++ b/Webserver.cpp @@ -96,8 +96,8 @@ //*************************************************************************************************** -static const char* overflowResponse = "overflow"; -static const char* badEscapeResponse = "bad escape"; +const char* overflowResponse = "overflow"; +const char* badEscapeResponse = "bad escape"; //********************************************************************************************