fan: Minor updates to tachometer handling

Add new fields to Command_Templates.md.

Remove unused self.rpm variable.

Use an explicit get_frequency() method in keeping with Klipper's
convention of not "peeking into member variables".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2021-03-01 14:57:40 -05:00
parent 16d85d1a78
commit 4d3d25b1f7
3 changed files with 7 additions and 5 deletions

View File

@ -129,6 +129,10 @@ The following are common printer attributes:
This is also available on "heater_fan", "fan_generic", and This is also available on "heater_fan", "fan_generic", and
"controller_fan" config sections (eg, "controller_fan" config sections (eg,
`printer["fan_generic my_fan"].speed`). `printer["fan_generic my_fan"].speed`).
- `printer.fan.rpm`: The measured fan speed in rotations per minute if
the fan has a tachometer_pin defined. This is also available on
"heater_fan", "fan_generic", and "controller_fan" config sections
(eg, `printer["fan_generic my_fan"].rpm`).
- `printer.gcode_move.gcode_position`: The current position of the - `printer.gcode_move.gcode_position`: The current position of the
toolhead relative to the current G-Code origin. That is, positions toolhead relative to the current G-Code origin. That is, positions
that one might directly send to a `G1` command. It is possible to that one might directly send to a `G1` command. It is possible to

View File

@ -12,7 +12,6 @@ class Fan:
self.printer = config.get_printer() self.printer = config.get_printer()
self.last_fan_value = 0. self.last_fan_value = 0.
self.last_fan_time = 0. self.last_fan_time = 0.
self.rpm = None
# Read config # Read config
self.max_power = config.getfloat('max_power', 1., above=0., maxval=1.) self.max_power = config.getfloat('max_power', 1., above=0., maxval=1.)
self.kick_start_time = config.getfloat('kick_start_time', 0.1, self.kick_start_time = config.getfloat('kick_start_time', 0.1,
@ -84,8 +83,8 @@ class FanTachometer:
printer, pin, sample_time, poll_time) printer, pin, sample_time, poll_time)
def get_status(self, eventtime): def get_status(self, eventtime):
if self._freq_counter: if self._freq_counter is not None:
rpm = self._freq_counter.frequency * 30. / self.ppr rpm = self._freq_counter.get_frequency() * 30. / self.ppr
else: else:
rpm = None rpm = None
return {'rpm': rpm} return {'rpm': rpm}

View File

@ -74,6 +74,5 @@ class FrequencyCounter:
self._callback(time, self._freq) self._callback(time, self._freq)
self._last_count = count self._last_count = count
@property def get_frequency(self):
def frequency(self):
return self._freq return self._freq