summaryrefslogtreecommitdiffstatshomepage
path: root/tests/wipy/rtc.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wipy/rtc.py')
-rw-r--r--tests/wipy/rtc.py100
1 files changed, 100 insertions, 0 deletions
diff --git a/tests/wipy/rtc.py b/tests/wipy/rtc.py
new file mode 100644
index 0000000000..4114796db1
--- /dev/null
+++ b/tests/wipy/rtc.py
@@ -0,0 +1,100 @@
+'''
+RTC test for the CC3200 based boards.
+'''
+
+from pyb import RTC
+import os
+import time
+
+machine = os.uname().machine
+if not 'LaunchPad' in machine and not 'WiPy' in machine:
+ raise Exception('Board not supported!')
+
+rtc = RTC()
+print(rtc)
+print(rtc.now()[:6])
+
+rtc = RTC(datetime=(2015, 8, 29, 9, 0, 0, 0, None))
+print(rtc.now()[:6])
+
+rtc.deinit()
+print(rtc.now()[:6])
+
+rtc.init((2015, 8, 29, 9, 0, 0, 0, None))
+print(rtc.now()[:6])
+seconds = rtc.now()[5]
+time.sleep_ms(1000)
+print(rtc.now()[5] - seconds == 1)
+seconds = rtc.now()[5]
+time.sleep_ms(2000)
+print(rtc.now()[5] - seconds == 2)
+
+# initialization with shorter tuples
+rtc.init((2015, 9, 19, 8, 0, 0, 0))
+print(rtc.now()[5])
+rtc.init((2015, 9, 19, 8, 0, 0))
+print(rtc.now()[5])
+rtc.init((2015, 9, 19, 8, 0))
+print(rtc.now()[5])
+rtc.init((2015, 9, 19, 8))
+print(rtc.now()[4])
+rtc.init((2015, 9, 19))
+print(rtc.now()[3])
+
+def set_and_print(datetime):
+ rtc.init(datetime)
+ print(rtc.now()[:6])
+
+# make sure that setting works correctly
+set_and_print((2000, 1, 1, 0, 0, 0, 0, None))
+set_and_print((2000, 1, 31, 0, 0, 0, 0, None))
+set_and_print((2000, 12, 31, 0, 0, 0, 0, None))
+set_and_print((2016, 12, 31, 0, 0, 0, 0, None))
+set_and_print((2016, 12, 31, 0, 0, 0, 0, None))
+set_and_print((2016, 12, 31, 1, 0, 0, 0, None))
+set_and_print((2016, 12, 31, 12, 0, 0, 0, None))
+set_and_print((2016, 12, 31, 13, 0, 0, 0, None))
+set_and_print((2016, 12, 31, 23, 0, 0, 0, None))
+set_and_print((2016, 12, 31, 23, 1, 0, 0, None))
+set_and_print((2016, 12, 31, 23, 59, 0, 50, None))
+set_and_print((2016, 12, 31, 23, 59, 1, 900, None))
+set_and_print((2016, 12, 31, 23, 59, 59, 100, None))
+set_and_print((2048, 12, 31, 23, 59, 59, 99999, None))
+
+rtc.init((2015, 8, 29, 9, 0, 0, 0, None))
+rtc.alarm(0, 5000)
+rtc.alarm(time=2000)
+time.sleep_ms(1000)
+left = rtc.alarm_left()
+print(abs(left-1000) < 20)
+time.sleep_ms(1000)
+print(rtc.alarm_left() == 0)
+time.sleep_ms(100)
+print(rtc.alarm_left() == 0)
+
+rtc.init((2015, 8, 29, 9, 0, 0, 0, None))
+rtc.alarm(time=(2015, 8, 29, 9, 0, 45))
+time.sleep_ms(1000)
+left = rtc.alarm_left()
+print(abs(left-44000) < 100)
+
+# next ones must raise
+try:
+ rtc.alarm(5000)
+except:
+ print('Exception')
+
+try:
+ rtc.alarm(5000)
+except:
+ print('Exception')
+
+try:
+ rtc = RTC(200000000)
+except:
+ print('Exception')
+
+try:
+ rtc = RTC((2015, 8, 29, 9, 0, 0, 0, None))
+except:
+ print('Exception')