all decoders: introduce a reset() method
authorGerhard Sittig <gerhard.sittig@gmx.net>
Mon, 20 Feb 2017 20:37:05 +0000 (21:37 +0100)
committerUwe Hermann <uwe@hermann-uwe.de>
Fri, 22 Dec 2017 11:21:54 +0000 (12:21 +0100)
Move initialization code of protocol decoders from the constructor to a
new reset() helper method. The libsigrokdecode backend could run this
method several times to clear the decoder's internal state, before new
data from another acquisition gets fed to decode() calls.

79 files changed:
decoders/ade77xx/pd.py
decoders/adf435x/pd.py
decoders/adns5020/pd.py
decoders/am230x/pd.py
decoders/arm_etmv3/pd.py
decoders/arm_itm/pd.py
decoders/arm_tpiu/pd.py
decoders/aud/pd.py
decoders/avr_isp/pd.py
decoders/avr_pdi/pd.py
decoders/can/pd.py
decoders/dali/pd.py
decoders/dcf77/pd.py
decoders/dmx512/pd.py
decoders/ds1307/pd.py
decoders/ds243x/pd.py
decoders/ds28ea00/pd.py
decoders/dsi/pd.py
decoders/edid/pd.py
decoders/eeprom24xx/pd.py
decoders/eeprom93xx/pd.py
decoders/em4100/pd.py
decoders/em4305/pd.py
decoders/gpib/pd.py
decoders/graycode/pd.py
decoders/guess_bitrate/pd.py
decoders/i2c/pd.py
decoders/i2cdemux/pd.py
decoders/i2cfilter/pd.py
decoders/i2s/pd.py
decoders/iec/pd.py
decoders/ir_nec/pd.py
decoders/ir_rc5/pd.py
decoders/jitter/pd.py
decoders/jtag/pd.py
decoders/jtag_stm32/pd.py
decoders/lm75/pd.py
decoders/lpc/pd.py
decoders/maple_bus/pd.py
decoders/mdio/pd.py
decoders/midi/pd.py
decoders/mlx90614/pd.py
decoders/modbus/pd.py
decoders/morse/pd.py
decoders/mrf24j40/pd.py
decoders/mxc6225xu/pd.py
decoders/nrf24l01/pd.py
decoders/nunchuk/pd.py
decoders/onewire_link/pd.py
decoders/onewire_network/pd.py
decoders/pan1321/pd.py
decoders/parallel/pd.py
decoders/ps2/pd.py
decoders/pwm/pd.py
decoders/qi/pd.py
decoders/rfm12/pd.py
decoders/rgb_led_spi/pd.py
decoders/rgb_led_ws281x/pd.py
decoders/rtc8564/pd.py
decoders/sdcard_sd/pd.py
decoders/sdcard_spi/pd.py
decoders/spdif/pd.py
decoders/spi/pd.py
decoders/spiflash/pd.py
decoders/ssi32/pd.py
decoders/stepper_motor/pd.py
decoders/swd/pd.py
decoders/t55xx/pd.py
decoders/tca6408a/pd.py
decoders/timing/pd.py
decoders/tlc5620/pd.py
decoders/uart/pd.py
decoders/usb_packet/pd.py
decoders/usb_power_delivery/pd.py
decoders/usb_request/pd.py
decoders/usb_signalling/pd.py
decoders/wiegand/pd.py
decoders/xfp/pd.py
decoders/z80/pd.py

index 32a431b..0dfd7c8 100644 (file)
@@ -50,6 +50,9 @@ class Decoder(srd.Decoder):
         self.mosi_bytes, self.miso_bytes = [], []
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ss_cmd, self.es_cmd = 0, 0
         self.reset_data()
 
index a17eb84..dcc08de 100644 (file)
@@ -105,6 +105,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.bits = []
 
     def start(self):
index 0ee3f8b..55f6853 100644 (file)
@@ -59,6 +59,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ss_cmd, self.es_cmd = 0, 0
         self.mosi_bytes = []
 
index 0e4eac8..81c1f28 100644 (file)
@@ -122,6 +122,9 @@ class Decoder(srd.Decoder):
         return checksum % 256
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.reset_variables()
 
