diff options
author | David Crocker <dcrocker@eschertech.com> | 2020-02-25 14:33:11 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2020-02-25 14:33:11 +0300 |
commit | e05e1148325a61addb35ba1fbfb7524b0cd8e398 (patch) | |
tree | 4fb01d37c2adab24515e89f949ff3f7be0c65ec7 /src/FilamentMonitors | |
parent | daa58d8e11d5dfe24863f654683ea8e2f4cdc7ef (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.cpp | 25 | ||||
-rw-r--r-- | src/FilamentMonitors/RotatingMagnetFilamentMonitor.cpp | 27 |
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) |