Skip to content

Commit 97e7ac3

Browse files
dbgen1g-e-n
andauthored
add error checking (#8)
* add error checking * appease the linter --------- Co-authored-by: Davit Babayan <[email protected]>
1 parent 2579146 commit 97e7ac3

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

rv3028/rv3028.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,13 @@ def set_time(self, hours: int, minutes: int, seconds: int) -> None:
117117
minutes (int): The minute value to set (0-59).
118118
seconds (int): The second value to set (0-59).
119119
"""
120+
if hours < 0 or hours > 23:
121+
raise ValueError("Hour value must be between 0 and 23")
122+
if minutes < 0 or minutes > 59:
123+
raise ValueError("Minute value must be between 0 and 59")
124+
if seconds < 0 or seconds > 59:
125+
raise ValueError("Second vaue must be between 0 and 59")
126+
120127
data = bytes(
121128
[
122129
self._int_to_bcd(seconds),
@@ -154,6 +161,15 @@ def set_date(self, year: int, month: int, date: int, weekday: int) -> None:
154161
date (int): The date value to set (1-31).
155162
weekday (int): The day of the week to set (0-6, where 0 represents Sunday).
156163
"""
164+
if year < 0 or year > 99:
165+
raise ValueError("Year value must be between 0 and 99")
166+
if month < 1 or month > 12:
167+
raise ValueError("Month value must be between 1 and 12")
168+
if date < 1 or date > 31:
169+
raise ValueError("Date value must be between 1 and 31")
170+
if weekday < 0 or weekday > 6:
171+
raise ValueError("Weekday value must be between 0 and 6")
172+
157173
data = bytes(
158174
[
159175
self._int_to_bcd(weekday),
@@ -196,18 +212,18 @@ def set_alarm(
196212
Alarm hour (0-23) or None
197213
Alarm weekday (0-6, 0=Sunday) or None
198214
"""
199-
# Set alarm mask to check for minute, hour, and weekday match
200-
control2 = self._read_register(Reg.CONTROL2)[0]
201-
self._set_flag(Reg.CONTROL2, Control2.ALARM_INT_ENABLE, Flag.SET)
202-
self._write_register(Reg.CONTROL2, bytes([control2]))
203-
204215
if minute is not None and (minute < 0 or minute > 59):
205216
raise ValueError("Invalid minute value")
206217
if hour is not None and (hour < 0 or hour > 23):
207218
raise ValueError("Invalid hour value")
208219
if weekday is not None and (weekday < 0 or weekday > 6):
209220
raise ValueError("Invalid weekday value")
210221

222+
# Set alarm mask to check for minute, hour, and weekday match
223+
control2 = self._read_register(Reg.CONTROL2)[0]
224+
self._set_flag(Reg.CONTROL2, Control2.ALARM_INT_ENABLE, Flag.SET)
225+
self._write_register(Reg.CONTROL2, bytes([control2]))
226+
211227
data = bytes(
212228
(self._int_to_bcd(param) & Alarm.VALUE)
213229
if param is not None

0 commit comments

Comments
 (0)