index 8a2a8bb..8de3ce2 100644 (file)
@@ -170,6 +170,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.buf = []
         self.syncbuf = []
         self.prevsample = 0
index 15ffe72..5970f27 100644 (file)
@@ -80,6 +80,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.buf = []
         self.syncbuf = []
         self.swpackets = {}
index efacb27..f50af65 100644 (file)
@@ -42,6 +42,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.buf = []
         self.syncbuf = []
         self.prevsample = 0
index baa920e..30c32f5 100644 (file)
@@ -46,6 +46,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ncnt = 0
         self.nmax = 0
         self.addr = 0
index 9c8647d..2530e8c 100644 (file)
@@ -51,6 +51,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.mosi_bytes, self.miso_bytes = [], []
         self.ss_cmd, self.es_cmd = 0, 0
index fcb73af..7fedbbd 100644 (file)
@@ -154,6 +154,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.clear_state()
 
index 5be3e99..056736b 100644 (file)
@@ -65,6 +65,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.reset_variables()
 
index 904adc7..5dd577d 100644 (file)
@@ -56,6 +56,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.samplenum = None
         self.edges, self.bits, self.ss_es_bits = [], [], []
index a4e87f6..7b180ce 100644 (file)
@@ -65,6 +65,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.state = 'WAIT FOR RISING EDGE'
         self.ss_bit = self.ss_bit_old = self.es_bit = self.ss_block = 0
index f250a3b..1bcca20 100644 (file)
@@ -52,6 +52,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.sample_usec = None
         self.run_start = -1
index 560d94d..414da65 100644 (file)
@@ -75,6 +75,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.hours = -1
         self.minutes = -1
index 05313dc..c7869a8 100644 (file)
@@ -77,6 +77,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         # Bytes for function command.
         self.bytes = []
         self.family_code = None
index 2ae9469..a792d95 100644 (file)
@@ -48,6 +48,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.trn_beg = 0
         self.trn_end = 0
         self.state = 'ROM'
index 5b473be..c5d9bf9 100644 (file)
@@ -51,6 +51,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.samplenum = None
         self.edges, self.bits, self.ss_es_bits = [], [], []
index baf2263..e73884e 100644 (file)
@@ -91,6 +91,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = None
         # Received data items, used as an index into samplenum/data
         self.cnt = 0
index e7b344c..49c586d 100644 (file)
@@ -73,6 +73,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.reset_variables()
 
     def start(self):
index 82c1ae8..d76b869 100644 (file)
@@ -43,6 +43,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.frame = []
 
     def start(self):
index 711c0fa..778cfd1 100644 (file)
@@ -62,6 +62,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.oldpin = None
         self.last_samplenum = None
index 895ee15..9fac9c6 100644 (file)
@@ -65,6 +65,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.last_samplenum = None
         self.state = 'FFS_SEARCH'
index 01801bc..d131cb9 100644 (file)
@@ -61,6 +61,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.items = []
         self.itemcount = 0
         self.saved_item = None
index f500c83..1211c69 100644 (file)
@@ -101,6 +101,9 @@ class Decoder(srd.Decoder):
     annotation_rows = tuple((u, v, (i,)) for i, (u, v) in enumerate(annotations))
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.num_channels = 0
         self.samplerate = None
         self.last_n = deque()
index e8390c6..7a3121a 100644 (file)
@@ -42,6 +42,9 @@ class Decoder(srd.Decoder):
         self.put(self.ss_edge, self.samplenum, self.out_ann, data)
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ss_edge = None
 
     def start(self):
index d0c2ea7..7f8960d 100644 (file)
@@ -108,6 +108,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.ss = self.es = self.ss_byte = -1
         self.bitcount = 0
index c6ab53d..2495e84 100644 (file)
@@ -30,6 +30,9 @@ class Decoder(srd.Decoder):
     outputs = [] # TODO: Only known at run-time.
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.packets = [] # Local cache of I²C packets
         self.slaves = [] # List of known slave addresses
         self.stream = -1 # Current output stream
index af09c49..1dc7fd1 100644 (file)
@@ -39,6 +39,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.curslave = -1
         self.curdirection = None
         self.packets = [] # Local cache of I²C packets
index beee079..91801b4 100644 (file)
@@ -60,6 +60,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.oldws = 1
         self.bitcount = 0
