diff options
author | Uwe Hermann <uwe@hermann-uwe.de> | 2014-10-16 09:35:27 +0200 |
---|---|---|
committer | Uwe Hermann <uwe@hermann-uwe.de> | 2014-10-16 11:37:13 +0200 |
commit | 7cf698c5475ac6948d7a9d5c2a6e4ec9cb878d84 (patch) | |
tree | 0929b5e10db8df4147b31623c6ef2d67c80fd9c1 /decoders | |
parent | bd6594c0cdae0a525e147c6e33e496ff87823d16 (diff) | |
download | libsigrokdecode-7cf698c5475ac6948d7a9d5c2a6e4ec9cb878d84.tar.gz libsigrokdecode-7cf698c5475ac6948d7a9d5c2a6e4ec9cb878d84.zip |
uart: Emit databyte and bits list at the same time.
This will allow for much simpler code in stacked PDs.
Adapt stacked PDs to new API.
Diffstat (limited to 'decoders')
-rw-r--r-- | decoders/midi/pd.py | 3 | ||||
-rw-r--r-- | decoders/pan1321/pd.py | 3 | ||||
-rw-r--r-- | decoders/uart/pd.py | 10 |
3 files changed, 11 insertions, 5 deletions
diff --git a/decoders/midi/pd.py b/decoders/midi/pd.py index 296cee4..5915976 100644 --- a/decoders/midi/pd.py +++ b/decoders/midi/pd.py @@ -175,6 +175,9 @@ class Decoder(srd.Decoder): self.ss, self.es = ss, es + # We're only interested in the byte value (not individual bits). + pdata = pdata[0] + # Short MIDI overview: # - Status bytes are 0x80-0xff, data bytes are 0x00-0x7f. # - Most messages: 1 status byte, 1-2 data bytes. diff --git a/decoders/pan1321/pd.py b/decoders/pan1321/pd.py index 60e7549..b70defc 100644 --- a/decoders/pan1321/pd.py +++ b/decoders/pan1321/pd.py @@ -136,6 +136,9 @@ class Decoder(srd.Decoder): if ptype != 'DATA': return + # We're only interested in the byte value (not individual bits). + pdata = pdata[0] + # If this is the start of a command/reply, remember the start sample. if self.cmd[rxtx] == '': self.ss_block = ss diff --git a/decoders/uart/pd.py b/decoders/uart/pd.py index b8508a7..c342243 100644 --- a/decoders/uart/pd.py +++ b/decoders/uart/pd.py @@ -28,9 +28,9 @@ Packet: This is the list of <ptype>s and their respective <pdata> values: - 'STARTBIT': The data is the (integer) value of the start bit (0/1). - - 'DATA': The data is the (integer) value of the UART data. Valid values - range from 0 to 512 (as the data can be up to 9 bits in size). - - 'DATABITS': List of data bits and their ss/es numbers. + - ('DATA', 'DATABITS'): DATA is the (integer) value of the UART data. Valid + values range from 0 to 512 (as the data can be up to 9 bits in size). + 'DATABITS' is the list of individual data bits and their ss/es numbers. - 'PARITYBIT': The data is the (integer) value of the parity bit (0/1). - 'STOPBIT': The data is the (integer) value of the stop bit (0 or 1). - 'INVALID STARTBIT': The data is the (integer) value of the start bit (0/1). @@ -263,8 +263,8 @@ class Decoder(srd.Decoder): self.state[rxtx] = 'GET PARITY BIT' - self.putpx(rxtx, ['DATABITS', rxtx, self.databits[rxtx]]) - self.putpx(rxtx, ['DATA', rxtx, self.databyte[rxtx]]) + self.putpx(rxtx, ['DATA', rxtx, + (self.databyte[rxtx], self.databits[rxtx])]) b, f = self.databyte[rxtx], self.options['format'] if f == 'ascii': |