|
3 | 3 | *
|
4 | 4 | * The MIT License (MIT)
|
5 | 5 | *
|
6 |
| - * Copyright (c) 2019 Damien P. George |
| 6 | + * Copyright (c) 2019-2023 Damien P. George |
7 | 7 | *
|
8 | 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy
|
9 | 9 | * of this software and associated documentation files (the "Software"), to deal
|
|
24 | 24 | * THE SOFTWARE.
|
25 | 25 | */
|
26 | 26 |
|
27 |
| -#include "py/runtime.h" |
28 |
| -#include "extmod/modutime.h" |
| 27 | +#include "py/obj.h" |
29 | 28 | #include "shared/timeutils/timeutils.h"
|
30 | 29 | #include "modmachine.h"
|
31 | 30 |
|
32 |
| -// localtime([secs]) |
33 |
| -STATIC mp_obj_t time_localtime(size_t n_args, const mp_obj_t *args) { |
| 31 | +// Return the localtime as an 8-tuple. |
| 32 | +STATIC mp_obj_t mp_utime_localtime_get(void) { |
34 | 33 | timeutils_struct_time_t tm;
|
35 |
| - mp_int_t seconds; |
36 |
| - |
37 |
| - if (n_args == 0 || args[0] == mp_const_none) { |
38 |
| - rtc_gettime(&tm); |
39 |
| - } else { |
40 |
| - seconds = mp_obj_get_int(args[0]); |
41 |
| - timeutils_seconds_since_epoch_to_struct_time(seconds, &tm); |
42 |
| - } |
43 |
| - |
| 34 | + rtc_gettime(&tm); |
| 35 | + tm.tm_wday = timeutils_calc_weekday(tm.tm_year, tm.tm_mon, tm.tm_mday); |
| 36 | + tm.tm_yday = timeutils_year_day(tm.tm_year, tm.tm_mon, tm.tm_mday); |
44 | 37 | mp_obj_t tuple[8] = {
|
45 | 38 | tuple[0] = mp_obj_new_int(tm.tm_year),
|
46 | 39 | tuple[1] = mp_obj_new_int(tm.tm_mon),
|
47 | 40 | tuple[2] = mp_obj_new_int(tm.tm_mday),
|
48 | 41 | tuple[3] = mp_obj_new_int(tm.tm_hour),
|
49 | 42 | tuple[4] = mp_obj_new_int(tm.tm_min),
|
50 | 43 | tuple[5] = mp_obj_new_int(tm.tm_sec),
|
51 |
| - tuple[6] = mp_obj_new_int(timeutils_calc_weekday(tm.tm_year, tm.tm_mon, tm.tm_mday)), |
52 |
| - tuple[7] = mp_obj_new_int(timeutils_year_day(tm.tm_year, tm.tm_mon, tm.tm_mday)), |
| 44 | + tuple[6] = mp_obj_new_int(tm.tm_wday), |
| 45 | + tuple[7] = mp_obj_new_int(tm.tm_yday), |
53 | 46 | };
|
54 | 47 | return mp_obj_new_tuple(8, tuple);
|
55 | 48 | }
|
56 |
| -STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(time_localtime_obj, 0, 1, time_localtime); |
57 | 49 |
|
58 |
| -// time() |
59 |
| -STATIC mp_obj_t time_time(void) { |
| 50 | +// Returns the number of seconds, as an integer, since the Epoch. |
| 51 | +STATIC mp_obj_t mp_utime_time_get(void) { |
60 | 52 | timeutils_struct_time_t tm;
|
61 | 53 | rtc_gettime(&tm);
|
62 | 54 | return mp_obj_new_int_from_uint(timeutils_mktime(
|
63 | 55 | tm.tm_year, tm.tm_mon, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec));
|
64 | 56 | }
|
65 |
| -STATIC MP_DEFINE_CONST_FUN_OBJ_0(time_time_obj, time_time); |
66 |
| - |
67 |
| -STATIC const mp_rom_map_elem_t time_module_globals_table[] = { |
68 |
| - { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_utime) }, |
69 |
| - |
70 |
| - { MP_ROM_QSTR(MP_QSTR_gmtime), MP_ROM_PTR(&time_localtime_obj) }, |
71 |
| - { MP_ROM_QSTR(MP_QSTR_localtime), MP_ROM_PTR(&time_localtime_obj) }, |
72 |
| - { MP_ROM_QSTR(MP_QSTR_mktime), MP_ROM_PTR(&mp_utime_mktime_obj) }, |
73 |
| - { MP_ROM_QSTR(MP_QSTR_sleep), MP_ROM_PTR(&mp_utime_sleep_obj) }, |
74 |
| - { MP_ROM_QSTR(MP_QSTR_sleep_ms), MP_ROM_PTR(&mp_utime_sleep_ms_obj) }, |
75 |
| - { MP_ROM_QSTR(MP_QSTR_sleep_us), MP_ROM_PTR(&mp_utime_sleep_us_obj) }, |
76 |
| - { MP_ROM_QSTR(MP_QSTR_ticks_ms), MP_ROM_PTR(&mp_utime_ticks_ms_obj) }, |
77 |
| - { MP_ROM_QSTR(MP_QSTR_ticks_us), MP_ROM_PTR(&mp_utime_ticks_us_obj) }, |
78 |
| - { MP_ROM_QSTR(MP_QSTR_ticks_cpu), MP_ROM_PTR(&mp_utime_ticks_cpu_obj) }, |
79 |
| - { MP_ROM_QSTR(MP_QSTR_ticks_add), MP_ROM_PTR(&mp_utime_ticks_add_obj) }, |
80 |
| - { MP_ROM_QSTR(MP_QSTR_ticks_diff), MP_ROM_PTR(&mp_utime_ticks_diff_obj) }, |
81 |
| - { MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&time_time_obj) }, |
82 |
| -}; |
83 |
| - |
84 |
| -STATIC MP_DEFINE_CONST_DICT(time_module_globals, time_module_globals_table); |
85 |
| - |
86 |
| -const mp_obj_module_t mp_module_utime = { |
87 |
| - .base = { &mp_type_module }, |
88 |
| - .globals = (mp_obj_dict_t *)&time_module_globals, |
89 |
| -}; |
90 |
| - |
91 |
| -MP_REGISTER_MODULE(MP_QSTR_utime, mp_module_utime); |
0 commit comments