MCPcopy Create free account
hub / github.com/DreamSourceLab/DSView / putdata

Method putdata

libsigrokdecode4DSL/decoders/mdio/pd.py:89–127  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

87 self.put(self.ss_frame_field, self.samplenum, self.out_ann, data)
88
89 def putdata(self):
90 self.put(self.ss_frame_field, self.mdiobits[0][2], self.out_ann,
91 [2, ['DATA: %04X' % self.data, 'DATA', 'D']])
92
93 if self.clause45 and self.opcode == 0:
94 self.clause45_addr = self.data
95
96 # Decode data.
97 if self.opcode > 0 or not self.clause45:
98 decoded_min = ''
99 if self.clause45 and self.clause45_addr != -1:
100 decoded_min += str.format('ADDR: %04X ' % self.clause45_addr)
101 elif self.clause45:
102 decoded_min += str.format('ADDR: UKWN ')
103
104 if self.clause45 and self.opcode > 1 \
105 or (not self.clause45 and self.opcode):
106 decoded_min += str.format('READ: %04X' % self.data)
107 is_read = 1
108 else:
109 decoded_min += str.format('WRITE: %04X' % self.data)
110 is_read = 0
111 decoded_ext = str.format(' %s: %02d' % \
112 ('PRTAD' if self.clause45 else 'PHYAD', self.portad))
113 decoded_ext += str.format(' %s: %02d' % \
114 ('DEVAD' if self.clause45 else 'REGAD', self.devad))
115 if self.ta_invalid or self.op_invalid:
116 decoded_ext += ' ERROR'
117 self.put(self.ss_frame, self.mdiobits[0][2], self.out_ann,
118 [5, [decoded_min + decoded_ext, decoded_min]])
119
120 self.put(self.ss_frame, self.mdiobits[0][2], self.out_python,
121 [(bool(self.clause45), int(self.clause45_addr), \
122 bool(is_read), int(self.portad), int(self.devad), \
123 int(self.data))])
124
125 # Post read increment address.
126 if self.clause45 and self.opcode == 2 and self.clause45_addr != -1:
127 self.clause45_addr += 1
128
129 def reset_decoder_state(self):
130 self.mdiobits = []

Callers 1

state_DATAMethod · 0.95

Calls 1

formatMethod · 0.45

Tested by

no test coverage detected