X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=decoders%2Fonewire_link%2Fpd.py;h=38ef8ccea3b5907fa1f020ba4964741e853bcb9d;hp=4a826d195b396fd56b4c2c8850d1c59c79deb441;hb=84c1c0b52820af2418186ac3ecf93a5c6373a22e;hpb=f372d597739a30e0106aebc8225c1edebf6d93e3 diff --git a/decoders/onewire_link/pd.py b/decoders/onewire_link/pd.py index 4a826d1..38ef8cc 100644 --- a/decoders/onewire_link/pd.py +++ b/decoders/onewire_link/pd.py @@ -18,8 +18,6 @@ ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ## -# 1-Wire protocol decoder (link layer) - import sigrokdecode as srd class Decoder(srd.Decoder): @@ -37,19 +35,36 @@ class Decoder(srd.Decoder): optional_probes = [ {'id': 'pwr', 'name': 'PWR', 'desc': '1-Wire power supply pin'}, ] - options = { - 'overdrive': ['Overdrive mode', 'no'], + options = ( + {'id': 'overdrive', + 'desc': 'Overdrive mode', + 'default': 'no'}, # Time options (specified in microseconds): - 'cnt_normal_bit': ['Normal mode sample bit time (us)', 15], - 'cnt_normal_slot': ['Normal mode data slot time (us)', 60], - 'cnt_normal_presence': ['Normal mode sample presence time (us)', 75], - 'cnt_normal_reset': ['Normal mode reset time (us)', 480], - 'cnt_overdrive_bit': ['Overdrive mode sample bit time (us)', 2], - # 'cnt_overdrive_slot': ['Overdrive mode data slot time (us)', 7.3], - 'cnt_overdrive_slot': ['Overdrive mode data slot time (us)', 7], - 'cnt_overdrive_presence': ['Overdrive mode sample presence time (us)', 10], - 'cnt_overdrive_reset': ['Overdrive mode reset time (us)', 48], - } + {'id': 'cnt_normal_bit', + 'desc': 'Normal mode sample bit time (μs)', + 'default': 15}, + {'id': 'cnt_normal_slot', + 'desc': 'Normal mode data slot time (μs)', + 'default': 60}, + {'id': 'cnt_normal_presence', + 'desc': 'Normal mode sample presence time (μs)', + 'default': 75}, + {'id': 'cnt_normal_reset', + 'desc': 'Normal mode reset time (μs)', + 'default': 480}, + {'id': 'cnt_overdrive_bit', + 'desc': 'Overdrive mode sample bit time (μs)', + 'default': 2}, + {'id': 'cnt_overdrive_slot', + 'desc': 'Overdrive mode data slot time (μs)', + 'default': 7.3}, + {'id': 'cnt_overdrive_presence', + 'desc': 'Overdrive mode sample presence time (μs)', + 'default': 10}, + {'id': 'cnt_overdrive_reset', + 'desc': 'Overdrive mode reset time (μs)', + 'default': 48}, + ) annotations = [ ['bit', 'Bit'], ['warnings', 'Warnings'], @@ -57,12 +72,17 @@ class Decoder(srd.Decoder): ['presence', 'Presence'], ['overdrive', 'Overdrive mode notifications'], ] + annotation_rows = ( + ('bits', 'Bits', (0, 2, 3)), + ('info', 'Info', (4,)), + ('warnings', 'Warnings', (1,)), + ) def putm(self, data): self.put(0, 0, self.out_ann, data) def putpb(self, data): - self.put(self.fall, self.samplenum, self.out_proto, data) + self.put(self.fall, self.samplenum, self.out_python, data) def putb(self, data): self.put(self.fall, self.samplenum, self.out_ann, data) @@ -74,7 +94,7 @@ class Decoder(srd.Decoder): self.put(self.fall, self.rise, self.out_ann, data) def putprs(self, data): - self.put(self.rise, self.samplenum, self.out_proto, data) + self.put(self.rise, self.samplenum, self.out_python, data) def putrs(self, data): self.put(self.rise, self.samplenum, self.out_ann, data) @@ -92,8 +112,8 @@ class Decoder(srd.Decoder): self.rise = 0 def start(self): - self.out_proto = self.add(srd.OUTPUT_PROTO, 'onewire_link') - self.out_ann = self.add(srd.OUTPUT_ANN, 'onewire_link') + self.out_python = self.register(srd.OUTPUT_PYTHON) + self.out_ann = self.register(srd.OUTPUT_ANN) def metadata(self, key, value): if key != srd.SRD_CONF_SAMPLERATE: @@ -173,9 +193,6 @@ class Decoder(srd.Decoder): '(%2.1fus-%2.1fus) should be inside (7.3us, 10.0us).' % (time_min*1000000, time_max*1000000)]]) - def report(self): - pass - def decode(self, ss, es, data): if self.samplerate is None: raise Exception("Cannot decode without samplerate.")