license = 'gplv2+'
inputs = ['logic']
outputs = ['ook']
+ tags = ['Encoding']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
)
('info', 'Info'),
('1111', '1111'),
('1010', '1010'),
- ('diffman', 'Diff Man'),
+ ('diffman', 'Diff man'),
('nrz', 'NRZ'),
)
annotation_rows = (
- ('frame', 'Framing',(0,)),
- ('info', 'Info', (1,)),
+ ('frames', 'Framing', (0,)),
+ ('info-vals', 'Info', (1,)),
('man1111', 'Man 1111', (2,)),
('man1010', 'Man 1010', (3,)),
- ('diffman', 'Diff Man', (4,)),
- ('nrz', 'NRZ', (5,)),
+ ('diffmans', 'Diff man', (4,)),
+ ('nrz-vals', 'NRZ', (5,)),
)
binary = (
('pulse-lengths', 'Pulse lengths'),
def dump_pulse_lengths(self):
if self.samplerate:
self.pulse_lengths[-1] = self.sample_first # Fix final pulse length.
- mystring = 'Pulses(us)='
- mystring += ','.join(str(int(int(x) * 1000000 / self.samplerate))
- for x in self.pulse_lengths)
- mystring += '\n'
+ s = 'Pulses(us)='
+ s += ','.join(str(int(int(x) * 1000000 / self.samplerate))
+ for x in self.pulse_lengths)
+ s += '\n'
self.put(self.samplenum - 10, self.samplenum, self.out_binary,
- [0, bytes([ord(c) for c in mystring])])
+ [0, bytes([ord(c) for c in s])])
def decode_nrz(self, start, samples, state):
self.pulse_lengths.append(samples)
# Use different high and low widths to compensate skewed waveforms.
- if state == '1':
- dsamples = self.sample_high
- else:
- dsamples = self.sample_low
- self.ss = start
- self.es = start + samples
+ dsamples = self.sample_high if state == '1' else self.sample_low
+ self.ss, self.es = start, start + samples
while samples > dsamples * 0.5:
if samples >= dsamples * 1.5: # More than one bit.
self.es = self.ss + dsamples
# Filter incoming pulses to remove random noise.
if self.state == 'DECODE_TIMEOUT':
self.preamble = []
- self.edge_count == 0
+ self.edge_count = 0
self.word_first = self.samplenum
self.sample_first = self.samplenum - self.samplenumber_last
self.state = 'WAITING_FOR_PREAMBLE'
self.preamble = [] # Clear buffer.
self.preamble.append([self.samplenumber_last,
pre_samples, state])
- self.edge_count == 0
+ self.edge_count = 0
self.samplenumber_last = self.samplenum
self.word_first = self.samplenum
else:
self.pulse_lengths.append(samples)
# Use different high and low widths to compensate skewed waveforms.
- if state == '1':
- dsamples = self.sample_high
- else:
- dsamples = self.sample_low
+ dsamples = self.sample_high if state == '1' else self.sample_low
self.es = start + samples
p_length = round(samples / dsamples) # Find relative pulse length.
self.pulse_lengths.append(samples)
# Use different high and low widths to compensate skewed waveforms.
- if state == '1':
- dsamples = self.sample_high
- else:
- dsamples = self.sample_low
+ dsamples = self.sample_high if state == '1' else self.sample_low
if self.preamble_val != '1010': # 1111 preamble is half clock T.
(self.half_time, self.lstate, self.ss_1111, ook_bit, errors) = (
# Stream display and save ook_bit.
if ook_bit != []:
- self.ss = ook_bit[0]
- self.es = ook_bit[1]
+ self.ss, self.es = ook_bit[0], ook_bit[1]
if self.preamble_val == '1111':
self.putx([2, [ook_bit[2]]])
if self.preamble_val == '1010':
if self.preamble_val == 'auto': # Display OOK packet.
for i in range(len(decoded)):
- self.ss = decoded[i][0]
- self.es = decoded[i][1]
+ self.ss, self.es = decoded[i][0], decoded[i][1]
self.putx([d_row, [decoded[i][2]]])
if (man_errors < self.max_errors and len(decoded) > 0):
- self.ss = decoded[0][0]
- self.es = decoded[len(decoded) - 1][1]
+ self.ss, self.es = decoded[0][0], decoded[len(decoded) - 1][1]
self.putp(decoded)
else:
error_message = 'Not Manchester encoded or wrong preamble'
pinstate = int(not pinstate)
if self.invert == 'yes': # Invert signal.
pinstate = int(not pinstate)
- if pinstate:
- state = '0'
- else:
- state = '1'
+ state = '0' if pinstate else '1'
# No preamble filtering or checking and no skew correction.
if self.preamble_len == '0':