nrf5/modules: Adding constants class to ubluepy which will contain easy access to common bluetooth le numbers and definitions for the bluetooth stack.

This commit is contained in:
Glenn Ruben Bakke 2017-02-18 00:11:10 +01:00
parent f0f6ad20b2
commit af2f32ed6a
4 changed files with 56 additions and 3 deletions

View File

@ -172,6 +172,7 @@ DRIVERS_SRC_C += $(addprefix modules/,\
ubluepy/ubluepy_characteristic.c \
ubluepy/ubluepy_uuid.c \
ubluepy/ubluepy_delegate.c \
ubluepy/ubluepy_constants.c \
)
#ifeq ($(SD), )

View File

@ -33,6 +33,7 @@ extern const mp_obj_type_t ubluepy_service_type;
extern const mp_obj_type_t ubluepy_uuid_type;
extern const mp_obj_type_t ubluepy_characteristic_type;
extern const mp_obj_type_t ubluepy_delegate_type;
extern const mp_obj_type_t ubluepy_constants_type;
STATIC const mp_map_elem_t mp_module_ubluepy_globals_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_ubluepy) },
@ -52,6 +53,7 @@ STATIC const mp_map_elem_t mp_module_ubluepy_globals_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_UUID), (mp_obj_t)&ubluepy_uuid_type },
{ MP_OBJ_NEW_QSTR(MP_QSTR_Service), (mp_obj_t)&ubluepy_service_type },
{ MP_OBJ_NEW_QSTR(MP_QSTR_Characteristic), (mp_obj_t)&ubluepy_characteristic_type },
{ MP_OBJ_NEW_QSTR(MP_QSTR_constants), (mp_obj_t)&ubluepy_constants_type },
#if MICROPY_PY_UBLUEPY_DESCRIPTOR
{ MP_OBJ_NEW_QSTR(MP_QSTR_Descriptor), (mp_obj_t)&ubluepy_descriptor_type },
#endif

View File

@ -37,16 +37,16 @@ p.advertise(device_name="MicroPython")
DB setup:
from ubluepy import Service, Characteristic, UUID, Peripheral
from ubluepy import Service, Characteristic, UUID, Peripheral, constants
from pyb import LED
def event_handler(id, conn_handle, length, data):
print("BLE event:", id, "conn_handle:", conn_handle, "length:", length)
if id == 16:
if id == constants.EVT_GAP_CONNECTED:
# connected
LED(2).on()
elif id == 17:
elif id == constants.EVT_GAP_DISCONNECTED:
# disconnect
LED(2).off()

View File

@ -0,0 +1,50 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Glenn Ruben Bakke
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "py/obj.h"
#include "py/runtime.h"
#if MICROPY_PY_UBLUEPY
#include "modubluepy.h"
STATIC const mp_map_elem_t ubluepy_constants_locals_dict_table[] = {
#if (BLUETOOTH_SD == 132)
// GAP events
{ MP_OBJ_NEW_QSTR(MP_QSTR_EVT_GAP_CONNECTED), MP_OBJ_NEW_SMALL_INT(0x16) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_EVT_GAP_DISCONNECTED), MP_OBJ_NEW_SMALL_INT(0x17) },
#endif
};
STATIC MP_DEFINE_CONST_DICT(ubluepy_constants_locals_dict, ubluepy_constants_locals_dict_table);
const mp_obj_type_t ubluepy_constants_type = {
{ &mp_type_type },
.name = MP_QSTR_constants,
.locals_dict = (mp_obj_t)&ubluepy_constants_locals_dict
};
#endif // MICROPY_PY_UBLUEPY