summaryrefslogtreecommitdiff
path: root/shared-bindings
diff options
context:
space:
mode:
authordherrada <dylan.herrada@gmail.com>2020-05-11 13:00:19 -0400
committerdherrada <dylan.herrada@gmail.com>2020-05-11 13:00:19 -0400
commitc7a9d49cba38499ec6701fdfef0c14e1dd5503a8 (patch)
tree93ce7fbdbed9cd3e5ed4707fdb52da26c5a9b008 /shared-bindings
parent838b6c56858fa3888c558e5640031b8764c313d7 (diff)
Did rgbmatrix, rotaryio, and RTC
Diffstat (limited to 'shared-bindings')
-rw-r--r--shared-bindings/rgbmatrix/RGBMatrix.c103
-rw-r--r--shared-bindings/rgbmatrix/__init__.c5
-rw-r--r--shared-bindings/rotaryio/IncrementalEncoder.c72
-rw-r--r--shared-bindings/rotaryio/__init__.c4
-rw-r--r--shared-bindings/rtc/RTC.c49
-rw-r--r--shared-bindings/rtc/__init__.c30
6 files changed, 132 insertions, 131 deletions
diff --git a/shared-bindings/rgbmatrix/RGBMatrix.c b/shared-bindings/rgbmatrix/RGBMatrix.c
index d758774d9..e2393eb61 100644
--- a/shared-bindings/rgbmatrix/RGBMatrix.c
+++ b/shared-bindings/rgbmatrix/RGBMatrix.c
@@ -38,10 +38,11 @@
#include "shared-module/framebufferio/__init__.h"
#include "shared-module/framebufferio/FramebufferDisplay.h"
-//| .. currentmodule:: rgbmatrix
+//| class RGBMatrix:
+//| """.. currentmodule:: rgbmatrix
//|
-//| :class:`RGBMatrix` -- Driver for HUB75-style RGB LED matrices
-//| ================================================================
+//| :class:`RGBMatrix` -- Driver for HUB75-style RGB LED matrices
+//| ================================================================
//|
extern Protomatter_core *_PM_protoPtr;
@@ -133,45 +134,45 @@ STATIC void preflight_pins_or_throw(uint8_t clock_pin, uint8_t *rgb_pins, uint8_
}
}
-//| :class:`~rgbmatrix.RGBMatrix` displays an in-memory framebuffer to an LED matrix.
-//|
-//| .. class:: RGBMatrix(*, width, bit_depth, rgb_pins, addr_pins, clock_pin, latch_pin, output_enable_pin, doublebuffer=True, framebuffer=None, height=0)
+
+//| :class:`~rgbmatrix.RGBMatrix` displays an in-memory framebuffer to an LED matrix."""
//|
-//| Create a RGBMatrix object with the given attributes. The height of
-//| the display is determined by the number of rgb and address pins:
-//| len(rgb_pins) // 3 * 2 ** len(address_pins). With 6 RGB pins and 4
-//| address lines, the display will be 32 pixels tall. If the optional height
-//| parameter is specified and is not 0, it is checked against the calculated
-//| height.
+//| def __init__(self, *, width: Any, bit_depth: Any, rgb_pins: Any, addr_pins: Any, clock_pin: Any, latch_pin: Any, output_enable_pin: Any, doublebuffer: Any = True, framebuffer: Any = None, height: Any = 0):
+//| """Create a RGBMatrix object with the given attributes. The height of
+//| the display is determined by the number of rgb and address pins:
+//| len(rgb_pins) // 3 * 2 ** len(address_pins). With 6 RGB pins and 4
+//| address lines, the display will be 32 pixels tall. If the optional height
+//| parameter is specified and is not 0, it is checked against the calculated
+//| height.
//|
-//| Up to 30 RGB pins and 8 address pins are supported.
+//| Up to 30 RGB pins and 8 address pins are supported.
//|
-//| The RGB pins must be within a single "port" and performance and memory
-//| usage are best when they are all within "close by" bits of the port.
-//| The clock pin must also be on the same port as the RGB pins. See the
-//| documentation of the underlying protomatter C library for more
-//| information. Generally, Adafruit's interface boards are designed so
-//| that these requirements are met when matched with the intended
-//| microcontroller board. For instance, the Feather M4 Express works
-//| together with the RGB Matrix Feather.
+//| The RGB pins must be within a single "port" and performance and memory
+//| usage are best when they are all within "close by" bits of the port.
+//| The clock pin must also be on the same port as the RGB pins. See the
+//| documentation of the underlying protomatter C library for more
+//| information. Generally, Adafruit's interface boards are designed so
+//| that these requirements are met when matched with the intended
+//| microcontroller board. For instance, the Feather M4 Express works
+//| together with the RGB Matrix Feather.
//|
-//| The framebuffer is in "RGB565" format.
+//| The framebuffer is in "RGB565" format.
//|
-//| "RGB565" means that it is organized as a series of 16-bit numbers
-//| where the highest 5 bits are interpreted as red, the next 6 as
-//| green, and the final 5 as blue. The object can be any buffer, but
-//| `array.array` and `ulab.array` objects are most often useful.
-//| To update the content, modify the framebuffer and call refresh.
+//| "RGB565" means that it is organized as a series of 16-bit numbers
+//| where the highest 5 bits are interpreted as red, the next 6 as
+//| green, and the final 5 as blue. The object can be any buffer, but
+//| `array.array` and `ulab.array` objects are most often useful.
+//| To update the content, modify the framebuffer and call refresh.
//|
-//| If a framebuffer is not passed in, one is allocated and initialized
-//| to all black. In any case, the framebuffer can be retrieved
-//| by passing the RGBMatrix object to memoryview().
+//| If a framebuffer is not passed in, one is allocated and initialized
+//| to all black. In any case, the framebuffer can be retrieved
+//| by passing the RGBMatrix object to memoryview().
//|
-//| If doublebuffer is False, some memory is saved, but the display may
-//| flicker during updates.
+//| If doublebuffer is False, some memory is saved, but the display may
+//| flicker during updates.
//|
-//| A RGBMatrix is often used in conjunction with a
-//| `framebufferio.FramebufferDisplay`.
+//| A RGBMatrix is often used in conjunction with a
+//| `framebufferio.FramebufferDisplay`."""
//|
STATIC mp_obj_t rgbmatrix_rgbmatrix_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
@@ -245,11 +246,11 @@ STATIC mp_obj_t rgbmatrix_rgbmatrix_make_new(const mp_obj_type_t *type, size_t n
return MP_OBJ_FROM_PTR(self);
}
-//| .. method:: deinit
-//|
-//| Free the resources (pins, timers, etc.) associated with this
-//| rgbmatrix instance. After deinitialization, no further operations
-//| may be performed.
+//| def deinit(self, ) -> Any:
+//| """Free the resources (pins, timers, etc.) associated with this
+//| rgbmatrix instance. After deinitialization, no further operations
+//| may be performed."""
+//| ...
//|
STATIC mp_obj_t rgbmatrix_rgbmatrix_deinit(mp_obj_t self_in) {
rgbmatrix_rgbmatrix_obj_t *self = (rgbmatrix_rgbmatrix_obj_t*)self_in;
@@ -265,10 +266,9 @@ static void check_for_deinit(rgbmatrix_rgbmatrix_obj_t *self) {
}
}
-//| .. attribute:: brightness
-//|
-//| In the current implementation, 0.0 turns the display off entirely
-//| and any other value up to 1.0 turns the display on fully.
+//| brightness: Any = ...
+//| """In the current implementation, 0.0 turns the display off entirely
+//| and any other value up to 1.0 turns the display on fully."""
//|
STATIC mp_obj_t rgbmatrix_rgbmatrix_get_brightness(mp_obj_t self_in) {
rgbmatrix_rgbmatrix_obj_t *self = (rgbmatrix_rgbmatrix_obj_t*)self_in;
@@ -297,10 +297,9 @@ const mp_obj_property_t rgbmatrix_rgbmatrix_brightness_obj = {
(mp_obj_t)&mp_const_none_obj},
};
-//| .. method:: refresh()
-//|
-//| Transmits the color data in the buffer to the pixels so that
-//| they are shown.
+//| def refresh(self, ) -> Any: ...
+//| """Transmits the color data in the buffer to the pixels so that
+//| they are shown."""
//|
STATIC mp_obj_t rgbmatrix_rgbmatrix_refresh(mp_obj_t self_in) {
rgbmatrix_rgbmatrix_obj_t *self = (rgbmatrix_rgbmatrix_obj_t*)self_in;
@@ -310,9 +309,8 @@ STATIC mp_obj_t rgbmatrix_rgbmatrix_refresh(mp_obj_t self_in) {
}
MP_DEFINE_CONST_FUN_OBJ_1(rgbmatrix_rgbmatrix_refresh_obj, rgbmatrix_rgbmatrix_refresh);
-//| .. attribute:: width
-//|
-//| The width of the display, in pixels
+//| width: Any = ...
+//| """The width of the display, in pixels"""
//|
STATIC mp_obj_t rgbmatrix_rgbmatrix_get_width(mp_obj_t self_in) {
rgbmatrix_rgbmatrix_obj_t *self = (rgbmatrix_rgbmatrix_obj_t*)self_in;
@@ -327,9 +325,8 @@ const mp_obj_property_t rgbmatrix_rgbmatrix_width_obj = {
(mp_obj_t)&mp_const_none_obj},
};
-//| .. attribute:: height
-//|
-//| The height of the display, in pixels
+//| height: Any = ...
+//| """The height of the display, in pixels"""
//|
STATIC mp_obj_t rgbmatrix_rgbmatrix_get_height(mp_obj_t self_in) {
rgbmatrix_rgbmatrix_obj_t *self = (rgbmatrix_rgbmatrix_obj_t*)self_in;
diff --git a/shared-bindings/rgbmatrix/__init__.c b/shared-bindings/rgbmatrix/__init__.c
index 662d2c4f6..f61002a78 100644
--- a/shared-bindings/rgbmatrix/__init__.c
+++ b/shared-bindings/rgbmatrix/__init__.c
@@ -31,7 +31,7 @@
#include "shared-bindings/rgbmatrix/RGBMatrix.h"
-//| :mod:`rgbmatrix` --- Low-level routines for bitbanged LED matrices
+//| """:mod:`rgbmatrix` --- Low-level routines for bitbanged LED matrices
//| =====================================================================
//|
//| .. module:: rgbmatrix
@@ -40,7 +40,8 @@
//| .. toctree::
//| :maxdepth: 3
//|
-//| RGBMatrix
+//| RGBMatrix"""
+//|
STATIC const mp_rom_map_elem_t rgbmatrix_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_rgbmatrix) },
diff --git a/shared-bindings/rotaryio/IncrementalEncoder.c b/shared-bindings/rotaryio/IncrementalEncoder.c
index 058241d24..a10fb6fd5 100644
--- a/shared-bindings/rotaryio/IncrementalEncoder.c
+++ b/shared-bindings/rotaryio/IncrementalEncoder.c
@@ -34,35 +34,36 @@
#include "shared-bindings/rotaryio/IncrementalEncoder.h"
#include "shared-bindings/util.h"
-//| .. currentmodule:: rotaryio
+//| class IncrementalEncoder:
+//| """.. currentmodule:: rotaryio
//|
-//| :class:`IncrementalEncoder` -- Track the relative position of an incremental encoder
-//| ====================================================================================
+//| :class:`IncrementalEncoder` -- Track the relative position of an incremental encoder
+//| ====================================================================================
//|
-//| IncrementalEncoder determines the relative rotational position based on two series of pulses.
+//| IncrementalEncoder determines the relative rotational position based on two series of pulses."""
//|
-//| .. class:: IncrementalEncoder(pin_a, pin_b)
+//| def __init__(self, pin_a: microcontroller.Pin, pin_b: microcontroller.Pin):
+//| """Create an IncrementalEncoder object associated with the given pins. It tracks the positional
+//| state of an incremental rotary encoder (also known as a quadrature encoder.) Position is
+//| relative to the position when the object is contructed.
//|
-//| Create an IncrementalEncoder object associated with the given pins. It tracks the positional
-//| state of an incremental rotary encoder (also known as a quadrature encoder.) Position is
-//| relative to the position when the object is contructed.
+//| :param ~microcontroller.Pin pin_a: First pin to read pulses from.
+//| :param ~microcontroller.Pin pin_b: Second pin to read pulses from.
//|
-//| :param ~microcontroller.Pin pin_a: First pin to read pulses from.
-//| :param ~microcontroller.Pin pin_b: Second pin to read pulses from.
+//| For example::
//|
-//| For example::
+//| import rotaryio
+//| import time
+//| from board import *
//|
-//| import rotaryio
-//| import time
-//| from board import *
-//|
-//| enc = rotaryio.IncrementalEncoder(D1, D2)
-//| last_position = None
-//| while True:
-//| position = enc.position
-//| if last_position == None or position != last_position:
-//| print(position)
-//| last_position = position
+//| enc = rotaryio.IncrementalEncoder(D1, D2)
+//| last_position = None
+//| while True:
+//| position = enc.position
+//| if last_position == None or position != last_position:
+//| print(position)
+//| last_position = position"""
+//| ...
//|
STATIC mp_obj_t rotaryio_incrementalencoder_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_pin_a, ARG_pin_b };
@@ -84,9 +85,9 @@ STATIC mp_obj_t rotaryio_incrementalencoder_make_new(const mp_obj_type_t *type,
return MP_OBJ_FROM_PTR(self);
}
-//| .. method:: deinit()
-//|
-//| Deinitializes the IncrementalEncoder and releases any hardware resources for reuse.
+//| def deinit(self, ) -> Any:
+//| """Deinitializes the IncrementalEncoder and releases any hardware resources for reuse."""
+//| ...
//|
STATIC mp_obj_t rotaryio_incrementalencoder_deinit(mp_obj_t self_in) {
rotaryio_incrementalencoder_obj_t *self = MP_OBJ_TO_PTR(self_in);
@@ -101,16 +102,16 @@ STATIC void check_for_deinit(rotaryio_incrementalencoder_obj_t *self) {
}
}
-//| .. method:: __enter__()
-//|
-//| No-op used by Context Managers.
+//| def __enter__(self, ) -> Any:
+//| """No-op used by Context Managers."""
+//| ...
//|
// Provided by context manager helper.
-//| .. method:: __exit__()
-//|
-//| Automatically deinitializes the hardware when exiting a context. See
-//| :ref:`lifetime-and-contextmanagers` for more info.
+//| def __exit__(self, ) -> Any:
+//| """Automatically deinitializes the hardware when exiting a context. See
+//| :ref:`lifetime-and-contextmanagers` for more info."""
+//| ...
//|
STATIC mp_obj_t rotaryio_incrementalencoder_obj___exit__(size_t n_args, const mp_obj_t *args) {
(void)n_args;
@@ -120,10 +121,9 @@ STATIC mp_obj_t rotaryio_incrementalencoder_obj___exit__(size_t n_args, const mp
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(rotaryio_incrementalencoder___exit___obj, 4, 4, rotaryio_incrementalencoder_obj___exit__);
-//| .. attribute:: position
-//|
-//| The current position in terms of pulses. The number of pulses per rotation is defined by the
-//| specific hardware.
+//| position: Any = ...
+//| """The current position in terms of pulses. The number of pulses per rotation is defined by the
+//| specific hardware."""
//|
STATIC mp_obj_t rotaryio_incrementalencoder_obj_get_position(mp_obj_t self_in) {
rotaryio_incrementalencoder_obj_t *self = MP_OBJ_TO_PTR(self_in);
diff --git a/shared-bindings/rotaryio/__init__.c b/shared-bindings/rotaryio/__init__.c
index a0166771a..0cc8eb556 100644
--- a/shared-bindings/rotaryio/__init__.c
+++ b/shared-bindings/rotaryio/__init__.c
@@ -33,7 +33,7 @@
#include "shared-bindings/rotaryio/__init__.h"
#include "shared-bindings/rotaryio/IncrementalEncoder.h"
-//| :mod:`rotaryio` --- Support for reading rotation sensors
+//| """:mod:`rotaryio` --- Support for reading rotation sensors
//| ========================================================
//|
//| .. module:: rotaryio
@@ -59,7 +59,7 @@
//| All classes change hardware state and should be deinitialized when they
//| are no longer needed if the program continues after use. To do so, either
//| call :py:meth:`!deinit` or use a context manager. See
-//| :ref:`lifetime-and-contextmanagers` for more info.
+//| :ref:`lifetime-and-contextmanagers` for more info."""
//|
STATIC const mp_rom_map_elem_t rotaryio_module_globals_table[] = {
diff --git a/shared-bindings/rtc/RTC.c b/shared-bindings/rtc/RTC.c
index 3ff09a4ec..8a3e89d73 100644
--- a/shared-bindings/rtc/RTC.c
+++ b/shared-bindings/rtc/RTC.c
@@ -38,14 +38,19 @@
const rtc_rtc_obj_t rtc_rtc_obj = {{&rtc_rtc_type}};
-//| .. currentmodule:: rtc
-//|
-//| :class:`RTC` --- Real Time Clock
-//| --------------------------------
+
+
+
+
+//| class RTC:
+//| """.. currentmodule:: rtc
//|
-//| .. class:: RTC()
+//| :class:`RTC` --- Real Time Clock
+//| --------------------------------"""
//|
-//| This class represents the onboard Real Time Clock. It is a singleton and will always return the same instance.
+//| def __init__(self, ):
+//| """This class represents the onboard Real Time Clock. It is a singleton and will always return the same instance."""
+//| ...
//|
STATIC mp_obj_t rtc_rtc_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
// No arguments
@@ -55,25 +60,24 @@ STATIC mp_obj_t rtc_rtc_make_new(const mp_obj_type_t *type, size_t n_args, const
return (mp_obj_t)&rtc_rtc_obj;
}
-//| .. attribute:: datetime
-//|
-//| The current date and time of the RTC as a `time.struct_time`.
+//| datetime: Any = ...
+//| """The current date and time of the RTC as a `time.struct_time`.
//|
-//| This must be set to the current date and time whenever the board loses power::
+//| This must be set to the current date and time whenever the board loses power::
//|
-//| import rtc
-//| import time
+//| import rtc
+//| import time
//|
-//| r = rtc.RTC()
-//| r.datetime = rtctime.struct_time((2019, 5, 29, 15, 14, 15, 0, -1, -1))
+//| r = rtc.RTC()
+//| r.datetime = rtctime.struct_time((2019, 5, 29, 15, 14, 15, 0, -1, -1))
//|
//|
-//| Once set, the RTC will automatically update this value as time passes. You can read this
-//| property to get a snapshot of the current time::
+//| Once set, the RTC will automatically update this value as time passes. You can read this
+//| property to get a snapshot of the current time::
//|
-//| current_time = r.datetime
-//| print(current_time)
-//| # struct_time(tm_year=2019, tm_month=5, ...)
+//| current_time = r.datetime
+//| print(current_time)
+//| # struct_time(tm_year=2019, tm_month=5, ...)"""
//|
STATIC mp_obj_t rtc_rtc_obj_get_datetime(mp_obj_t self_in) {
timeutils_struct_time_t tm;
@@ -97,12 +101,11 @@ const mp_obj_property_t rtc_rtc_datetime_obj = {
(mp_obj_t)&mp_const_none_obj},
};
-//| .. attribute:: calibration
-//|
-//| The RTC calibration value as an `int`.
+//| calibration: Any = ...
+//| """The RTC calibration value as an `int`.
//|
//| A positive value speeds up the clock and a negative value slows it down.
-//| Range and value is hardware specific, but one step is often approximately 1 ppm.
+//| Range and value is hardware specific, but one step is often approximately 1 ppm."""
//|
STATIC mp_obj_t rtc_rtc_obj_get_calibration(mp_obj_t self_in) {
int calibration = common_hal_rtc_get_calibration();
diff --git a/shared-bindings/rtc/__init__.c b/shared-bindings/rtc/__init__.c
index 22eda9b66..66669ca5f 100644
--- a/shared-bindings/rtc/__init__.c
+++ b/shared-bindings/rtc/__init__.c
@@ -31,7 +31,7 @@
#include "shared-bindings/rtc/RTC.h"
#include "shared-bindings/time/__init__.h"
-//| :mod:`rtc` --- Real Time Clock
+//| """:mod:`rtc` --- Real Time Clock
//| ========================================================
//|
//| .. module:: rtc
@@ -47,7 +47,7 @@
//| .. toctree::
//| :maxdepth: 3
//|
-//| RTC
+//| RTC"""
//|
void rtc_reset(void) {
@@ -62,22 +62,22 @@ mp_obj_t rtc_get_time_source_time(void) {
return struct_time_from_tm(&tm);
}
-//| .. function:: set_time_source(rtc)
+//| def set_time_source(rtc: Any) -> Any:
+//| """Sets the RTC time source used by :func:`time.localtime`.
+//| The default is :class:`rtc.RTC`, but it's useful to use this to override the
+//| time source for testing purposes. For example::
//|
-//| Sets the RTC time source used by :func:`time.localtime`.
-//| The default is :class:`rtc.RTC`, but it's useful to use this to override the
-//| time source for testing purposes. For example::
+//| import rtc
+//| import time
//|
-//| import rtc
-//| import time
+//| class RTC(object):
+//| @property
+//| def datetime(self):
+//| return time.struct_time((2018, 3, 17, 21, 1, 47, 0, 0, 0))
//|
-//| class RTC(object):
-//| @property
-//| def datetime(self):
-//| return time.struct_time((2018, 3, 17, 21, 1, 47, 0, 0, 0))
-//|
-//| r = RTC()
-//| rtc.set_time_source(r)
+//| r = RTC()
+//| rtc.set_time_source(r)"""
+//| ...
//|
STATIC mp_obj_t rtc_set_time_source(mp_obj_t time_source) {
MP_STATE_VM(rtc_time_source) = time_source;