X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=decoders%2Flm75%2Fpd.py;h=84cc26a01b952fe91aa1944510c8ef53babb9612;hp=a41c27be320b38303f1757eeb8333aaa6adc6ce8;hb=84c1c0b52820af2418186ac3ecf93a5c6373a22e;hpb=0309c15a6990f57fbbb27d6a77957b1282163f06 diff --git a/decoders/lm75/pd.py b/decoders/lm75/pd.py index a41c27b..84cc26a 100644 --- a/decoders/lm75/pd.py +++ b/decoders/lm75/pd.py @@ -18,8 +18,6 @@ ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ## -# National LM75 (and compatibles) temperature sensor protocol decoder - # TODO: Better support for various LM75 compatible devices. import sigrokdecode as srd @@ -53,20 +51,21 @@ class Decoder(srd.Decoder): probes = [] optional_probes = [ {'id': 'os', 'name': 'OS', 'desc': 'Overtemperature shutdown'}, - {'id': 'a0', 'name': 'A0', 'desc': 'I2C slave address input 0'}, - {'id': 'a1', 'name': 'A1', 'desc': 'I2C slave address input 1'}, - {'id': 'a2', 'name': 'A2', 'desc': 'I2C slave address input 2'}, + {'id': 'a0', 'name': 'A0', 'desc': 'I²C slave address input 0'}, + {'id': 'a1', 'name': 'A1', 'desc': 'I²C slave address input 1'}, + {'id': 'a2', 'name': 'A2', 'desc': 'I²C slave address input 2'}, ] - options = { - 'sensor': ['Sensor type', 'lm75'], - 'resolution': ['Resolution', 9], # 9-12 bit, sensor/config dependent - } + options = ( + {'id': 'sensor', 'desc': 'Sensor type', 'default': 'lm75'}, + {'id': 'resolution', 'desc': 'Resolution', 'default': 9, + 'values': (9, 10, 11, 12)}, + ) annotations = [ - ['Celsius', 'Temperature in degrees Celsius'], - ['Kelvin', 'Temperature in Kelvin'], - ['Text (verbose)', 'Human-readable text (verbose)'], - ['Text', 'Human-readable text'], - ['Warnings', 'Human-readable warnings'], + ['celsius', 'Temperature in degrees Celsius'], + ['kelvin', 'Temperature in Kelvin'], + ['text-verbose', 'Human-readable text (verbose)'], + ['text', 'Human-readable text'], + ['warnings', 'Human-readable warnings'], ] def __init__(self, **kwargs): @@ -75,23 +74,23 @@ class Decoder(srd.Decoder): self.databytes = [] def start(self): - # self.out_proto = self.register(srd.OUTPUT_PYTHON) + # self.out_python = self.register(srd.OUTPUT_PYTHON) self.out_ann = self.register(srd.OUTPUT_ANN) def putx(self, data): - # Helper for annotations which span exactly one I2C packet. + # Helper for annotations which span exactly one I²C packet. self.put(self.ss, self.es, self.out_ann, data) def putb(self, data): - # Helper for annotations which span a block of I2C packets. + # Helper for annotations which span a block of I²C packets. self.put(self.block_start, self.block_end, self.out_ann, data) def warn_upon_invalid_slave(self, addr): - # LM75 and compatible devices have a 7-bit I2C slave address where + # LM75 and compatible devices have a 7-bit I²C slave address where # the 4 MSBs are fixed to 1001, and the 3 LSBs are configurable. # Thus, valid slave addresses (1001xxx) range from 0x48 to 0x4f. if addr not in range(0x48, 0x4f + 1): - s = 'Warning: I2C slave 0x%02x not an LM75 compatible sensor.' + s = 'Warning: I²C slave 0x%02x not an LM75 compatible sensor.' self.putx([4, [s % addr]]) def output_temperature(self, s, rw): @@ -165,12 +164,12 @@ class Decoder(srd.Decoder): def decode(self, ss, es, data): cmd, databyte = data - # Store the start/end samples of this I2C packet. + # Store the start/end samples of this I²C packet. self.ss, self.es = ss, es # State machine. if self.state == 'IDLE': - # Wait for an I2C START condition. + # Wait for an I²C START condition. if cmd != 'START': return self.state = 'GET SLAVE ADDR'