diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2017-04-11 11:37:09 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2017-04-11 11:42:55 -0400 |
commit | 7b03b04c786863bc32d3b790862857061f71f072 (patch) | |
tree | 4396da5121caf1f7f6e5072115a4ddff345fa476 /klippy/extruder.py | |
parent | 7a7b98cc31dff8cb7f1a6a1ab886362a0802be66 (diff) | |
download | kutter-7b03b04c786863bc32d3b790862857061f71f072.tar.gz kutter-7b03b04c786863bc32d3b790862857061f71f072.tar.xz kutter-7b03b04c786863bc32d3b790862857061f71f072.zip |
klippy: Support minimum/maximum value checks on configuration variables
Verify that numeric parameters are in a sane range when reading the
config.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extruder.py')
-rw-r--r-- | klippy/extruder.py | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/klippy/extruder.py b/klippy/extruder.py index 24153e0f..ee46bead 100644 --- a/klippy/extruder.py +++ b/klippy/extruder.py @@ -13,26 +13,32 @@ class PrinterExtruder: self.config = config self.heater = heater.PrinterHeater(printer, config) self.stepper = stepper.PrinterStepper(printer, config, 'extruder') - self.nozzle_diameter = config.getfloat('nozzle_diameter') - filament_diameter = config.getfloat('filament_diameter') + self.nozzle_diameter = config.getfloat('nozzle_diameter', above=0.) + filament_diameter = config.getfloat( + 'filament_diameter', minval=self.nozzle_diameter) filament_area = math.pi * (filament_diameter * .5)**2 max_cross_section = config.getfloat( - 'max_extrude_cross_section', 4. * self.nozzle_diameter**2) + 'max_extrude_cross_section', 4. * self.nozzle_diameter**2 + , above=0.) self.max_extrude_ratio = max_cross_section / filament_area - self.max_e_dist = config.getfloat('max_extrude_only_distance', 50.) + self.max_e_dist = config.getfloat( + 'max_extrude_only_distance', 50., minval=0.) self.max_e_velocity = self.max_e_accel = None - self.pressure_advance = config.getfloat('pressure_advance', 0.) + self.pressure_advance = config.getfloat( + 'pressure_advance', 0., minval=0.) self.pressure_advance_lookahead_time = 0. if self.pressure_advance: self.pressure_advance_lookahead_time = config.getfloat( - 'pressure_advance_lookahead_time', 0.010) + 'pressure_advance_lookahead_time', 0.010, minval=0.) self.need_motor_enable = True self.extrude_pos = 0. def set_max_jerk(self, max_xy_halt_velocity, max_velocity, max_accel): self.max_e_velocity = self.config.getfloat( - 'max_extrude_only_velocity', max_velocity * self.max_extrude_ratio) + 'max_extrude_only_velocity', max_velocity * self.max_extrude_ratio + , above=0.) self.max_e_accel = self.config.getfloat( - 'max_extrude_only_accel', max_accel * self.max_extrude_ratio) + 'max_extrude_only_accel', max_accel * self.max_extrude_ratio + , above=0.) self.stepper.set_max_jerk(9999999.9, 9999999.9) def motor_off(self, move_time): self.stepper.motor_enable(move_time, 0) |