summaryrefslogtreecommitdiff
path: root/shared-bindings
diff options
context:
space:
mode:
authorNick Moore <nick@zoic.org>2018-06-10 22:01:35 +1000
committerNick Moore <nick@zoic.org>2018-06-10 22:01:35 +1000
commit972b03850fc1654ff4e236ce4150a1bb4d484552 (patch)
tree54993d9d11dae7681d0c2d8129d7110d1b7b6b83 /shared-bindings
parent6af1fbacc94c165ec9818585dc3527d675917908 (diff)
parentb2d98edb4ed99efabd862e540613e4ac8550b50d (diff)
Merge branch 'master' into circuitpython-nickzoic-716-pulseio-esp8266
Diffstat (limited to 'shared-bindings')
-rw-r--r--shared-bindings/pulseio/PulseIn.c23
-rw-r--r--shared-bindings/pulseio/PulseIn.h1
-rw-r--r--shared-bindings/rotaryio/IncrementalEncoder.c26
3 files changed, 37 insertions, 13 deletions
diff --git a/shared-bindings/pulseio/PulseIn.c b/shared-bindings/pulseio/PulseIn.c
index 736441c74..862dbd99d 100644
--- a/shared-bindings/pulseio/PulseIn.c
+++ b/shared-bindings/pulseio/PulseIn.c
@@ -219,6 +219,26 @@ const mp_obj_property_t pulseio_pulsein_maxlen_obj = {
(mp_obj_t)&mp_const_none_obj},
};
+//| .. attribute:: paused
+//|
+//| True when pulse capture is paused as a result of :py:func:`pause` or an error during capture
+//| such as a signal that is too fast.
+//|
+STATIC mp_obj_t pulseio_pulsein_obj_get_paused(mp_obj_t self_in) {
+ pulseio_pulsein_obj_t *self = MP_OBJ_TO_PTR(self_in);
+ raise_error_if_deinited(common_hal_pulseio_pulsein_deinited(self));
+
+ return mp_obj_new_bool(common_hal_pulseio_pulsein_get_paused(self));
+}
+MP_DEFINE_CONST_FUN_OBJ_1(pulseio_pulsein_get_paused_obj, pulseio_pulsein_obj_get_paused);
+
+const mp_obj_property_t pulseio_pulsein_paused_obj = {
+ .base.type = &mp_type_property,
+ .proxy = {(mp_obj_t)&pulseio_pulsein_get_paused_obj,
+ (mp_obj_t)&mp_const_none_obj,
+ (mp_obj_t)&mp_const_none_obj},
+};
+
//| .. method:: __len__()
//|
//| Returns the current pulse length
@@ -285,7 +305,10 @@ STATIC const mp_rom_map_elem_t pulseio_pulsein_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_resume), MP_ROM_PTR(&pulseio_pulsein_resume_obj) },
{ MP_ROM_QSTR(MP_QSTR_clear), MP_ROM_PTR(&pulseio_pulsein_clear_obj) },
{ MP_ROM_QSTR(MP_QSTR_popleft), MP_ROM_PTR(&pulseio_pulsein_popleft_obj) },
+
+ // Properties
{ MP_ROM_QSTR(MP_QSTR_maxlen), MP_ROM_PTR(&pulseio_pulsein_maxlen_obj) },
+ { MP_ROM_QSTR(MP_QSTR_paused), MP_ROM_PTR(&pulseio_pulsein_paused_obj) },
};
STATIC MP_DEFINE_CONST_DICT(pulseio_pulsein_locals_dict, pulseio_pulsein_locals_dict_table);
diff --git a/shared-bindings/pulseio/PulseIn.h b/shared-bindings/pulseio/PulseIn.h
index 88b6f356e..e28a3c2df 100644
--- a/shared-bindings/pulseio/PulseIn.h
+++ b/shared-bindings/pulseio/PulseIn.h
@@ -41,6 +41,7 @@ extern void common_hal_pulseio_pulsein_resume(pulseio_pulsein_obj_t* self, uint1
extern void common_hal_pulseio_pulsein_clear(pulseio_pulsein_obj_t* self);
extern uint16_t common_hal_pulseio_pulsein_popleft(pulseio_pulsein_obj_t* self);
extern uint16_t common_hal_pulseio_pulsein_get_maxlen(pulseio_pulsein_obj_t* self);
+extern bool common_hal_pulseio_pulsein_get_paused(pulseio_pulsein_obj_t* self);
extern uint16_t common_hal_pulseio_pulsein_get_len(pulseio_pulsein_obj_t* self);
extern uint16_t common_hal_pulseio_pulsein_get_item(pulseio_pulsein_obj_t* self, int16_t index);
diff --git a/shared-bindings/rotaryio/IncrementalEncoder.c b/shared-bindings/rotaryio/IncrementalEncoder.c
index b2609f4a8..65d4ba98b 100644
--- a/shared-bindings/rotaryio/IncrementalEncoder.c
+++ b/shared-bindings/rotaryio/IncrementalEncoder.c
@@ -50,19 +50,19 @@
//| :param ~microcontroller.Pin pin_a: First pin to read pulses from.
//| :param ~microcontroller.Pin pin_b: Second pin to read pulses from.
//|
-//| For example::
-//|
-//| 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
+//| For example::
+//|
+//| 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
//|
STATIC mp_obj_t rotaryio_incrementalencoder_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *pos_args) {
mp_arg_check_num(n_args, n_kw, 2, 2, true);