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

Method decode

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

Source from the content-addressed store, hash-verified

125 self.put(self.ss, self.es, self.out_ann, data)
126
127 def decode(self):
128 while True:
129 self.wait({0: 'e'})
130 self.state = 'DECODING'
131
132 if not self.samplenumber_last: # Set counters to start of signal.
133 self.samplenumber_last = self.samplenum
134 self.ss = self.samplenum
135 continue
136
137 if self.bit_count < 12: # Decode A0 to A11.
138 self.bit_count += 1
139 for i in range(0, 4): # Get four pulses for each bit.
140 if i > 0:
141 self.wait({0: 'e'}) # Get next 3 edges.
142 samples = self.samplenum - self.samplenumber_last
143 self.pulses.append(samples) # Save the pulse width.
144 self.samplenumber_last = self.samplenum
145 self.es = self.samplenum
146 self.bits.append([decode_bit(self.pulses), self.ss,
147 self.es]) # Save states and times.
148 idx = bitvals.index(decode_bit(self.pulses))
149 self.putx([idx, [decode_bit(self.pulses)]]) # Write decoded bit.
150 self.putx([5, [pinlabels(self.bit_count)]]) # Write pin labels.
151 self.pulses = []
152 self.ss = self.samplenum
153 else:
154 if self.model != 'none':
155 self.labels = decode_model(self.model, self.bits)
156 self.put(self.labels[1], self.labels[2], self.out_ann,
157 [6, [self.labels[0]]]) # Write model decode.
158 self.put(self.labels[4], self.labels[5], self.out_ann,
159 [7, [self.labels[3]]]) # Write model decode.
160 samples = self.samplenum - self.samplenumber_last
161 self.wait({'skip': 8 * samples}) # Wait for end of sync bit.
162 self.es = self.samplenum
163 self.putx([4, ['Sync']]) # Write sync label.
164 self.reset() # Reset and wait for next set of pulses.
165 self.state = 'DECODE_TIMEOUT'
166 if not self.state == 'DECODE_TIMEOUT':
167 self.samplenumber_last = self.samplenum

Callers

nothing calls this directly

Calls 7

putxMethod · 0.95
resetMethod · 0.95
decode_bitFunction · 0.85
pinlabelsFunction · 0.85
decode_modelFunction · 0.85
waitMethod · 0.80
indexMethod · 0.80

Tested by

no test coverage detected