index 0b34391..06fdc7a 100644 (file)
@@ -55,6 +55,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.saved_ATN = False
         self.saved_EOI = False
         self.ss_item = self.es_item = None
index 84b2e70..0362609 100644 (file)
@@ -99,6 +99,9 @@ class Decoder(srd.Decoder):
                  '%s' % btn[1]]])
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.ss_bit = self.ss_start = self.ss_other_edge = self.ss_remote = 0
         self.data = self.count = self.active = None
index edb29bd..60a9416 100644 (file)
@@ -56,6 +56,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.samplenum = None
         self.edges, self.bits, self.ss_es_bits = [], [], []
index 04a2577..f492a9f 100644 (file)
@@ -63,6 +63,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'CLK'
         self.samplerate = None
         self.oldclk, self.oldsig = 0, 0
index 4ad11c4..7f784eb 100644 (file)
@@ -88,6 +88,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         # self.state = 'TEST-LOGIC-RESET'
         self.state = 'RUN-TEST/IDLE'
         self.oldstate = None
index 4cc39e0..d27a557 100644 (file)
@@ -156,6 +156,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.samplenums = None
 
index d65fb4d..29237d7 100644 (file)
@@ -62,6 +62,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.reg = 0x00 # Currently selected register
         self.databytes = []
index c737544..7242208 100644 (file)
@@ -136,6 +136,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.oldlclk = -1
         self.samplenum = 0
index 861b3f8..8306061 100644 (file)
@@ -73,6 +73,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         pass
 
     def start(self):
index 7c2fc5f..3580acc 100644 (file)
@@ -62,6 +62,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.illegal_bus = 0
         self.samplenum = -1
         self.clause45_addr = -1 # Clause 45 is context sensitive.
index c2d3f72..feb581c 100644 (file)
@@ -44,6 +44,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.status_byte = 0
         self.explicit_status_byte = False
index 1f627e6..60927f7 100644 (file)
@@ -34,6 +34,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IGNORE START REPEAT'
         self.data = []
 
index 2404312..d2307b9 100644 (file)
@@ -847,6 +847,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ADUSc = None # Start off with empty slave -> client ADU.
         self.ADUCs = None # Start off with empty client -> slave ADU.
 
index 588394d..a1e3c23 100644 (file)
@@ -137,6 +137,9 @@ class Decoder(srd.Decoder):
     annotation_rows = tuple((u, v, (i,)) for i, (u, v) in enumerate(annotations))
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
 
     def metadata(self, key, value):
index e195b18..8ccf473 100644 (file)
@@ -43,6 +43,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ss_cmd, self.es_cmd = 0, 0
         self.mosi_bytes = []
         self.miso_bytes = []
index 34482cd..1e90455 100644 (file)
@@ -72,6 +72,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
 
     def start(self):
index 02cdddb..221b968 100644 (file)
@@ -94,6 +94,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.next()
         self.requirements_met = True
         self.cs_was_released = False
index de6e157..4f006f2 100644 (file)
@@ -47,6 +47,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.sx = self.sy = self.ax = self.ay = self.az = self.bz = self.bc = -1
         self.databytecount = 0
index ca32415..72aea83 100644 (file)
@@ -118,6 +118,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.state = 'INITIAL'
         self.present = 0
index 323da0b..5d850b5 100644 (file)
@@ -45,6 +45,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ss_block = 0
         self.es_block = 0
         self.state = 'COMMAND'
index c1a3bea..ecaa680 100644 (file)
@@ -39,6 +39,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.cmd = ['', '']
         self.ss_block = None
 
index c8ac2b0..140b7b8 100644 (file)
@@ -88,6 +88,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.items = []
         self.itemcount = 0
         self.saved_item = None
index 1a7f0be..6ed04c8 100644 (file)
@@ -53,6 +53,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.bits = []
         self.samplenum = 0
         self.bitcount = 0
index 444b417..2301523 100644 (file)
@@ -49,6 +49,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ss_block = self.es_block = None
 
     def metadata(self, key, value):
index 779cafa..cb46dba 100644 (file)
@@ -73,6 +73,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.reset_variables()
 
