aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-07-24 14:05:35 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-07-24 14:05:35 -0400
commit270080cd4c771abcd0d8b378a7e71331faeefb7e (patch)
tree8895f9504281c1c81c80ffaa365e4da380d22aff /klippy
parentc0bf4327fd77ec97eaba7d51d74aa3380b6bf209 (diff)
downloadkutter-270080cd4c771abcd0d8b378a7e71331faeefb7e.tar.gz
kutter-270080cd4c771abcd0d8b378a7e71331faeefb7e.tar.xz
kutter-270080cd4c771abcd0d8b378a7e71331faeefb7e.zip
spi_temperature: Remove non-spi flags from SensorBase
The SensorBase class is used exclusively for SPI transfers, so no need to track non-spi settings. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy')
-rw-r--r--klippy/extras/spi_temperature.py80
1 files changed, 30 insertions, 50 deletions
diff --git a/klippy/extras/spi_temperature.py b/klippy/extras/spi_temperature.py
index a020f3e4..3e465f22 100644
--- a/klippy/extras/spi_temperature.py
+++ b/klippy/extras/spi_temperature.py
@@ -10,9 +10,7 @@ import math
# SensorBase
######################################################################
-SAMPLE_TIME_DEFAULT = 0.001
-SAMPLE_COUNT_DEFAULT = 8
-REPORT_TIME_DEFAULT = 0.300
+REPORT_TIME = 0.300
VALID_SPI_SENSORS = {
'MAX31855' : 1,
@@ -24,18 +22,9 @@ VALID_SPI_SENSORS = {
class error(Exception):
pass
-class SensorBase(object):
+class SensorBase:
error = error
- def __init__(self,
- config,
- is_spi = False,
- sample_time = SAMPLE_TIME_DEFAULT,
- sample_count = SAMPLE_COUNT_DEFAULT,
- report_time = REPORT_TIME_DEFAULT):
- self.is_spi = is_spi
- self.sample_time = sample_time
- self.sample_count = sample_count
- self.report_time = report_time
+ def __init__(self, config):
self.min_temp = config.getfloat('min_temp', minval=0., default=0.)
self.max_temp = config.getfloat('max_temp', above=self.min_temp)
self._callback = None
@@ -46,46 +35,37 @@ class SensorBase(object):
self.max_sample_value = max(adc_range)
self._report_clock = 0
ppins = config.get_printer().lookup_object('pins')
- if is_spi:
- pin_params = ppins.lookup_pin('digital_out', sensor_pin)
- self.mcu = mcu = pin_params['chip']
- pin = pin_params['pin']
- # SPI bus configuration
- spi_oid = mcu.create_oid()
- spi_mode = config.getint('spi_mode', minval=0, maxval=3)
- spi_speed = config.getint('spi_speed', minval=0)
- mcu.add_config_cmd(
- "config_spi oid=%u bus=%u pin=%s"
- " mode=%u rate=%u shutdown_msg=" % (
- spi_oid, 0, pin, spi_mode, spi_speed))
- config_cmd = "".join("%02x" % b for b in self.get_configs())
- mcu.add_config_cmd("spi_send oid=%u data=%s" % (
- spi_oid, config_cmd), is_init=True)
- # Reader chip configuration
- self.oid = oid = mcu.create_oid()
- mcu.add_config_cmd(
- "config_thermocouple oid=%u spi_oid=%u chip_type=%u" % (
- oid, spi_oid, VALID_SPI_SENSORS[self.chip_type]))
- mcu.register_msg(self._handle_spi_response,
- "thermocouple_result", oid)
- mcu.add_config_object(self)
- else:
- self.mcu = ppins.setup_pin('adc', sensor_pin)
- self.mcu.setup_minmax(
- sample_time, sample_count,
- minval=min(adc_range), maxval=max(adc_range))
+ pin_params = ppins.lookup_pin('digital_out', sensor_pin)
+ self.mcu = mcu = pin_params['chip']
+ pin = pin_params['pin']
+ # SPI bus configuration
+ spi_oid = mcu.create_oid()
+ spi_mode = config.getint('spi_mode', minval=0, maxval=3)
+ spi_speed = config.getint('spi_speed', minval=0)
+ mcu.add_config_cmd(
+ "config_spi oid=%u bus=%u pin=%s"
+ " mode=%u rate=%u shutdown_msg=" % (
+ spi_oid, 0, pin, spi_mode, spi_speed))
+ config_cmd = "".join("%02x" % b for b in self.get_configs())
+ mcu.add_config_cmd("spi_send oid=%u data=%s" % (
+ spi_oid, config_cmd), is_init=True)
+ # Reader chip configuration
+ self.oid = oid = mcu.create_oid()
+ mcu.add_config_cmd(
+ "config_thermocouple oid=%u spi_oid=%u chip_type=%u" % (
+ oid, spi_oid, VALID_SPI_SENSORS[self.chip_type]))
+ mcu.register_msg(self._handle_spi_response,
+ "thermocouple_result", oid)
+ mcu.add_config_object(self)
def setup_minmax(self, min_temp, max_temp):
pass
def setup_callback(self, cb):
- if self.is_spi:
- self._callback = cb
- else:
- self.mcu.setup_callback(self.report_time, cb)
+ self._callback = cb
def get_report_time_delta(self):
- return self.report_time
+ return REPORT_TIME
def build_config(self):
clock = self.mcu.get_query_slot(self.oid)
- self._report_clock = self.mcu.seconds_to_clock(self.report_time)
+ self._report_clock = self.mcu.seconds_to_clock(REPORT_TIME)
self.mcu.add_config_cmd(
"query_thermocouple oid=%u clock=%u rest_ticks=%u"
" min_value=%u max_value=%u" % (
@@ -187,7 +167,7 @@ class Thermocouple(SensorBase):
else:
self.val_a = 0.25
self.scale = 18
- SensorBase.__init__(self, config, is_spi = True, sample_count = 1)
+ SensorBase.__init__(self, config)
def _check_faults_simple(self, val):
if self.chip_type == "MAX6675":
if val & 0x02:
@@ -295,7 +275,7 @@ class RTD(SensorBase):
self.reference_r = config.getfloat('rtd_reference_r', 430., above=0.)
self.num_wires = config.getint('rtd_num_of_wires', 2)
self.use_50Hz_filter = config.getboolean('rtd_use_50Hz_filter', False)
- SensorBase.__init__(self, config, is_spi = True, sample_count = 1)
+ SensorBase.__init__(self, config)
def check_faults(self, fault):
if fault & 0x80:
raise self.error("Max31865 RTD input is disconnected")