summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2020-05-14 20:36:33 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2020-05-14 20:36:33 (GMT)
commit880083977cb1de7714404d3b032fa0b6a090a7ca (patch)
tree17fcf50d629a738a3f9fab5fcc28d9058a4b3221
parentd5c629a9acd430d198b1dc0509ef0ed708c08aeb (diff)
drivers: nrf_rtc: Finalize docstrings
-rw-r--r--docs/wasp.rst1
-rw-r--r--wasp/drivers/nrf_rtc.py34
2 files changed, 32 insertions, 3 deletions
diff --git a/docs/wasp.rst b/docs/wasp.rst
index efe57b9..18c0803 100644
--- a/docs/wasp.rst
+++ b/docs/wasp.rst
@@ -44,7 +44,6 @@ Device drivers
.. automodule:: drivers.nrf_rtc
:members:
- :undoc-members:
.. automodule:: drivers.signal
:members:
diff --git a/wasp/drivers/nrf_rtc.py b/wasp/drivers/nrf_rtc.py
index dcce996..222be32 100644
--- a/wasp/drivers/nrf_rtc.py
+++ b/wasp/drivers/nrf_rtc.py
@@ -1,7 +1,9 @@
# SPDX-License-Identifier: LGPL-3.0-or-later
# Copyright (C) 2020 Daniel Thompson
-""" Real Time Clock based on the nRF-family low power counter """
+"""nRF-family RTC driver
+~~~~~~~~~~~~~~~~~~~~~~~~
+"""
import machine
import time
@@ -17,9 +19,19 @@ import time
# return self.c
class RTC(object):
- """Real Time Clock based on the nRF-family low power counter."""
+ """Real Time Clock based on the nRF-family low power counter.
+
+ .. automethod:: __init__
+ """
def __init__(self, counter):
+ """Wrap an RTCounter to provide a fully fledged Real Time Clock.
+
+ If the PNVRAM is valid then we use it to initialize the RTC otherwise
+ we just make something up.
+
+ :param RTCounter counter: The RTCCounter channel to adopt.
+ """
self.counter = counter
if machine.mem32[0x200039c0] == 0x1abe11ed and \
@@ -34,6 +46,10 @@ class RTC(object):
self.set_localtime((2020, 3, 1, 3, 0, 0, 0, 0))
def update(self):
+ """Check for counter updates.
+
+ :returns: True of the wall time has changed, False otherwise.
+ """
newcount = self.counter.counter()
split = newcount - self.lastcount
if split == 0:
@@ -49,6 +65,12 @@ class RTC(object):
return True
def set_localtime(self, t):
+ """Set the current wall time.
+
+ :param sequence t:
+ Wall time formatted as (yyyy, mm, dd, HH, MM, SS), any
+ additional elements in sequence will be ignored.
+ """
self.lastcount = self.counter.counter()
if len(t) < 8:
@@ -66,10 +88,18 @@ class RTC(object):
machine.mem32[0x200039c4] = self.offset
def get_localtime(self):
+ """Get the current time and date.
+
+ :returns: Wall time formatted as (yyyy, mm, dd, HH, MM, SS, wday, yday)
+ """
self.update()
return time.localtime(self.offset + (self._uptime >> 3))
def get_time(self):
+ """Get the current time.
+
+ :returns: Wall time formatted as (HH, MM, SS)
+ """
localtime = self.get_localtime()
return localtime[3:6]