能显示数值

This commit is contained in:
2026-06-17 21:42:37 +08:00
parent 45d1e8d0ef
commit 62b37bb2d9
+18 -14
View File
@@ -50,10 +50,10 @@ For 'START', 'START REPEAT', 'STOP', 'ACK', and 'NACK' <pdata> is None.
# CMD: [annotation-type-index, long annotation, short annotation] # CMD: [annotation-type-index, long annotation, short annotation]
proto = { proto = {
'BIT': [0, 'Bit', 'B'], 'BIT': [0, 'Bit', 'B'],
'START': [1, 'Start', 'Ss'], 'START': [1, 'Start', 'S'],
'DATA READ': [2, 'Start repeat', 'Sr'], 'ASC': [2, 'arc start cds', 'ARC'],
'DATA READ1': [3, 'ACK', 'A'], 'P': [3, 'P', 'P'],
'DATA READ2': [4, 'NACK', 'N'], 'S': [4, 'S', 'S'],
'ERR': [5, 'Address read', 'AR'], 'ERR': [5, 'Address read', 'AR'],
'CRC': [6, 'Address write', 'AW'], 'CRC': [6, 'Address write', 'AW'],
'STOP': [7, 'Stop', 'P'], 'STOP': [7, 'Stop', 'P'],
@@ -76,17 +76,21 @@ class Decoder(srd.Decoder):
annotations = ( annotations = (
('208', 'bit', 'Data/address bit'), ('208', 'bit', 'Data/address bit'),
('207', 'start', 'Start condition'), ('207', 'start', 'Start condition'),
('6', 'data', 'Repeat start condition'), ('6', 'asc', 'arc start cds'),
('5', 'data1', 'ACK'), ('5', 'data1', 'p'),
('0', 'data2', 'NACK'), ('0', 'data2', 's'),
('112', 'error', 'Address read'), ('112', 'error', 'Address read'),
('111', 'crc', 'Address write'), ('111', 'crc', 'Address write'),
('201', 'stop', 'Stop condition'), ('201', 'stop', 'Stop condition'),
('202', 'value', 'value'),
('203', 'value1', 'value2'),
) )
annotation_rows = ( annotation_rows = (
('bits', 'Bits', (0,)), ('bits', 'Bits', (0,)),
('addr-data', 'Address/Data', ( 2, 3, 4,)), ('p', 'p', ( 8,)),
('flag', 'Flag', ( 1, 5, 6, 7)), ('s', 's', ( 9,)),
('flag', 'Flag', ( 1, 2,3,4,5, 6, 7)),
) )
binary = ( binary = (
('address-read', 'Address read'), ('address-read', 'Address read'),
@@ -181,8 +185,8 @@ class Decoder(srd.Decoder):
self.put(bit[1], bit[2], self.out_ann, [0, ['%d' % bit[0]]]) self.put(bit[1], bit[2], self.out_ann, [0, ['%d' % bit[0]]])
self.putx([proto[cmd][0], ['%s: {$}' % proto[cmd][1], '%s: {$}' % proto[cmd][2], '{$}', d]]) self.put(self.ss, self.es, self.out_ann, [8, ['%d' % d]])
self.putx([proto[cmd][0], proto[cmd][1:]])
# Done with this packet. # Done with this packet.
self.bitcount = self.databyte = 0 self.bitcount = self.databyte = 0
self.bits = [] self.bits = []
@@ -199,13 +203,13 @@ class Decoder(srd.Decoder):
self.handle_start() self.handle_start()
elif self.state == 'FIND DATA': elif self.state == 'FIND DATA':
(scl, sda) = self.wait([{0: 'f'}]) (scl, sda) = self.wait([{0: 'f'}])
self.handle_data(scl, sda,'DATA READ',2,'FIND DATA1') self.handle_data(scl, sda,'ASC',3,'FIND DATA1')
elif self.state == 'FIND DATA1': elif self.state == 'FIND DATA1':
(scl, sda) = self.wait([{0: 'f'}]) (scl, sda) = self.wait([{0: 'f'}])
self.handle_data(scl, sda,'DATA READ1',12,'FIND DATA2') self.handle_data(scl, sda,'P',13,'FIND DATA2')
elif self.state == 'FIND DATA2': elif self.state == 'FIND DATA2':
(scl, sda) = self.wait([{0: 'f'}]) (scl, sda) = self.wait([{0: 'f'}])
self.handle_data(scl, sda,'DATA READ2',13,'FIND ERR') self.handle_data(scl, sda,'S',13,'FIND ERR')
elif self.state == 'FIND ERR': elif self.state == 'FIND ERR':
(scl, sda) = self.wait([{0: 'f'}]) (scl, sda) = self.wait([{0: 'f'}])
self.handle_data(scl, sda,'ERR',2,'FIND CRC') self.handle_data(scl, sda,'ERR',2,'FIND CRC')