- # Output annotations/python for a word (a collection of items).
- word = 0
- for i in range(ws):
- if endian == 'little':
- word |= self.items[i] << ((ws - 1 - i) * used_pins)
- elif endian == 'big':
- word |= self.items[i] << (i * used_pins)
-
- self.es_word = self.samplenum
- # self.putpw(['WORD', word])
- # self.putw([1, ['%X' % word]])
- self.ss_word = self.samplenum
-
- self.itemcount, self.items = 0, []
+ # Collect words and prepare annotation details, but defer emission
+ # until the end samplenumber becomes available.
+ endian = self.options['endianness']
+ if endian == 'big':
+ self.items.reverse()
+ word = sum([self.items[i] << (i * used_pins) for i in range(ws)])
+ self.saved_word = word
+ self.items = []