X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=decoders%2Fcan%2Fpd.py;h=df2cbee7818c7d3f4938f76a44af5e44c61e92b1;hb=95d11271b46a46788d497481d03177e883c8554e;hp=51b7a72ce452326f09bcf3024cc494c9f2cf14d4;hpb=3a851e5c7ba119cea6e8604a3f3e7ac27c80f536;p=libsigrokdecode.git diff --git a/decoders/can/pd.py b/decoders/can/pd.py index 51b7a72..df2cbee 100644 --- a/decoders/can/pd.py +++ b/decoders/can/pd.py @@ -20,8 +20,11 @@ import sigrokdecode as srd +class SamplerateError(Exception): + pass + class Decoder(srd.Decoder): - api_version = 1 + api_version = 2 id = 'can' name = 'CAN' longname = 'Controller Area Network' @@ -29,12 +32,12 @@ class Decoder(srd.Decoder): license = 'gplv2+' inputs = ['logic'] outputs = ['can'] - probes = ( + channels = ( {'id': 'can_rx', 'name': 'CAN RX', 'desc': 'CAN bus line'}, ) options = ( - {'id': 'bitrate', 'desc': 'Bitrate', 'default': 1000000}, # 1Mbit/s - {'id': 'sample_point', 'desc': 'Sample point', 'default': 70.0}, # 70% + {'id': 'bitrate', 'desc': 'Bitrate (bits/s)', 'default': 1000000}, + {'id': 'sample_point', 'desc': 'Sample point (%)', 'default': 70.0}, ) annotations = ( ('data', 'CAN payload data'), @@ -61,7 +64,6 @@ class Decoder(srd.Decoder): self.reset_variables() def start(self): - # self.out_python = self.register(srd.OUTPUT_PYTHON) self.out_ann = self.register(srd.OUTPUT_ANN) def metadata(self, key, value): @@ -359,8 +361,8 @@ class Decoder(srd.Decoder): self.curbit += 1 def decode(self, ss, es, data): - if self.samplerate is None: - raise Exception("Cannot decode without samplerate.") + if not self.samplerate: + raise SamplerateError('Cannot decode without samplerate.') for (self.samplenum, pins) in data: (can_rx,) = pins @@ -377,6 +379,3 @@ class Decoder(srd.Decoder): if not self.reached_bit(self.curbit): continue self.handle_bit(can_rx) - else: - raise Exception("Invalid state: %s" % self.state) -