- p_string = ['ERROR', 'ERR', 'ER', 'E']
- if self.data_col_parity[1] == self.col_parity[1]:
- if self.data_col_parity[2] == self.col_parity[2]:
- if self.data_col_parity[3] == self.col_parity[3]:
- if self.data_col_parity[4] == self.col_parity[4]:
- p_string = ['OK', 'O']
-
- self.put(int(self.data_start), int(bit_start), self.out_ann,
- [4, ['Column parity', 'Col par', 'CP', 'P']])
- self.put(int(bit_start), int(bit_stop), self.out_ann,
- [4, ['Stop bit', 'St bi', 'SB', 'S']])
- self.put(int(self.data_start), int(bit_start), self.out_ann,
- [6, p_string])
-
+ self.put(ss, es, self.out_ann, [8, ['Stop bit', 'SB', 'S']])
+
+ for i in range(1, 5):
+ s = 'OK' if self.data_col_parity[i] == \
+ self.col_parity[i] else 'ERROR'
+ c = 6 if s == 'OK' else 7
+ self.put(self.col_parity_pos[i - 1][0],
+ self.col_parity_pos[i - 1][1], self.out_ann,
+ [c, ['Column parity %d: %s' % (i, s),
+ 'CP%d: %s' % (i, s), 'CP%d' % i, 'C']])
+
+ # Emit an annotation for valid-looking tags.
+ all_col_parity_ok = (self.data_col_parity[1:5] == self.col_parity[1:5])
+ if all_col_parity_ok and self.all_row_parity_ok:
+ self.put(self.ss_first, es, self.out_ann,
+ [9, ['Tag: %010X' % self.tag, 'Tag', 'T']])
+
+ self.tag = 0