From 91efcc4e484390dec4da882909db88aefd4f6675 Mon Sep 17 00:00:00 2001 From: Adrian Bowyer Date: Fri, 6 Dec 2013 20:56:08 +0000 Subject: [PATCH] M82 changed so that it reports steps/mm when given no arguments. --- GCodes.cpp | 22 +++++++++++++++++++++- Platform.cpp | 3 ++- Platform.h | 7 +++++++ Release/RepRapFirmware.bin | Bin 167308 -> 167484 bytes 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/GCodes.cpp b/GCodes.cpp index 4f20928..e9247a4 100644 --- a/GCodes.cpp +++ b/GCodes.cpp @@ -1130,6 +1130,7 @@ bool GCodes::ActOnGcode(GCodeBuffer *gb) bool result = true; bool error = false; bool resend = false; + bool seen; char reply[STRING_LENGTH]; reply[0] = 0; @@ -1292,10 +1293,18 @@ bool GCodes::ActOnGcode(GCodeBuffer *gb) case 85: // Set inactive time break; - case 92: // Set steps/mm for some axes + case 92: // Set/report steps/mm for some axes + seen = false; for(int8_t drive = 0; drive < DRIVES; drive++) if(gb->Seen(gCodeLetters[drive])) + { platform->SetDriveStepsPerUnit(drive, gb->GetFValue()); + seen = true; + } + if(!seen) + snprintf(reply, STRING_LENGTH, "Steps/mm: X: %d, Y: %d, Z: %d, E: %d", + (int)platform->DriveStepsPerUnit(X_AXIS), (int)platform->DriveStepsPerUnit(Y_AXIS), + (int)platform->DriveStepsPerUnit(Z_AXIS), (int)platform->DriveStepsPerUnit(AXES)); // FIXME - needs to do multiple extruders break; case 104: // Depricated @@ -1550,6 +1559,17 @@ bool GCodes::ActOnGcode(GCodeBuffer *gb) reprap.GetMove()->SetIdentityTransform(); break; + case 876: // TEMPORARY - this will go away... + if(gb->Seen('P')) + { + iValue = gb->GetIValue(); + if(iValue != 1) + platform->SetHeatOn(0); + else + platform->SetHeatOn(1); + } + break; + case 906: // Set Motor currents for(uint8_t i = 0; i < DRIVES; i++) { diff --git a/Platform.cpp b/Platform.cpp index 6d68129..811c834 100644 --- a/Platform.cpp +++ b/Platform.cpp @@ -131,6 +131,7 @@ void Platform::Init() standbyTemperatures = STANDBY_TEMPERATURES; activeTemperatures = ACTIVE_TEMPERATURES; coolingFanPin = COOLING_FAN_PIN; + turnHeatOn = HEAT_ON; webDir = WEB_DIR; gcodeDir = GCODE_DIR; @@ -333,7 +334,7 @@ void Platform::SetHeater(int8_t heater, const float& power) return; byte p = (byte)(255.0*fmin(1.0, fmax(0.0, power))); - if(HEAT_ON == 0) + if(turnHeatOn == 0) p = 255 - p; if(heater == 0) analogWrite(heatOnPins[heater], p); diff --git a/Platform.h b/Platform.h index a69cd8f..0dcd9d1 100644 --- a/Platform.h +++ b/Platform.h @@ -491,6 +491,7 @@ class Platform bool UsePID(int8_t heater); float HeatSampleTime(); void CoolingFan(float speed); + void SetHeatOn(int8_t ho); //TEMPORARY - this will go away... //------------------------------------------------------------------------------------------------------- protected: @@ -569,6 +570,7 @@ class Platform float standbyTemperatures[HEATERS]; float activeTemperatures[HEATERS]; int8_t coolingFanPin; + int8_t turnHeatOn; // Serial/USB @@ -892,6 +894,11 @@ inline void Platform::CoolingFan(float speed) analogWrite(coolingFanPin, (uint8_t)(speed*255.0)); } +inline void Platform::SetHeatOn(int8_t ho) +{ + turnHeatOn = ho; +} + //********************************************************************************************************* diff --git a/Release/RepRapFirmware.bin b/Release/RepRapFirmware.bin index b73c1d4d6d4d174fd16c3031574e00f121a0bc86..1de76faaf9b9a469ab95f630c8fe98ecefed0ddf 100755 GIT binary patch delta 23252 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 delta 23035 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

O_C?Im;SD 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