]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoders/mlx90614/mlx90614.py
srd: maxim_ds28ea00: Cosmetics, cleanups.
[libsigrokdecode.git] / decoders / mlx90614 / mlx90614.py
index 235d70dc61b10b4d3fd83c9963eeb0c9e6205faf..1ee88d78509bad088f36254e1c4ab5b778beb350 100644 (file)
@@ -18,9 +18,7 @@
 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 ##
 
-#
 # Melexis MLX90614 Infrared Thermometer protocol decoder
-#
 
 import sigrokdecode as srd
 
@@ -29,13 +27,12 @@ class Decoder(srd.Decoder):
     id = 'mlx90614'
     name = 'MLX90614'
     longname = 'Melexis MLX90614'
-    desc = 'TODO.'
-    longdesc = 'TODO.'
+    desc = 'Infrared Thermometer protocol.'
     license = 'gplv2+'
     inputs = ['i2c']
     outputs = ['mlx90614']
     probes = []
-    extra_probes = []
+    optional_probes = []
     options = {}
     annotations = [
         ['Celsius', 'Temperature in degrees Celsius'],
@@ -58,7 +55,7 @@ class Decoder(srd.Decoder):
 
     # Quick hack implementation! This needs to be improved a lot!
     def decode(self, ss, es, data):
-        cmd, databyte, ack = data
+        cmd, databyte = data
 
         # State machine.
         if self.state == 'IGNORE START REPEAT':
@@ -70,11 +67,13 @@ class Decoder(srd.Decoder):
                 return
             self.state = 'GET TEMPERATURE'
         elif self.state == 'GET TEMPERATURE':
+            if cmd != 'DATA WRITE':
+                return
             if len(self.data) == 0:
-                self.data += [databyte]
+                self.data.append(databyte)
                 self.ss = ss
             elif len(self.data) == 1:
-                self.data += [databyte]
+                self.data.append(databyte)
                 self.es = es
             else:
                 kelvin = (self.data[0] | (self.data[1] << 8)) * 0.02