Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2020-02-25 14:33:11 +0300
committerDavid Crocker <dcrocker@eschertech.com>2020-02-25 14:33:11 +0300
commite05e1148325a61addb35ba1fbfb7524b0cd8e398 (patch)
tree4fb01d37c2adab24515e89f949ff3f7be0c65ec7 /src/FilamentMonitors
parentdaa58d8e11d5dfe24863f654683ea8e2f4cdc7ef (diff)
3.01-RC3 provisonal
Emergency Stop now stops expansion boards and tool boards Simplified fan configuration code (thanks wilriker) Reset line number when starting a new GCode file G4 no longer waits for motion to stop if no motion was commanded by the same channel When a GCode source is waiting for motion to stop, start executing queued moves immediately Wait until config processing has finished before starting daemon task Implemented filamentPresent OM propert for laser and rotating magnet filament monitors that are configured with a switch Implemented runonce.g file Implemented filament OM property in tool and extruder objects Fixes for building Duet 2 config with TMC2660 support disabled
Diffstat (limited to 'src/FilamentMonitors')
-rw-r--r--src/FilamentMonitors/LaserFilamentMonitor.cpp25
-rw-r--r--src/FilamentMonitors/RotatingMagnetFilamentMonitor.cpp27
2 files changed, 27 insertions, 25 deletions
diff --git a/src/FilamentMonitors/LaserFilamentMonitor.cpp b/src/FilamentMonitors/LaserFilamentMonitor.cpp
index 96a2394b..0af69841 100644
--- a/src/FilamentMonitors/LaserFilamentMonitor.cpp
+++ b/src/FilamentMonitors/LaserFilamentMonitor.cpp
@@ -30,24 +30,25 @@ constexpr ObjectModelTableEntry LaserFilamentMonitor::objectModelTable[] =
{
// Within each group, these entries must be in alphabetical order
// 0. LaserFilamentMonitor members
- { "calibrated", OBJECT_MODEL_FUNC_IF(self->dataReceived && self->HaveCalibrationData(), self, 1), ObjectModelEntryFlags::none },
- { "configured", OBJECT_MODEL_FUNC(self, 2), ObjectModelEntryFlags::none },
- { "enabled", OBJECT_MODEL_FUNC(self->comparisonEnabled), ObjectModelEntryFlags::none },
- { "type", OBJECT_MODEL_FUNC_NOSELF("laser"), ObjectModelEntryFlags::none },
+ { "calibrated", OBJECT_MODEL_FUNC_IF(self->dataReceived && self->HaveCalibrationData(), self, 1), ObjectModelEntryFlags::none },
+ { "configured", OBJECT_MODEL_FUNC(self, 2), ObjectModelEntryFlags::none },
+ { "enabled", OBJECT_MODEL_FUNC(self->comparisonEnabled), ObjectModelEntryFlags::none },
+ { "filamentPresent", OBJECT_MODEL_FUNC_IF(self->switchOpenMask != 0, (self->sensorValue & self->switchOpenMask) == 0), ObjectModelEntryFlags::live },
+ { "type", OBJECT_MODEL_FUNC_NOSELF("laser"), ObjectModelEntryFlags::none },
// 1. LaserFilamentMonitor.calibrated members
- { "percentMax", OBJECT_MODEL_FUNC(ConvertToPercent(self->maxMovementRatio)), ObjectModelEntryFlags::none },
- { "percentMin", OBJECT_MODEL_FUNC(ConvertToPercent(self->minMovementRatio)), ObjectModelEntryFlags::none },
- { "sensitivity", OBJECT_MODEL_FUNC(ConvertToPercent(self->MeasuredSensitivity())), ObjectModelEntryFlags::none },
- { "totalDistance", OBJECT_MODEL_FUNC(self->totalExtrusionCommanded, 1), ObjectModelEntryFlags::none },
+ { "percentMax", OBJECT_MODEL_FUNC(ConvertToPercent(self->maxMovementRatio)), ObjectModelEntryFlags::none },
+ { "percentMin", OBJECT_MODEL_FUNC(ConvertToPercent(self->minMovementRatio)), ObjectModelEntryFlags::none },
+ { "sensitivity", OBJECT_MODEL_FUNC(ConvertToPercent(self->MeasuredSensitivity())), ObjectModelEntryFlags::none },
+ { "totalDistance", OBJECT_MODEL_FUNC(self->totalExtrusionCommanded, 1), ObjectModelEntryFlags::none },
// 2. LaserFilamentMonitor.configured members
- { "percentMax", OBJECT_MODEL_FUNC(ConvertToPercent(self->maxMovementAllowed)), ObjectModelEntryFlags::none },
- { "percentMin", OBJECT_MODEL_FUNC(ConvertToPercent(self->minMovementAllowed)), ObjectModelEntryFlags::none },
- { "sampleDistance", OBJECT_MODEL_FUNC(self->minimumExtrusionCheckLength, 1), ObjectModelEntryFlags::none },
+ { "percentMax", OBJECT_MODEL_FUNC(ConvertToPercent(self->maxMovementAllowed)), ObjectModelEntryFlags::none },
+ { "percentMin", OBJECT_MODEL_FUNC(ConvertToPercent(self->minMovementAllowed)), ObjectModelEntryFlags::none },
+ { "sampleDistance", OBJECT_MODEL_FUNC(self->minimumExtrusionCheckLength, 1), ObjectModelEntryFlags::none },
};
-constexpr uint8_t LaserFilamentMonitor::objectModelTableDescriptor[] = { 3, 4, 4, 3 };
+constexpr uint8_t LaserFilamentMonitor::objectModelTableDescriptor[] = { 3, 5, 4, 3 };
DEFINE_GET_OBJECT_MODEL_TABLE(LaserFilamentMonitor)
diff --git a/src/FilamentMonitors/RotatingMagnetFilamentMonitor.cpp b/src/FilamentMonitors/RotatingMagnetFilamentMonitor.cpp
index 0b183c88..32a34698 100644
--- a/src/FilamentMonitors/RotatingMagnetFilamentMonitor.cpp
+++ b/src/FilamentMonitors/RotatingMagnetFilamentMonitor.cpp
@@ -30,25 +30,26 @@ constexpr ObjectModelTableEntry RotatingMagnetFilamentMonitor::objectModelTable[
{
// Within each group, these entries must be in alphabetical order
// 0. RotatingMagnetFilamentMonitor members
- { "calibrated", OBJECT_MODEL_FUNC_IF(self->dataReceived && self->HaveCalibrationData(), self, 1), ObjectModelEntryFlags::none },
- { "configured", OBJECT_MODEL_FUNC(self, 2), ObjectModelEntryFlags::none },
- { "enabled", OBJECT_MODEL_FUNC(self->comparisonEnabled), ObjectModelEntryFlags::none },
- { "type", OBJECT_MODEL_FUNC_NOSELF("rotatingMagnet"), ObjectModelEntryFlags::none },
+ { "calibrated", OBJECT_MODEL_FUNC_IF(self->dataReceived && self->HaveCalibrationData(), self, 1), ObjectModelEntryFlags::none },
+ { "configured", OBJECT_MODEL_FUNC(self, 2), ObjectModelEntryFlags::none },
+ { "enabled", OBJECT_MODEL_FUNC(self->comparisonEnabled), ObjectModelEntryFlags::none },
+ { "filamentPresent", OBJECT_MODEL_FUNC_IF(self->switchOpenMask != 0, (self->sensorValue & self->switchOpenMask) == 0), ObjectModelEntryFlags::live },
+ { "type", OBJECT_MODEL_FUNC_NOSELF("rotatingMagnet"), ObjectModelEntryFlags::none },
// 1. RotatingMagnetFilamentMonitor.calibrated members
- { "mmPerRev", OBJECT_MODEL_FUNC(self->MeasuredSensitivity(), 2), ObjectModelEntryFlags::none },
- { "percentMax", OBJECT_MODEL_FUNC(ConvertToPercent(self->maxMovementRatio * self->MeasuredSensitivity())), ObjectModelEntryFlags::none },
- { "percentMin", OBJECT_MODEL_FUNC(ConvertToPercent(self->minMovementRatio * self->MeasuredSensitivity())), ObjectModelEntryFlags::none },
- { "totalDistance", OBJECT_MODEL_FUNC(self->totalExtrusionCommanded, 1), ObjectModelEntryFlags::none },
+ { "mmPerRev", OBJECT_MODEL_FUNC(self->MeasuredSensitivity(), 2), ObjectModelEntryFlags::none },
+ { "percentMax", OBJECT_MODEL_FUNC(ConvertToPercent(self->maxMovementRatio * self->MeasuredSensitivity())), ObjectModelEntryFlags::none },
+ { "percentMin", OBJECT_MODEL_FUNC(ConvertToPercent(self->minMovementRatio * self->MeasuredSensitivity())), ObjectModelEntryFlags::none },
+ { "totalDistance", OBJECT_MODEL_FUNC(self->totalExtrusionCommanded, 1), ObjectModelEntryFlags::none },
// 2. RotatingMagnetFilamentMonitor.configured members
- { "mmPerRev", OBJECT_MODEL_FUNC(self->mmPerRev, 2), ObjectModelEntryFlags::none },
- { "percentMax", OBJECT_MODEL_FUNC(ConvertToPercent(self->maxMovementAllowed)), ObjectModelEntryFlags::none },
- { "percentMin", OBJECT_MODEL_FUNC(ConvertToPercent(self->minMovementAllowed)), ObjectModelEntryFlags::none },
- { "sampleDistance", OBJECT_MODEL_FUNC(self->minimumExtrusionCheckLength, 1), ObjectModelEntryFlags::none },
+ { "mmPerRev", OBJECT_MODEL_FUNC(self->mmPerRev, 2), ObjectModelEntryFlags::none },
+ { "percentMax", OBJECT_MODEL_FUNC(ConvertToPercent(self->maxMovementAllowed)), ObjectModelEntryFlags::none },
+ { "percentMin", OBJECT_MODEL_FUNC(ConvertToPercent(self->minMovementAllowed)), ObjectModelEntryFlags::none },
+ { "sampleDistance", OBJECT_MODEL_FUNC(self->minimumExtrusionCheckLength, 1), ObjectModelEntryFlags::none },
};
-constexpr uint8_t RotatingMagnetFilamentMonitor::objectModelTableDescriptor[] = { 3, 4, 4, 4 };
+constexpr uint8_t RotatingMagnetFilamentMonitor::objectModelTableDescriptor[] = { 3, 5, 4, 4 };
DEFINE_GET_OBJECT_MODEL_TABLE(RotatingMagnetFilamentMonitor)