index 3148a57..e709696 100644 (file)
@@ -43,6 +43,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.mosi_bytes, self.miso_bytes = [], []
         self.mosi_bits, self.miso_bits = [], []
         self.row_pos = [0, 0, 0]
index 95cbf19..d087556 100644 (file)
@@ -33,6 +33,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ss_cmd, self.es_cmd = 0, 0
         self.mosi_bytes = []
 
index 5cf2124..b4f7c58 100644 (file)
@@ -46,6 +46,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.oldpin = None
         self.ss_packet = None
index 8560ac7..3a9dca0 100644 (file)
@@ -52,6 +52,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.hours = -1
         self.minutes = -1
index 2382a15..9402f7e 100644 (file)
@@ -61,6 +61,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'GET COMMAND TOKEN'
         self.token = []
         self.is_acmd = False # Indicates CMD vs. ACMD
index 478dfc8..7c59634 100644 (file)
@@ -46,6 +46,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.ss, self.es = 0, 0
         self.ss_bit, self.es_bit = 0, 0
index 0c535e4..add2834 100644 (file)
@@ -58,6 +58,9 @@ class Decoder(srd.Decoder):
         self.put(self.ss_edge, self.samplenum, self.out_ann, data)
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'GET FIRST PULSE WIDTH'
         self.ss_edge = None
         self.first_edge = True
index 7b979f0..32fe8da 100644 (file)
@@ -121,6 +121,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.bitcount = 0
         self.misodata = self.mosidata = 0
index 8e2b041..07934c5 100644 (file)
@@ -98,6 +98,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.device_id = -1
         self.on_end_transaction = None
         self.end_current_transaction()
index dbcdf64..f2685e2 100644 (file)
@@ -46,6 +46,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.ss_cmd, self.es_cmd = 0, 0
         self.mosi_bytes = []
         self.miso_bytes = []
index 52e3e63..9ddc645 100644 (file)
@@ -50,6 +50,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.oldstep = None
         self.ss_prev_step = None
         self.pos = 0
index 22aad45..0f7bc22 100644 (file)
@@ -92,6 +92,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         # SWD data/clock state
         self.state = 'UNKNOWN'
         self.sample_edge = RISING
index 5a7611a..07df9c2 100644 (file)
@@ -66,6 +66,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.last_samplenum = None
         self.lastlast_samplenum = None
index 73de1b9..0e60767 100644 (file)
@@ -41,6 +41,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.state = 'IDLE'
         self.chip = -1
 
index ab963bb..61eab1e 100644 (file)
@@ -74,6 +74,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.last_samplenum = None
         self.last_n = deque()
index 3ca1415..6fe8ae1 100644 (file)
@@ -71,6 +71,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.bits = []
         self.ss_dac_first = None
         self.ss_dac = self.es_dac = 0
index 16729cc..8993271 100644 (file)
@@ -160,6 +160,9 @@ class Decoder(srd.Decoder):
         self.put(s - floor(halfbit), self.samplenum + ceil(halfbit), self.out_binary, data)
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.samplenum = 0
         self.frame_start = [-1, -1]
index 3983f2c..489e58e 100644 (file)
@@ -222,6 +222,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.bits = []
         self.packet = []
         self.packet_summary = ''
index 3258ac3..a2d6b4d 100644 (file)
@@ -439,6 +439,9 @@ class Decoder(srd.Decoder):
         return -1   # No Start Of Packet
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.idx = 0
         self.packet_seq = 0
index 1bd2878..a480284 100644 (file)
@@ -136,6 +136,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.request = {}
         self.request_id = 0
index 7a885c0..424117d 100644 (file)
@@ -135,6 +135,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
         self.oldsym = 'J' # The "idle" state is J.
         self.ss_block = None
index 3edefc5..ea873ea 100644 (file)
@@ -48,6 +48,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self._samples_per_bit = 10
 
         self._d0_prev = None
index fcadab9..0bc6724 100644 (file)
@@ -37,6 +37,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         # Received data items, used as an index into samplenum/data
         self.cnt = -1
         # Start/end sample numbers per data item
index 76e1858..b7ff9a5 100644 (file)
@@ -111,6 +111,9 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.prev_cycle = Cycle.NONE
         self.op_state   = self.state_IDLE