]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoders/ds243x/pd.py
All PDs: Consistently use singular/plural for annotation classes/rows.
[libsigrokdecode.git] / decoders / ds243x / pd.py
index 0c515967bb2c8659ccf3638b3db6affd1dcc4fd0..0fbdcdf51ef33ec8b001e0efde94586c915b94cc 100644 (file)
@@ -64,16 +64,23 @@ class Decoder(srd.Decoder):
     api_version = 3
     id = 'ds243x'
     name = 'DS243x'
-    longname = 'Maxim DS2432/2433'
+    longname = 'Maxim DS2432/3'
     desc = 'Maxim DS243x series 1-Wire EEPROM protocol.'
     license = 'gplv2+'
     inputs = ['onewire_network']
-    outputs = ['ds243x']
+    outputs = []
+    tags = ['IC', 'Memory']
     annotations = (
-        ('text', 'Human-readable text'),
+        ('text', 'Text'),
+    )
+    binary = (
+        ('mem_read', 'Data read from memory'),
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         # Bytes for function command.
         self.bytes = []
         self.family_code = None
@@ -82,6 +89,7 @@ class Decoder(srd.Decoder):
 
     def start(self):
         self.out_ann = self.register(srd.OUTPUT_ANN)
+        self.out_binary = self.register(srd.OUTPUT_BINARY)
 
     def putx(self, data):
         self.put(self.ss, self.es, self.out_ann, data)
@@ -103,7 +111,7 @@ class Decoder(srd.Decoder):
                 self.family, self.commands = family_codes[val & 0xff]
                 s = 'is 0x%02x, %s detected' % (self.family_code, self.family)
             else:
-                s = '%x%02x unknown' % (self.family_code)
+                s = '0x%02x unknown' % (self.family_code)
 
             self.putx([0, ['ROM: 0x%016x (%s)' % (val, 'family code ' + s),
                            'ROM: 0x%016x (%s)' % (val, self.family)]])
@@ -257,3 +265,6 @@ class Decoder(srd.Decoder):
                 elif 3 < len(self.bytes):
                     self.ss, self.es = ss, es
                     self.putx([0, ['Data: 0x%02x' % (self.bytes[-1])]])
+
+                    bdata = self.bytes[-1].to_bytes(1, byteorder='big')
+                    self.put(ss, es, self.out_binary, [0, bdata])