]> sigrok.org Git - libsigrokdecode.git/commitdiff
uart: Emit 2 bytes for 9-bit UART binary output.
authorUwe Hermann <redacted>
Fri, 23 Sep 2016 20:19:57 +0000 (22:19 +0200)
committerUwe Hermann <redacted>
Sun, 23 Oct 2016 19:48:09 +0000 (21:48 +0200)
For 5..8 data bits the binary output will be 1 byte, for 9 data bits
it will be 2 bytes (big-endian).

This fixes bug #708.

decoders/uart/pd.py

index 093f3fca92ac04339aecfcce4d5087b58bf99847..6bba65306c6e022b2162e5b4480c96424d43108b 100644 (file)
@@ -179,6 +179,7 @@ class Decoder(srd.Decoder):
         self.out_python = self.register(srd.OUTPUT_PYTHON)
         self.out_binary = self.register(srd.OUTPUT_BINARY)
         self.out_ann = self.register(srd.OUTPUT_ANN)
+        self.bw = (self.options['num_data_bits'] + 7) // 8
 
     def metadata(self, key, value):
         if key == srd.SRD_CONF_SAMPLERATE:
@@ -279,8 +280,9 @@ class Decoder(srd.Decoder):
         if formatted is not None:
             self.putx(rxtx, [rxtx, [formatted]])
 
-        self.putbin(rxtx, [rxtx, bytes([b])])
-        self.putbin(rxtx, [2, bytes([b])])
+        bdata = b.to_bytes(self.bw, byteorder='big')
+        self.putbin(rxtx, [rxtx, bdata])
+        self.putbin(rxtx, [2, bdata])
 
         self.databits[rxtx] = []