From: Josef Gajdusek Date: Fri, 17 Aug 2018 14:35:50 +0000 (+0200) Subject: spi: Create the out_bitrate annotation unconditionally X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commitdiff_plain;h=f04db50ab7bbc59b7668396500b92ae2d3418f0e;hp=a27981c145cd9a3709673339dc455f3a0d5c3745;ds=sidebyside spi: Create the out_bitrate annotation unconditionally The start() method is called before the metadata() method, which results in the the out_bitrate instance variable never getting created and ending up as an AttributeError when decoding. (observed with sigrok-cli and VCD file as the input) --- diff --git a/decoders/spi/pd.py b/decoders/spi/pd.py index 9beb4e6..85bb1cb 100644 --- a/decoders/spi/pd.py +++ b/decoders/spi/pd.py @@ -137,19 +137,18 @@ class Decoder(srd.Decoder): self.cs_was_deasserted = False self.have_cs = self.have_miso = self.have_mosi = None - def metadata(self, key, value): - if key == srd.SRD_CONF_SAMPLERATE: - self.samplerate = value - def start(self): self.out_python = self.register(srd.OUTPUT_PYTHON) self.out_ann = self.register(srd.OUTPUT_ANN) self.out_binary = self.register(srd.OUTPUT_BINARY) - if self.samplerate: - self.out_bitrate = self.register(srd.OUTPUT_META, - meta=(int, 'Bitrate', 'Bitrate during transfers')) + self.out_bitrate = self.register(srd.OUTPUT_META, + meta=(int, 'Bitrate', 'Bitrate during transfers')) self.bw = (self.options['wordsize'] + 7) // 8 + def metadata(self, key, value): + if key == srd.SRD_CONF_SAMPLERATE: + self.samplerate = value + def putw(self, data): self.put(self.ss_block, self.samplenum, self.out_ann, data)