|
48 | 48 | //| The value itself can be one of: |
49 | 49 | //| |
50 | 50 | //| :param buf address: The address value to encapsulate. A buffer object (bytearray, bytes) of 6 bytes. |
51 | | -//| :param int address_type: one of these integers: |
52 | | -//| - ``bleio.Address.PUBLIC`` = 0 |
53 | | -//| - ``bleio.Address.RANDOM_STATIC`` = 1 |
54 | | -//| - ``bleio.Address.RANDOM_PRIVATE_RESOLVABLE`` = 2 |
55 | | -//| - ``bleio.Address.RANDOM_PRIVATE_NON_RESOLVABLE`` = 3 |
| 51 | +//| :param int address_type: one of the integer values: `PUBLIC`, `RANDOM_STATIC`, |
| 52 | +//| `RANDOM_PRIVATE_RESOLVABLE`, or `RANDOM_PRIVATE_NON_RESOLVABLE`. |
56 | 53 | //| |
57 | | - |
58 | 54 | STATIC mp_obj_t bleio_address_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { |
59 | 55 | enum { ARG_address, ARG_address_type }; |
60 | 56 | static const mp_arg_t allowed_args[] = { |
@@ -105,12 +101,9 @@ const mp_obj_property_t bleio_address_address_bytes_obj = { |
105 | 101 |
|
106 | 102 | //| .. attribute:: type |
107 | 103 | //| |
108 | | -//| The address type (read-only). One of these integers: |
109 | | -//| |
110 | | -//| - ``bleio.Address.PUBLIC`` = 0 |
111 | | -//| - ``bleio.Address.RANDOM_STATIC`` = 1 |
112 | | -//| - ``bleio.Address.RANDOM_PRIVATE_RESOLVABLE`` = 2 |
113 | | -//| - ``bleio.Address.RANDOM_PRIVATE_NON_RESOLVABLE`` = 3 |
| 104 | +//| The address type (read-only). |
| 105 | +//| One of the integer values: `PUBLIC`, `RANDOM_STATIC`, |
| 106 | +//| `RANDOM_PRIVATE_RESOLVABLE`, or `RANDOM_PRIVATE_NON_RESOLVABLE`. |
114 | 107 | //| |
115 | 108 | STATIC mp_obj_t bleio_address_get_type(mp_obj_t self_in) { |
116 | 109 | bleio_address_obj_t *self = MP_OBJ_TO_PTR(self_in); |
@@ -154,16 +147,37 @@ STATIC mp_obj_t bleio_address_binary_op(mp_binary_op_t op, mp_obj_t lhs_in, mp_o |
154 | 147 |
|
155 | 148 | STATIC void bleio_address_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) { |
156 | 149 | bleio_address_obj_t *self = MP_OBJ_TO_PTR(self_in); |
157 | | - mp_obj_t address_bytes = common_hal_bleio_address_get_address_bytes(self); |
158 | | - |
159 | | - mp_buffer_info_t buf_info; |
160 | | - mp_get_buffer_raise(address_bytes, &buf_info, MP_BUFFER_READ); |
161 | | - const uint8_t *buf = (uint8_t *) buf_info.buf; |
162 | | - mp_printf(print, |
163 | | - "%02x:%02x:%02x:%02x:%02x:%02x", |
164 | | - buf[5], buf[4], buf[3], buf[2], buf[1], buf[0]); |
| 150 | + if (kind == PRINT_STR) { |
| 151 | + mp_buffer_info_t buf_info; |
| 152 | + mp_obj_t address_bytes = common_hal_bleio_address_get_address_bytes(self); |
| 153 | + mp_get_buffer_raise(address_bytes, &buf_info, MP_BUFFER_READ); |
| 154 | + |
| 155 | + const uint8_t *buf = (uint8_t *) buf_info.buf; |
| 156 | + mp_printf(print, |
| 157 | + "%02x:%02x:%02x:%02x:%02x:%02x", |
| 158 | + buf[5], buf[4], buf[3], buf[2], buf[1], buf[0]); |
| 159 | + } else { |
| 160 | + mp_printf(print, "<Address>"); |
| 161 | + } |
165 | 162 | } |
166 | 163 |
|
| 164 | +//| .. data:: PUBLIC |
| 165 | +//| |
| 166 | +//| A publicly known address, with a company ID (high 24 bits)and company-assigned part (low 24 bits). |
| 167 | +//| |
| 168 | +//| .. data:: RANDOM_STATIC |
| 169 | +//| |
| 170 | +//| A randomly generated address that does not change often. It may never change or may change after |
| 171 | +//| a power cycle. |
| 172 | +//| |
| 173 | +//| .. data:: RANDOM_PRIVATE_RESOLVABLE |
| 174 | +//| |
| 175 | +//| An address that is usable when the peer knows the other device's secret Identity Resolving Key (IRK). |
| 176 | +//| |
| 177 | +//| .. data:: RANDOM_PRIVATE_NON_RESOLVABLE |
| 178 | +//| |
| 179 | +//| A randomly generated address that changes on every connection. |
| 180 | +//| |
167 | 181 | STATIC const mp_rom_map_elem_t bleio_address_locals_dict_table[] = { |
168 | 182 | { MP_ROM_QSTR(MP_QSTR_address_bytes), MP_ROM_PTR(&bleio_address_address_bytes_obj) }, |
169 | 183 | { MP_ROM_QSTR(MP_QSTR_type), MP_ROM_PTR(&bleio_address_type_obj) }, |
|
0 commit comments