Skip to content

Commit

Permalink
Merge pull request #40 from AdamCummick/master
Browse files Browse the repository at this point in the history
Mask registers in BCDDateTimeRegister
  • Loading branch information
tannewt committed Oct 26, 2020
2 parents 6143ec2 + 054a89f commit dd7cc16
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions adafruit_register/i2c_bcd_datetime.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,20 +77,25 @@ def __init__(self, register_address, weekday_first=True, weekday_start=1):
else:
self.weekday_offset = 1
self.weekday_start = weekday_start
# Masking value list n/a sec min hr day wkday mon year
self.mask_datetime = b"\xFF\x7F\x7F\x3F\x3F\x07\x1F\xFF"

def __get__(self, obj, objtype=None):
# Read and return the date and time.
with obj.i2c_device as i2c:
i2c.write_then_readinto(self.buffer, self.buffer, out_end=1, in_start=1)
return time.struct_time(
(
_bcd2bin(self.buffer[7]) + 2000,
_bcd2bin(self.buffer[6]),
_bcd2bin(self.buffer[5 - self.weekday_offset]),
_bcd2bin(self.buffer[3]),
_bcd2bin(self.buffer[2]),
_bcd2bin(self.buffer[1] & 0x7F),
_bcd2bin(self.buffer[4 + self.weekday_offset] - self.weekday_start),
_bcd2bin(self.buffer[7] & self.mask_datetime[7]) + 2000,
_bcd2bin(self.buffer[6] & self.mask_datetime[6]),
_bcd2bin(self.buffer[5 - self.weekday_offset] & self.mask_datetime[4]),
_bcd2bin(self.buffer[3] & self.mask_datetime[3]),
_bcd2bin(self.buffer[2] & self.mask_datetime[2]),
_bcd2bin(self.buffer[1] & self.mask_datetime[1]),
_bcd2bin(
self.buffer[4 + self.weekday_offset]
& self.mask_datetime[5] - self.weekday_start
),
-1,
-1,
)
Expand Down

0 comments on commit dd7cc16

Please sign in to comment.