thermocouple: Define thermocouple types using enumerations

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2019-03-12 12:58:04 -04:00 committed by KevinOConnor
parent 618b374ae5
commit 0af89e4766
2 changed files with 13 additions and 17 deletions

View File

@ -7,12 +7,6 @@
import math
import bus
# Sensor types defined in the micro-controller code (thermocouple.c)
TS_CHIP_MAX31855 = 1 << 0
TS_CHIP_MAX31856 = 1 << 1
TS_CHIP_MAX31865 = 1 << 2
TS_CHIP_MAX6675 = 1 << 3
######################################################################
# SensorBase
@ -46,7 +40,7 @@ class SensorBase:
return REPORT_TIME
def _build_config(self):
self.mcu.add_config_cmd(
"config_thermocouple oid=%u spi_oid=%u chip_type=%u" % (
"config_thermocouple oid=%u spi_oid=%u thermocouple_type=%s" % (
self.oid, self.spi.get_oid(), self.chip_type))
clock = self.mcu.get_query_slot(self.oid)
self._report_clock = self.mcu.seconds_to_clock(REPORT_TIME)
@ -123,7 +117,7 @@ MAX31856_MULT = 0.0078125
class MAX31856(SensorBase):
def __init__(self, config):
SensorBase.__init__(self, config, TS_CHIP_MAX31856,
SensorBase.__init__(self, config, "MAX31856",
self.build_spi_init(config))
def calc_temp(self, adc, fault):
if fault & MAX31856_FAULT_CJRANGE:
@ -198,7 +192,7 @@ MAX31855_MULT = 0.25
class MAX31855(SensorBase):
def __init__(self, config):
SensorBase.__init__(self, config, TS_CHIP_MAX31855)
SensorBase.__init__(self, config, "MAX31855")
def calc_temp(self, adc, fault):
if adc & 0x1:
self.fault("MAX31855 : Open Circuit")
@ -227,7 +221,7 @@ MAX6675_MULT = 0.25
class MAX6675(SensorBase):
def __init__(self, config):
SensorBase.__init__(self, config, TS_CHIP_MAX6675)
SensorBase.__init__(self, config, "MAX6675")
def calc_temp(self, adc, fault):
if adc & 0x02:
self.fault("Max6675 : Device ID error")
@ -281,7 +275,7 @@ class MAX31865(SensorBase):
def __init__(self, config):
self.rtd_nominal_r = config.getint('rtd_nominal_r', 100)
self.reference_r = config.getfloat('rtd_reference_r', 430., above=0.)
SensorBase.__init__(self, config, TS_CHIP_MAX31865,
SensorBase.__init__(self, config, "MAX31865",
self.build_spi_init(config))
def calc_temp(self, adc, fault):
if fault & 0x80:

View File

@ -14,12 +14,14 @@
#include "spicmds.h" // spidev_transfer
enum {
TS_CHIP_MAX31855 = 1 << 0,
TS_CHIP_MAX31856 = 1 << 1,
TS_CHIP_MAX31865 = 1 << 2,
TS_CHIP_MAX6675 = 1 << 3
TS_CHIP_MAX31855, TS_CHIP_MAX31856, TS_CHIP_MAX31865, TS_CHIP_MAX6675
};
DECL_ENUMERATION("thermocouple_type", "MAX31855", TS_CHIP_MAX31855);
DECL_ENUMERATION("thermocouple_type", "MAX31856", TS_CHIP_MAX31856);
DECL_ENUMERATION("thermocouple_type", "MAX31865", TS_CHIP_MAX31865);
DECL_ENUMERATION("thermocouple_type", "MAX6675", TS_CHIP_MAX6675);
struct thermocouple_spi {
struct timer timer;
uint32_t rest_time;
@ -49,7 +51,7 @@ void
command_config_thermocouple(uint32_t *args)
{
uint8_t chip_type = args[2];
if (chip_type > TS_CHIP_MAX6675 || !chip_type)
if (chip_type > TS_CHIP_MAX6675)
shutdown("Invalid thermocouple chip type");
struct thermocouple_spi *spi = oid_alloc(
args[0], command_config_thermocouple, sizeof(*spi));
@ -58,7 +60,7 @@ command_config_thermocouple(uint32_t *args)
spi->chip_type = chip_type;
}
DECL_COMMAND(command_config_thermocouple,
"config_thermocouple oid=%c spi_oid=%c chip_type=%c");
"config_thermocouple oid=%c spi_oid=%c thermocouple_type=%c");
void
command_query_thermocouple(uint32_t *args)