diff options
Diffstat (limited to 'decoders/enc28j60')
-rw-r--r-- | decoders/enc28j60/pd.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/decoders/enc28j60/pd.py b/decoders/enc28j60/pd.py index d1a601f..a7e731d 100644 --- a/decoders/enc28j60/pd.py +++ b/decoders/enc28j60/pd.py @@ -82,6 +82,8 @@ class Decoder(srd.Decoder): self.ranges = [] self.cmd_ss = None self.cmd_es = None + self.range_ss = None + self.range_es = None self.active = False self.bsel0 = None self.bsel1 = None @@ -92,6 +94,9 @@ class Decoder(srd.Decoder): def putc(self, data): self.put(self.cmd_ss, self.cmd_es, self.ann, data) + def putr(self, data): + self.put(self.range_ss, self.range_es, self.ann, data) + def _process_command(self): if len(self.mosi) == 0: self.active = False @@ -121,24 +126,24 @@ class Decoder(srd.Decoder): reg_addr = self.mosi[0] & REG_ADDR_MASK reg_name = self._get_register_name(reg_addr) - ss, es = self.cmd_ss, self.ranges[1][0] + self.range_ss, self.range_es = self.cmd_ss, self.ranges[1][0] if reg_name is None: # We don't know the bank we're in yet. - self.put(ss, es, self.ann, [ + self.putr([ ANN_REG_ADDR, [ 'Reg Bank ? Addr 0x{0:02X}'.format(reg_addr), '?:{0:02X}'.format(reg_addr), ]]) - self.put(ss, es, self.ann, [ + self.putr([ ANN_WARNING, [ 'Warning: Register bank not known yet.', 'Warning', ]]) else: - self.put(ss, es, self.ann, [ + self.putr([ ANN_REG_ADDR, [ 'Reg {0}'.format(reg_name), @@ -146,7 +151,7 @@ class Decoder(srd.Decoder): ]]) if (reg_name == '-') or (reg_name == 'Reserved'): - self.put(ss, es, self.ann, [ + self.putr([ ANN_WARNING, [ 'Warning: Invalid register accessed.', @@ -154,21 +159,21 @@ class Decoder(srd.Decoder): ]]) def _put_data_byte(self, data, byte_index, binary=False): - ss = self.ranges[byte_index][0] + self.range_ss = self.ranges[byte_index][0] if byte_index == len(self.mosi) - 1: - es = self.cmd_es + self.range_es = self.cmd_es else: - es = self.ranges[byte_index + 1][0] + self.range_es = self.ranges[byte_index + 1][0] if binary: - self.put(ss, es, self.ann, [ + self.putr([ ANN_DATA, [ 'Data 0b{0:08b}'.format(data), '{0:08b}'.format(data), ]]) else: - self.put(ss, es, self.ann, [ + self.putr([ ANN_DATA, [ 'Data 0x{0:02X}'.format(data), @@ -211,8 +216,8 @@ class Decoder(srd.Decoder): if len(self.mosi) == 2: self._put_data_byte(self.miso[1], 1) else: - ss, es = self.ranges[1][0], self.ranges[2][0] - self.put(ss, es, self.ann, [ + self.range_ss, self.range_es = self.ranges[1][0], self.ranges[2][0] + self.putr([ ANN_DATA, [ 'Dummy Byte', |