mesh: provide att db with mesh provisioning service

This commit is contained in:
Matthias Ringwald 2019-05-08 15:54:18 +02:00
parent 0f163b6ea8
commit 0b2c76e9ae
3 changed files with 25 additions and 9 deletions

View File

@ -45,12 +45,23 @@ list(SORT SOURCES)
add_library(btstack STATIC ${SOURCES})
# list of targets
set(TARGETS_C mesh.c)
set(EXAMPLES_C mesh.c)
file(GLOB EXAMPLES_GATT "*.gatt")
# create targets
foreach(EXAMPLE_FILE ${TARGETS_C})
foreach(EXAMPLE_FILE ${EXAMPLES_C})
get_filename_component(EXAMPLE ${EXAMPLE_FILE} NAME_WE)
message("example ${EXAMPLE}")
add_executable(${EXAMPLE} ${EXAMPLE_FILE})
if ( "${EXAMPLES_GATT}" MATCHES ${EXAMPLE} )
message("example ${EXAMPLE} -- with GATT DB")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${EXAMPLE}.h
COMMAND ${CMAKE_SOURCE_DIR}/../../tool/compile_gatt.py ${CMAKE_SOURCE_DIR}/${EXAMPLE}.gatt ${CMAKE_CURRENT_BINARY_DIR}/${EXAMPLE}.h > /dev/null
)
add_executable(${EXAMPLE} ${EXAMPLE_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${EXAMPLE}.h)
else()
message("example ${EXAMPLE}")
add_executable(${EXAMPLE} ${EXAMPLE_FILE})
endif()
target_link_libraries(${EXAMPLE} btstack)
endforeach(EXAMPLE_FILE)

View File

@ -46,8 +46,8 @@ LDFLAGS += $(shell pkg-config libusb-1.0 --libs)
LDFLAGS += -lCppUTest -lCppUTestExt
mesh: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_OBJ} pb_adv.o pb_gatt.o mesh_foundation.o mesh_proxy_service_server.o mesh_provisioning_service_server.o mesh_crypto.o provisioning_device.o mesh_network.o mesh_peer.o mesh_lower_transport.o mesh_transport.o mesh_virtual_addresses.o mesh_keys.o mesh.o
${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
mesh: mesh.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_OBJ} pb_adv.o pb_gatt.o mesh_foundation.o mesh_proxy_service_server.o mesh_provisioning_service_server.o mesh_crypto.o provisioning_device.o mesh_network.o mesh_peer.o mesh_lower_transport.o mesh_transport.o mesh_virtual_addresses.o mesh_keys.o mesh.o
${CC} $(filter-out *.h,$^) ${CFLAGS} ${LDFLAGS} -o $@
provisioner: ${CORE_OBJ} ${COMMON_OBJ} ${SM_OBJ} pb_adv.o mesh_crypto.o provisioning_provisioner.o provisioner.o
${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
@ -68,7 +68,7 @@ mesh_provisioning_device.h: mesh_provisioning_device.gatt
python ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
mesh_provisioning_device: mesh_provisioning_device.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_OBJ} pb_adv.o pb_gatt.o mesh_crypto.o provisioning_device.o mesh_proxy_service_server.o mesh_provisioning_service_server.o mesh_provisioning_device.o
${CC} $(filter-out mesh_provisioning_device.h,$^) ${CFLAGS} ${LDFLAGS} -o $@
${CC} $(filter-out *.h,$^) ${CFLAGS} ${LDFLAGS} -o $@
mesh_proxy_server.h: mesh_proxy_server.gatt
python ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@

View File

@ -52,6 +52,7 @@
#include "provisioning_device.h"
#include "mesh_transport.h"
#include "mesh_foundation.h"
#include "mesh.h"
#include "btstack.h"
#include "btstack_tlv.h"
@ -125,6 +126,11 @@ static void mesh_setup_from_provisioning_data(const mesh_provisioning_data_t * p
mesh_provisioning_dump(provisioning_data);
}
static void mesh_setup_without_provisiong_data(void){
printf("Starting Unprovisioned Device Beacon\n");
beacon_unprovisioned_device_start(device_uuid, 0);
}
static mesh_transport_key_t test_application_key;
static void mesh_application_key_set(uint16_t netkey_index, uint16_t appkey_index, uint8_t aid, const uint8_t *application_key) {
@ -217,8 +223,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
if (prov_len){
mesh_setup_from_provisioning_data(&provisioning_data);
} else {
printf("Starting Unprovisioned Device Beacon\n");
beacon_unprovisioned_device_start(device_uuid, 0);
mesh_setup_without_provisiong_data();
}
// load app keys
mesh_load_app_keys();