X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=decoders%2Frtc8564%2Fpd.py;h=4ecc15a615d56eda4960ceebce7569b21c52ac4e;hb=73c8d0fbdffe673d334f02bafb94f681a5c29ea9;hp=f13af364fe14dd731c639667ac7419989dc0c339;hpb=12851357e784b893e24880efc6cd22a0cbcc64ce;p=libsigrokdecode.git diff --git a/decoders/rtc8564/pd.py b/decoders/rtc8564/pd.py index f13af36..4ecc15a 100644 --- a/decoders/rtc8564/pd.py +++ b/decoders/rtc8564/pd.py @@ -19,10 +19,7 @@ ## import sigrokdecode as srd - -# Return the specified BCD number (max. 8 bits) as integer. -def bcd2int(b): - return (b & 0x0f) + ((b >> 4) * 10) +from common.srdhelper import bcd2int def reg_list(): l = [] @@ -55,7 +52,7 @@ class Decoder(srd.Decoder): ('date-time', 'Date/time', (9, 10)), ) - def __init__(self, **kwargs): + def __init__(self): self.state = 'IDLE' self.hours = -1 self.minutes = -1 @@ -189,7 +186,7 @@ class Decoder(srd.Decoder): if cmd != 'START': return self.state = 'GET SLAVE ADDR' - self.block_start_sample = ss + self.ss_block = ss elif self.state == 'GET SLAVE ADDR': # Wait for an address write operation. # TODO: We should only handle packets to the RTC slave (0xa2/0xa3). @@ -220,7 +217,7 @@ class Decoder(srd.Decoder): # TODO: Handle read/write of only parts of these items. d = '%02d.%02d.%02d %02d:%02d:%02d' % (self.days, self.months, self.years, self.hours, self.minutes, self.seconds) - self.put(self.block_start_sample, es, self.out_ann, + self.put(self.ss_block, es, self.out_ann, [9, ['Write date/time: %s' % d, 'Write: %s' % d, 'W: %s' % d]]) self.state = 'IDLE' @@ -246,12 +243,9 @@ class Decoder(srd.Decoder): elif cmd == 'STOP': d = '%02d.%02d.%02d %02d:%02d:%02d' % (self.days, self.months, self.years, self.hours, self.minutes, self.seconds) - self.put(self.block_start_sample, es, self.out_ann, + self.put(self.ss_block, es, self.out_ann, [10, ['Read date/time: %s' % d, 'Read: %s' % d, 'R: %s' % d]]) self.state = 'IDLE' else: pass # TODO? - else: - raise Exception('Invalid state: %s' % self.state) -