mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
fix(nimble): Address compilation issues in nimble examples
This commit is contained in:
@@ -581,7 +581,7 @@ menu "BLE 5.x Features"
|
|||||||
|
|
||||||
config BT_NIMBLE_EXT_SCAN
|
config BT_NIMBLE_EXT_SCAN
|
||||||
bool "Enable extended scanning"
|
bool "Enable extended scanning"
|
||||||
depends on BT_NIMBLE_50_FEATURE_SUPPORT && BT_NIMBLE_ROLE_OBSERVER
|
depends on BT_NIMBLE_50_FEATURE_SUPPORT
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Enable this option to do extended scanning.
|
Enable this option to do extended scanning.
|
||||||
|
|||||||
Submodule components/bt/host/nimble/nimble updated: 9464ecd6e3...8fd41d86c4
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "esp_log.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BLE_SVC_GAP_TAG "ble_svc_gap"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stub implementations for GAP service APIs.
|
||||||
|
* These are compiled when CONFIG_BT_NIMBLE_GAP_SERVICE is disabled.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static inline void ble_svc_gap_init(void)
|
||||||
|
{
|
||||||
|
ESP_LOGE(BLE_SVC_GAP_TAG, "GAP service not enabled. Enable CONFIG_BT_NIMBLE_GAP_SERVICE to use this API.");
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int ble_svc_gap_device_name_set(const char *name)
|
||||||
|
{
|
||||||
|
(void)name;
|
||||||
|
ESP_LOGE(BLE_SVC_GAP_TAG, "GAP service not enabled. Enable CONFIG_BT_NIMBLE_GAP_SERVICE to use this API.");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline const char *ble_svc_gap_device_name(void)
|
||||||
|
{
|
||||||
|
ESP_LOGE(BLE_SVC_GAP_TAG, "GAP service not enabled. Enable CONFIG_BT_NIMBLE_GAP_SERVICE to use this API.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int ble_svc_gap_device_appearance_set(uint16_t appearance)
|
||||||
|
{
|
||||||
|
ESP_LOGE(BLE_SVC_GAP_TAG, "GAP service not enabled. Enable CONFIG_BT_NIMBLE_GAP_SERVICE to use this API.");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int ble_svc_gap_device_key_material_set(uint8_t *session_key, uint8_t *iv)
|
||||||
|
{
|
||||||
|
ESP_LOGE(BLE_SVC_GAP_TAG, "GAP service not enabled. Enable CONFIG_BT_NIMBLE_GAP_SERVICE to use this API.");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -1804,9 +1804,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*** @apache-mynewt-nimble/nimble/host/services/gap */
|
/*** @apache-mynewt-nimble/nimble/host/services/gap */
|
||||||
|
#ifdef CONFIG_BT_NIMBLE_GAP_SERVICE
|
||||||
#ifndef MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE
|
#ifndef MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE
|
||||||
#define MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE
|
#define MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE_WRITE_PERM
|
#ifndef MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE_WRITE_PERM
|
||||||
#if CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM
|
#if CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM
|
||||||
@@ -1819,10 +1821,12 @@
|
|||||||
#endif //CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM
|
#endif //CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM
|
||||||
#endif //MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE_WRITE_PERM
|
#endif //MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE_WRITE_PERM
|
||||||
|
|
||||||
|
#ifdef CONFIG_BT_NIMBLE_GAP_SERVICE
|
||||||
#ifndef MYNEWT_VAL_BLE_SVC_GAP_CENTRAL_ADDRESS_RESOLUTION
|
#ifndef MYNEWT_VAL_BLE_SVC_GAP_CENTRAL_ADDRESS_RESOLUTION
|
||||||
#define MYNEWT_VAL_BLE_SVC_GAP_CENTRAL_ADDRESS_RESOLUTION \
|
#define MYNEWT_VAL_BLE_SVC_GAP_CENTRAL_ADDRESS_RESOLUTION \
|
||||||
CONFIG_BT_NIMBLE_SVC_GAP_CENT_ADDR_RESOLUTION
|
CONFIG_BT_NIMBLE_SVC_GAP_CENT_ADDR_RESOLUTION
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME
|
#ifndef CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME
|
||||||
#define MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME "nimble"
|
#define MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME "nimble"
|
||||||
@@ -1830,9 +1834,11 @@
|
|||||||
#define MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME
|
#define MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_BT_NIMBLE_GAP_SERVICE
|
||||||
#ifndef MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME_MAX_LENGTH
|
#ifndef MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME_MAX_LENGTH
|
||||||
#define MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME_MAX_LENGTH CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN // According to the specification, the maximum length should be 248
|
#define MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME_MAX_LENGTH CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN // According to the specification, the maximum length should be 248
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME_WRITE_PERM
|
#ifndef MYNEWT_VAL_BLE_SVC_GAP_DEVICE_NAME_WRITE_PERM
|
||||||
#if CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM
|
#if CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2019-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2019-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -547,6 +547,7 @@ static int simple_ble_start(const simple_ble_cfg_t *cfg)
|
|||||||
ble_hs_cfg.sm_our_key_dist = BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;
|
ble_hs_cfg.sm_our_key_dist = BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;
|
||||||
ble_hs_cfg.sm_their_key_dist = BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;
|
ble_hs_cfg.sm_their_key_dist = BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init(cfg);
|
rc = gatt_svr_init(cfg);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(TAG, "Error initializing GATT server");
|
ESP_LOGE(TAG, "Error initializing GATT server");
|
||||||
@@ -565,6 +566,7 @@ static int simple_ble_start(const simple_ble_cfg_t *cfg)
|
|||||||
resp_data.name_len = strlen(ble_svc_gap_device_name());
|
resp_data.name_len = strlen(ble_svc_gap_device_name());
|
||||||
resp_data.name_is_complete = 1;
|
resp_data.name_is_complete = 1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set manufacturer data if protocomm_ble_mfg_data points to valid data */
|
/* Set manufacturer data if protocomm_ble_mfg_data points to valid data */
|
||||||
if (protocomm_ble_mfg_data != NULL) {
|
if (protocomm_ble_mfg_data != NULL) {
|
||||||
|
|||||||
@@ -78,12 +78,14 @@ void app_main(void) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_BT_NIMBLE_GAP_SERVICE
|
||||||
/* GAP service initialization */
|
/* GAP service initialization */
|
||||||
rc = gap_init();
|
rc = gap_init();
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(TAG, "failed to initialize GAP service, error code: %d", rc);
|
ESP_LOGE(TAG, "failed to initialize GAP service, error code: %d", rc);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* NimBLE host configuration initialization */
|
/* NimBLE host configuration initialization */
|
||||||
nimble_host_config_init();
|
nimble_host_config_init();
|
||||||
|
|||||||
@@ -82,12 +82,14 @@ void app_main(void) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_BT_NIMBLE_GAP_SERVICE
|
||||||
/* GAP service initialization */
|
/* GAP service initialization */
|
||||||
rc = gap_init();
|
rc = gap_init();
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(TAG, "failed to initialize GAP service, error code: %d", rc);
|
ESP_LOGE(TAG, "failed to initialize GAP service, error code: %d", rc);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* NimBLE host configuration initialization */
|
/* NimBLE host configuration initialization */
|
||||||
nimble_host_config_init();
|
nimble_host_config_init();
|
||||||
|
|||||||
@@ -251,6 +251,7 @@ int gap_init(void) {
|
|||||||
/* Local variables */
|
/* Local variables */
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
|
|
||||||
/* Initialize GAP service */
|
/* Initialize GAP service */
|
||||||
ble_svc_gap_init();
|
ble_svc_gap_init();
|
||||||
|
|
||||||
|
|||||||
@@ -109,12 +109,14 @@ void app_main(void) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_BT_NIMBLE_GAP_SERVICE
|
||||||
/* GAP service initialization */
|
/* GAP service initialization */
|
||||||
rc = gap_init();
|
rc = gap_init();
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(TAG, "failed to initialize GAP service, error code: %d", rc);
|
ESP_LOGE(TAG, "failed to initialize GAP service, error code: %d", rc);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* GATT server initialization */
|
/* GATT server initialization */
|
||||||
rc = gatt_svc_init();
|
rc = gatt_svc_init();
|
||||||
|
|||||||
@@ -118,12 +118,14 @@ void app_main(void) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_BT_NIMBLE_GAP_SERVICE
|
||||||
/* GAP service initialization */
|
/* GAP service initialization */
|
||||||
rc = gap_init();
|
rc = gap_init();
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(TAG, "failed to initialize GAP service, error code: %d", rc);
|
ESP_LOGE(TAG, "failed to initialize GAP service, error code: %d", rc);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* GATT server initialization */
|
/* GATT server initialization */
|
||||||
rc = gatt_svc_init();
|
rc = gatt_svc_init();
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ void printtime(struct ble_svc_cts_curr_time ctime) {
|
|||||||
ESP_LOGI(tag, "fractions : %d\n", ctime.et_256.fractions_256);
|
ESP_LOGI(tag, "fractions : %d\n", ctime.et_256.fractions_256);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/**
|
/**
|
||||||
* Application callback. Called when the read of the cts current time
|
* Application callback. Called when the read of the cts current time
|
||||||
* characteristic has completed.
|
* characteristic has completed.
|
||||||
@@ -137,6 +138,7 @@ ble_cts_cent_on_disc_complete(const struct peer *peer, int status, void *arg)
|
|||||||
*/
|
*/
|
||||||
ble_cts_cent_read_time(peer);
|
ble_cts_cent_read_time(peer);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initiates the GAP general discovery procedure.
|
* Initiates the GAP general discovery procedure.
|
||||||
@@ -434,6 +436,7 @@ ble_cts_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/* Perform service discovery */
|
/* Perform service discovery */
|
||||||
rc = peer_disc_all(event->connect.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_cts_cent_on_disc_complete, NULL);
|
ble_cts_cent_on_disc_complete, NULL);
|
||||||
@@ -441,6 +444,7 @@ ble_cts_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
@@ -485,6 +489,7 @@ ble_cts_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/*** Go for service discovery after encryption has been successfully enabled ***/
|
/*** Go for service discovery after encryption has been successfully enabled ***/
|
||||||
rc = peer_disc_all(event->connect.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_cts_cent_on_disc_complete, NULL);
|
ble_cts_cent_on_disc_complete, NULL);
|
||||||
@@ -492,6 +497,7 @@ ble_cts_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ static uint8_t ext_adv_pattern_1[] = {
|
|||||||
|
|
||||||
static const char *tag = "NimBLE_CTS_PRPH";
|
static const char *tag = "NimBLE_CTS_PRPH";
|
||||||
static const char *device_name = "ble_cts_prph";
|
static const char *device_name = "ble_cts_prph";
|
||||||
|
|
||||||
static int ble_cts_prph_gap_event(struct ble_gap_event *event, void *arg);
|
static int ble_cts_prph_gap_event(struct ble_gap_event *event, void *arg);
|
||||||
|
|
||||||
static uint8_t ble_cts_prph_addr_type;
|
static uint8_t ble_cts_prph_addr_type;
|
||||||
@@ -274,8 +273,6 @@ void ble_cts_prph_host_task(void *param)
|
|||||||
|
|
||||||
void app_main(void)
|
void app_main(void)
|
||||||
{
|
{
|
||||||
int rc;
|
|
||||||
|
|
||||||
/* Initialize NVS — it is used to store PHY calibration data */
|
/* Initialize NVS — it is used to store PHY calibration data */
|
||||||
esp_err_t ret = nvs_flash_init();
|
esp_err_t ret = nvs_flash_init();
|
||||||
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||||
@@ -302,12 +299,15 @@ void app_main(void)
|
|||||||
ble_hs_cfg.sm_sc = 1;
|
ble_hs_cfg.sm_sc = 1;
|
||||||
ble_hs_cfg.sm_mitm = 1;
|
ble_hs_cfg.sm_mitm = 1;
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
|
int rc;
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name */
|
/* Set the default device name */
|
||||||
rc = ble_svc_gap_device_name_set(device_name);
|
rc = ble_svc_gap_device_name_set(device_name);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Start the task */
|
/* Start the task */
|
||||||
nimble_port_freertos_init(ble_cts_prph_host_task);
|
nimble_port_freertos_init(ble_cts_prph_host_task);
|
||||||
|
|||||||
@@ -280,12 +280,14 @@ app_main(void)
|
|||||||
ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb;
|
ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb;
|
||||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("ble-dynamic-service");
|
rc = ble_svc_gap_device_name_set("ble-dynamic-service");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
nimble_port_freertos_init(dynamic_service_host_task);
|
nimble_port_freertos_init(dynamic_service_host_task);
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,10 @@ static struct km_peer kmp[CONFIG_BT_NIMBLE_MAX_CONNECTIONS + 1] = {0};
|
|||||||
|
|
||||||
static const char *tag = "ENC_ADV_DATA_CENT";
|
static const char *tag = "ENC_ADV_DATA_CENT";
|
||||||
static int enc_adv_data_cent_gap_event(struct ble_gap_event *event, void *arg);
|
static int enc_adv_data_cent_gap_event(struct ble_gap_event *event, void *arg);
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
static int mtu_def = 512;
|
static int mtu_def = 512;
|
||||||
|
#endif
|
||||||
|
|
||||||
void ble_store_config_init(void);
|
void ble_store_config_init(void);
|
||||||
|
|
||||||
@@ -37,6 +40,7 @@ enc_adv_data_find_peer(const uint8_t *peer_addr)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
static int
|
static int
|
||||||
enc_adv_data_set_km_exist(const uint8_t *peer_addr)
|
enc_adv_data_set_km_exist(const uint8_t *peer_addr)
|
||||||
{
|
{
|
||||||
@@ -47,6 +51,7 @@ enc_adv_data_set_km_exist(const uint8_t *peer_addr)
|
|||||||
kmp[ind].key_material_exist = true;
|
kmp[ind].key_material_exist = true;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
enc_adv_data_check_km_exist(const uint8_t *peer_addr)
|
enc_adv_data_check_km_exist(const uint8_t *peer_addr)
|
||||||
@@ -60,6 +65,7 @@ enc_adv_data_check_km_exist(const uint8_t *peer_addr)
|
|||||||
return kmp[ind].key_material_exist;
|
return kmp[ind].key_material_exist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/**
|
/**
|
||||||
* Application callback. Called when the read has completed.
|
* Application callback. Called when the read has completed.
|
||||||
*/
|
*/
|
||||||
@@ -175,6 +181,7 @@ enc_adv_data_cent_on_disc_complete(const struct peer *peer, int status, void *ar
|
|||||||
enc_adv_data_cent_read(peer);
|
enc_adv_data_cent_read(peer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initiates the GAP general discovery procedure.
|
* Initiates the GAP general discovery procedure.
|
||||||
@@ -444,6 +451,7 @@ enc_adv_data_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
MODLOG_DFLT(INFO, "");
|
MODLOG_DFLT(INFO, "");
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
rc = ble_att_set_preferred_mtu(mtu_def);
|
rc = ble_att_set_preferred_mtu(mtu_def);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Failed to set preferred MTU; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to set preferred MTU; rc = %d", rc);
|
||||||
@@ -453,6 +461,7 @@ enc_adv_data_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
ESP_LOGE(tag, "Failed to negotiate MTU; rc = %d", rc);
|
ESP_LOGE(tag, "Failed to negotiate MTU; rc = %d", rc);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Remember peer. */
|
/* Remember peer. */
|
||||||
rc = peer_add(event->connect.conn_handle);
|
rc = peer_add(event->connect.conn_handle);
|
||||||
@@ -511,12 +520,14 @@ enc_adv_data_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
print_conn_desc(&desc);
|
print_conn_desc(&desc);
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/* Perform service discovery */
|
/* Perform service discovery */
|
||||||
rc = peer_disc_all(event->enc_change.conn_handle,
|
rc = peer_disc_all(event->enc_change.conn_handle,
|
||||||
enc_adv_data_cent_on_disc_complete, NULL);
|
enc_adv_data_cent_on_disc_complete, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_NOTIFY_RX:
|
case BLE_GAP_EVENT_NOTIFY_RX:
|
||||||
|
|||||||
@@ -413,15 +413,16 @@ app_main(void)
|
|||||||
ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID;
|
ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("enc_adv_data_prph");
|
rc = ble_svc_gap_device_name_set("enc_adv_data_prph");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set the session key and initialization vector */
|
/* Set the session key and initialization vector */
|
||||||
|
|
||||||
rc = ble_svc_gap_device_key_material_set(km.session_key, km.iv);
|
rc = ble_svc_gap_device_key_material_set(km.session_key, km.iv);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ static int ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg);
|
|||||||
|
|
||||||
void ble_store_config_init(void);
|
void ble_store_config_init(void);
|
||||||
static void ble_htp_cent_scan(void);
|
static void ble_htp_cent_scan(void);
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/**
|
/**
|
||||||
* Application callback. Called when the attempt to subscribe to notifications
|
* Application callback. Called when the attempt to subscribe to notifications
|
||||||
* for the HTP intermediate temperature characteristic has completed.
|
* for the HTP intermediate temperature characteristic has completed.
|
||||||
@@ -255,7 +257,7 @@ ble_htp_cent_on_disc_complete(const struct peer *peer, int status, void *arg)
|
|||||||
*/
|
*/
|
||||||
ble_htp_cent_read_write_subscribe(peer);
|
ble_htp_cent_read_write_subscribe(peer);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
/**
|
/**
|
||||||
* Initiates the GAP general discovery procedure.
|
* Initiates the GAP general discovery procedure.
|
||||||
*/
|
*/
|
||||||
@@ -548,6 +550,7 @@ ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/* Perform service discovery */
|
/* Perform service discovery */
|
||||||
rc = peer_disc_all(event->connect.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_htp_cent_on_disc_complete, NULL);
|
ble_htp_cent_on_disc_complete, NULL);
|
||||||
@@ -555,6 +558,7 @@ ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
@@ -599,6 +603,7 @@ ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/*** Go for service discovery after encryption has been successfully enabled ***/
|
/*** Go for service discovery after encryption has been successfully enabled ***/
|
||||||
rc = peer_disc_all(event->connect.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_htp_cent_on_disc_complete, NULL);
|
ble_htp_cent_on_disc_complete, NULL);
|
||||||
@@ -606,6 +611,7 @@ ble_htp_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -201,6 +201,8 @@ ble_htp_prph_tx_htp_reset(void)
|
|||||||
static void
|
static void
|
||||||
ble_htp_prph_tx(TimerHandle_t ev)
|
ble_htp_prph_tx(TimerHandle_t ev)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#if CONFIG_BT_NIMBLE_HTP_SERVICE
|
||||||
int rc;
|
int rc;
|
||||||
float temp;
|
float temp;
|
||||||
|
|
||||||
@@ -222,6 +224,7 @@ ble_htp_prph_tx(TimerHandle_t ev)
|
|||||||
} else {
|
} else {
|
||||||
MODLOG_DFLT(INFO, "Error in sending notification");
|
MODLOG_DFLT(INFO, "Error in sending notification");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ble_htp_prph_tx_htp_reset();
|
ble_htp_prph_tx_htp_reset();
|
||||||
}
|
}
|
||||||
@@ -259,7 +262,9 @@ ble_htp_prph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
#endif
|
#endif
|
||||||
ble_htp_prph_tx_htp_stop();
|
ble_htp_prph_tx_htp_stop();
|
||||||
|
|
||||||
|
#if CONFIG_BT_NIMBLE_HTP_SERVICE
|
||||||
ble_svc_htp_on_disconnect(event->disconnect.conn.conn_handle);
|
ble_svc_htp_on_disconnect(event->disconnect.conn.conn_handle);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BLE_GAP_EVENT_ADV_COMPLETE:
|
case BLE_GAP_EVENT_ADV_COMPLETE:
|
||||||
@@ -276,7 +281,9 @@ ble_htp_prph_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
"val_handle=%d\n",
|
"val_handle=%d\n",
|
||||||
event->subscribe.cur_notify, event->subscribe.attr_handle);
|
event->subscribe.cur_notify, event->subscribe.attr_handle);
|
||||||
|
|
||||||
|
#if CONFIG_BT_NIMBLE_HTP_SERVICE
|
||||||
ble_svc_htp_subscribe(event->subscribe.conn_handle, event->subscribe.attr_handle);
|
ble_svc_htp_subscribe(event->subscribe.conn_handle, event->subscribe.attr_handle);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (event->subscribe.cur_notify) {
|
if (event->subscribe.cur_notify) {
|
||||||
ble_htp_prph_tx_htp_reset();
|
ble_htp_prph_tx_htp_reset();
|
||||||
@@ -336,8 +343,6 @@ void ble_htp_prph_host_task(void *param)
|
|||||||
|
|
||||||
void app_main(void)
|
void app_main(void)
|
||||||
{
|
{
|
||||||
int rc;
|
|
||||||
|
|
||||||
/* Initialize NVS — it is used to store PHY calibration data */
|
/* Initialize NVS — it is used to store PHY calibration data */
|
||||||
esp_err_t ret = nvs_flash_init();
|
esp_err_t ret = nvs_flash_init();
|
||||||
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||||
@@ -368,12 +373,15 @@ void app_main(void)
|
|||||||
ble_htp_prph_tx_timer = xTimerCreate("ble_htp_prph_tx_timer", pdMS_TO_TICKS(1000), pdTRUE,
|
ble_htp_prph_tx_timer = xTimerCreate("ble_htp_prph_tx_timer", pdMS_TO_TICKS(1000), pdTRUE,
|
||||||
(void *)0, ble_htp_prph_tx);
|
(void *)0, ble_htp_prph_tx);
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
|
int rc;
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name */
|
/* Set the default device name */
|
||||||
rc = ble_svc_gap_device_name_set(device_name);
|
rc = ble_svc_gap_device_name_set(device_name);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Start the task */
|
/* Start the task */
|
||||||
nimble_port_freertos_init(ble_htp_prph_host_task);
|
nimble_port_freertos_init(ble_htp_prph_host_task);
|
||||||
|
|||||||
@@ -133,7 +133,6 @@ bleprph_advertise(void)
|
|||||||
{
|
{
|
||||||
struct ble_gap_adv_params adv_params;
|
struct ble_gap_adv_params adv_params;
|
||||||
struct ble_hs_adv_fields fields;
|
struct ble_hs_adv_fields fields;
|
||||||
const char *name;
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -160,6 +159,7 @@ bleprph_advertise(void)
|
|||||||
fields.tx_pwr_lvl_is_present = 1;
|
fields.tx_pwr_lvl_is_present = 1;
|
||||||
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
||||||
|
|
||||||
|
const char *name;
|
||||||
name = ble_svc_gap_device_name();
|
name = ble_svc_gap_device_name();
|
||||||
fields.name = (uint8_t *)name;
|
fields.name = (uint8_t *)name;
|
||||||
fields.name_len = strlen(name);
|
fields.name_len = strlen(name);
|
||||||
|
|||||||
@@ -459,8 +459,6 @@ void ble_multi_adv_host_task(void *param)
|
|||||||
void
|
void
|
||||||
app_main(void)
|
app_main(void)
|
||||||
{
|
{
|
||||||
int rc;
|
|
||||||
|
|
||||||
/* Initialize NVS — it is used to store PHY calibration data */
|
/* Initialize NVS — it is used to store PHY calibration data */
|
||||||
esp_err_t ret = nvs_flash_init();
|
esp_err_t ret = nvs_flash_init();
|
||||||
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||||
@@ -495,6 +493,8 @@ app_main(void)
|
|||||||
ble_instance_cb[i].cb = NULL;
|
ble_instance_cb[i].cb = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
|
int rc;
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
@@ -502,6 +502,7 @@ app_main(void)
|
|||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("nimble-multi-adv");
|
rc = ble_svc_gap_device_name_set("nimble-multi-adv");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
/* XXX Need to have template for store */
|
||||||
|
|||||||
@@ -461,12 +461,16 @@ app_main(void)
|
|||||||
rc = peer_init(BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM);
|
rc = peer_init(BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
|
rc = gatt_svr_init();
|
||||||
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name. We will act as both central and peripheral. */
|
/* Set the default device name. We will act as both central and peripheral. */
|
||||||
rc = ble_svc_gap_device_name_set("esp-ble-role-coex");
|
rc = ble_svc_gap_device_name_set("esp-ble-role-coex");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
rc = gatt_svr_init();
|
|
||||||
assert(rc == 0);
|
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
/* XXX Need to have template for store */
|
||||||
ble_store_config_init();
|
ble_store_config_init();
|
||||||
|
|||||||
@@ -287,12 +287,14 @@ app_main(void)
|
|||||||
ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb;
|
ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb;
|
||||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("esp-multi-conn");
|
rc = ble_svc_gap_device_name_set("esp-multi-conn");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
/* XXX Need to have template for store */
|
||||||
ble_store_config_init();
|
ble_store_config_init();
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ static void blecent_scan(void);
|
|||||||
static uint8_t s_current_phy;
|
static uint8_t s_current_phy;
|
||||||
void ble_store_config_init(void);
|
void ble_store_config_init(void);
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/**
|
/**
|
||||||
* Performs GATT operation against the specified peer:
|
* Performs GATT operation against the specified peer:
|
||||||
* 1. Reads the Supported LE PHY characteristic.
|
* 1. Reads the Supported LE PHY characteristic.
|
||||||
@@ -167,6 +168,7 @@ blecent_on_disc_complete(const struct peer *peer, int status, void *arg)
|
|||||||
blecent_read(peer);
|
blecent_read(peer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set default LE PHY before establishing connection */
|
/* Set default LE PHY before establishing connection */
|
||||||
void set_default_le_phy(uint8_t tx_phys_mask, uint8_t rx_phys_mask)
|
void set_default_le_phy(uint8_t tx_phys_mask, uint8_t rx_phys_mask)
|
||||||
@@ -388,6 +390,7 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/* Perform service discovery. */
|
/* Perform service discovery. */
|
||||||
rc = peer_disc_all(event->connect.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
blecent_on_disc_complete, NULL);
|
blecent_on_disc_complete, NULL);
|
||||||
@@ -395,6 +398,7 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
/* Connection attempt failed; resume scanning. */
|
/* Connection attempt failed; resume scanning. */
|
||||||
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
||||||
|
|||||||
@@ -342,8 +342,10 @@ app_main(void)
|
|||||||
ble_hs_cfg.sm_their_key_dist = 1;
|
ble_hs_cfg.sm_their_key_dist = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init_le_phy();
|
rc = gatt_svr_init_le_phy();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("bleprph-phy");
|
rc = ble_svc_gap_device_name_set("bleprph-phy");
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ void ble_store_config_init(void);
|
|||||||
static void ble_prox_cent_scan(void);
|
static void ble_prox_cent_scan(void);
|
||||||
static int ble_prox_cent_gap_event(struct ble_gap_event *event, void *arg);
|
static int ble_prox_cent_gap_event(struct ble_gap_event *event, void *arg);
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
static int
|
static int
|
||||||
ble_prox_cent_on_read(uint16_t conn_handle,
|
ble_prox_cent_on_read(uint16_t conn_handle,
|
||||||
const struct ble_gatt_error *error,
|
const struct ble_gatt_error *error,
|
||||||
@@ -172,6 +173,7 @@ ble_prox_cent_on_disc_complete(const struct peer *peer, int status, void *arg)
|
|||||||
*/
|
*/
|
||||||
ble_prox_cent_read_write_subscribe(peer);
|
ble_prox_cent_read_write_subscribe(peer);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initiates the GAP general discovery procedure.
|
* Initiates the GAP general discovery procedure.
|
||||||
@@ -480,6 +482,7 @@ ble_prox_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/* Perform service discovery */
|
/* Perform service discovery */
|
||||||
rc = peer_disc_all(event->connect.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_prox_cent_on_disc_complete, NULL);
|
ble_prox_cent_on_disc_complete, NULL);
|
||||||
@@ -487,6 +490,7 @@ ble_prox_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
@@ -547,6 +551,7 @@ ble_prox_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/*** Go for service discovery after encryption has been successfully enabled ***/
|
/*** Go for service discovery after encryption has been successfully enabled ***/
|
||||||
rc = peer_disc_all(event->connect.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_prox_cent_on_disc_complete, NULL);
|
ble_prox_cent_on_disc_complete, NULL);
|
||||||
@@ -554,6 +559,7 @@ ble_prox_cent_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
#endif // BLE_GATT_CACHING_ASSOC_ENABLE
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
@@ -656,6 +662,7 @@ ble_prox_cent_path_loss_task(void *pvParameters)
|
|||||||
path_loss = 0;
|
path_loss = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
rc = ble_gattc_write_no_rsp_flat(i, conn_peer[i].val_handle,
|
rc = ble_gattc_write_no_rsp_flat(i, conn_peer[i].val_handle,
|
||||||
&path_loss, sizeof(path_loss));
|
&path_loss, sizeof(path_loss));
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
@@ -664,6 +671,7 @@ ble_prox_cent_path_loss_task(void *pvParameters)
|
|||||||
} else {
|
} else {
|
||||||
MODLOG_DFLT(INFO, "Write to alert level characteristis done");
|
MODLOG_DFLT(INFO, "Write to alert level characteristis done");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -743,7 +751,6 @@ app_main(void)
|
|||||||
|
|
||||||
/* Initialize a task to keep checking path loss of the link */
|
/* Initialize a task to keep checking path loss of the link */
|
||||||
ble_prox_cent_init();
|
ble_prox_cent_init();
|
||||||
|
|
||||||
for (int i = 0; i <= MYNEWT_VAL(BLE_MAX_CONNECTIONS); i++) {
|
for (int i = 0; i <= MYNEWT_VAL(BLE_MAX_CONNECTIONS); i++) {
|
||||||
disconn_peer[i].addr = NULL;
|
disconn_peer[i].addr = NULL;
|
||||||
disconn_peer[i].link_lost = true;
|
disconn_peer[i].link_lost = true;
|
||||||
|
|||||||
@@ -270,8 +270,6 @@ void ble_prox_prph_host_task(void *param)
|
|||||||
|
|
||||||
void app_main(void)
|
void app_main(void)
|
||||||
{
|
{
|
||||||
int rc;
|
|
||||||
|
|
||||||
/* Initialize NVS — it is used to store PHY calibration data */
|
/* Initialize NVS — it is used to store PHY calibration data */
|
||||||
esp_err_t ret = nvs_flash_init();
|
esp_err_t ret = nvs_flash_init();
|
||||||
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||||
@@ -286,9 +284,10 @@ void app_main(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_BT_NIMBLE_PROX_SERVICE
|
||||||
/* Initialize a task to keep checking path loss of the link */
|
/* Initialize a task to keep checking path loss of the link */
|
||||||
ble_svc_prox_init();
|
ble_svc_prox_init();
|
||||||
|
#endif
|
||||||
/* Initialize the NimBLE host configuration */
|
/* Initialize the NimBLE host configuration */
|
||||||
ble_hs_cfg.sync_cb = ble_prox_prph_on_sync;
|
ble_hs_cfg.sync_cb = ble_prox_prph_on_sync;
|
||||||
ble_hs_cfg.reset_cb = ble_prox_prph_on_reset;
|
ble_hs_cfg.reset_cb = ble_prox_prph_on_reset;
|
||||||
@@ -301,6 +300,7 @@ void app_main(void)
|
|||||||
ble_hs_cfg.sm_sc = 1;
|
ble_hs_cfg.sm_sc = 1;
|
||||||
ble_hs_cfg.sm_mitm = 1;
|
ble_hs_cfg.sm_mitm = 1;
|
||||||
|
|
||||||
|
int rc;
|
||||||
/* Set the default device name */
|
/* Set the default device name */
|
||||||
rc = ble_svc_gap_device_name_set(device_name);
|
rc = ble_svc_gap_device_name_set(device_name);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ uint16_t attribute_handle[CONFIG_BT_NIMBLE_MAX_CONNECTIONS + 1];
|
|||||||
static void ble_spp_client_scan(void);
|
static void ble_spp_client_scan(void);
|
||||||
static ble_addr_t connected_addr[CONFIG_BT_NIMBLE_MAX_CONNECTIONS + 1];
|
static ble_addr_t connected_addr[CONFIG_BT_NIMBLE_MAX_CONNECTIONS + 1];
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
static void ble_spp_client_write_subscribe(const struct peer *peer)
|
static void ble_spp_client_write_subscribe(const struct peer *peer)
|
||||||
{
|
{
|
||||||
uint8_t value[2];
|
uint8_t value[2];
|
||||||
@@ -90,7 +91,6 @@ ble_spp_client_set_handle(const struct peer *peer)
|
|||||||
value, sizeof(value), NULL, NULL);
|
value, sizeof(value), NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when service discovery of the specified peer has completed.
|
* Called when service discovery of the specified peer has completed.
|
||||||
*/
|
*/
|
||||||
@@ -119,6 +119,7 @@ ble_spp_client_on_disc_complete(const struct peer *peer, int status, void *arg)
|
|||||||
ble_spp_client_scan();
|
ble_spp_client_scan();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initiates the GAP general discovery procedure.
|
* Initiates the GAP general discovery procedure.
|
||||||
@@ -306,6 +307,7 @@ ble_spp_client_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
/* Perform service discovery. */
|
/* Perform service discovery. */
|
||||||
rc = peer_disc_all(event->connect.conn_handle,
|
rc = peer_disc_all(event->connect.conn_handle,
|
||||||
ble_spp_client_on_disc_complete, NULL);
|
ble_spp_client_on_disc_complete, NULL);
|
||||||
@@ -313,6 +315,7 @@ ble_spp_client_gap_event(struct ble_gap_event *event, void *arg)
|
|||||||
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
/* Connection attempt failed; resume scanning. */
|
/* Connection attempt failed; resume scanning. */
|
||||||
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
MODLOG_DFLT(ERROR, "Error: Connection failed; status=%d\n",
|
||||||
@@ -421,12 +424,14 @@ void ble_client_uart_task(void *pvParameters)
|
|||||||
uart_read_bytes(UART_NUM_0, temp, event.size, portMAX_DELAY);
|
uart_read_bytes(UART_NUM_0, temp, event.size, portMAX_DELAY);
|
||||||
for ( i = 0; i <= CONFIG_BT_NIMBLE_MAX_CONNECTIONS; i++) {
|
for ( i = 0; i <= CONFIG_BT_NIMBLE_MAX_CONNECTIONS; i++) {
|
||||||
if (attribute_handle[i] != 0) {
|
if (attribute_handle[i] != 0) {
|
||||||
|
#if MYNEWT_VAL(BLE_GATTC)
|
||||||
rc = ble_gattc_write_flat(i, attribute_handle[i], temp, event.size, NULL, NULL);
|
rc = ble_gattc_write_flat(i, attribute_handle[i], temp, event.size, NULL, NULL);
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
ESP_LOGI(tag, "Write in uart task success!");
|
ESP_LOGI(tag, "Write in uart task success!");
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGI(tag, "Error in writing characteristic rc=%d", rc);
|
ESP_LOGI(tag, "Error in writing characteristic rc=%d", rc);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
vTaskDelay(10);
|
vTaskDelay(10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ ble_spp_server_advertise(void)
|
|||||||
{
|
{
|
||||||
struct ble_gap_adv_params adv_params;
|
struct ble_gap_adv_params adv_params;
|
||||||
struct ble_hs_adv_fields fields;
|
struct ble_hs_adv_fields fields;
|
||||||
const char *name;
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -90,6 +89,7 @@ ble_spp_server_advertise(void)
|
|||||||
fields.tx_pwr_lvl_is_present = 1;
|
fields.tx_pwr_lvl_is_present = 1;
|
||||||
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
||||||
|
|
||||||
|
const char *name;
|
||||||
name = ble_svc_gap_device_name();
|
name = ble_svc_gap_device_name();
|
||||||
fields.name = (uint8_t *)name;
|
fields.name = (uint8_t *)name;
|
||||||
fields.name_len = strlen(name);
|
fields.name_len = strlen(name);
|
||||||
@@ -412,8 +412,6 @@ static void ble_spp_uart_init(void)
|
|||||||
void
|
void
|
||||||
app_main(void)
|
app_main(void)
|
||||||
{
|
{
|
||||||
int rc;
|
|
||||||
|
|
||||||
/* Initialize NVS — it is used to store PHY calibration data */
|
/* Initialize NVS — it is used to store PHY calibration data */
|
||||||
esp_err_t ret = nvs_flash_init();
|
esp_err_t ret = nvs_flash_init();
|
||||||
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||||
@@ -459,6 +457,8 @@ app_main(void)
|
|||||||
ble_hs_cfg.sm_their_key_dist = 1;
|
ble_hs_cfg.sm_their_key_dist = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
|
int rc;
|
||||||
/* Register custom service */
|
/* Register custom service */
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
@@ -466,6 +466,7 @@ app_main(void)
|
|||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("nimble-ble-spp-svr");
|
rc = ble_svc_gap_device_name_set("nimble-ble-spp-svr");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
/* XXX Need to have template for store */
|
||||||
ble_store_config_init();
|
ble_store_config_init();
|
||||||
|
|||||||
@@ -324,12 +324,14 @@ app_main(void)
|
|||||||
rc = ble_npl_callout_reset(&blecsc_measure_timer, portTICK_PERIOD_MS * 100);
|
rc = ble_npl_callout_reset(&blecsc_measure_timer, portTICK_PERIOD_MS * 100);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init(&csc_measurement_state);
|
rc = gatt_svr_init(&csc_measurement_state);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name */
|
/* Set the default device name */
|
||||||
rc = ble_svc_gap_device_name_set(device_name);
|
rc = ble_svc_gap_device_name_set(device_name);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
nimble_port_freertos_init(blecsc_host_task);
|
nimble_port_freertos_init(blecsc_host_task);
|
||||||
|
|
||||||
|
|||||||
@@ -293,12 +293,14 @@ void app_main(void)
|
|||||||
/* name, period/time, auto reload, timer ID, callback */
|
/* name, period/time, auto reload, timer ID, callback */
|
||||||
blehr_tx_timer = xTimerCreate("blehr_tx_timer", pdMS_TO_TICKS(1000), pdTRUE, (void *)0, blehr_tx_hrate);
|
blehr_tx_timer = xTimerCreate("blehr_tx_timer", pdMS_TO_TICKS(1000), pdTRUE, (void *)0, blehr_tx_hrate);
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name */
|
/* Set the default device name */
|
||||||
rc = ble_svc_gap_device_name_set(device_name);
|
rc = ble_svc_gap_device_name_set(device_name);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Start the task */
|
/* Start the task */
|
||||||
nimble_port_freertos_init(blehr_host_task);
|
nimble_port_freertos_init(blehr_host_task);
|
||||||
|
|||||||
@@ -131,7 +131,6 @@ bleprph_advertise(void)
|
|||||||
{
|
{
|
||||||
struct ble_gap_adv_params adv_params;
|
struct ble_gap_adv_params adv_params;
|
||||||
struct ble_hs_adv_fields fields;
|
struct ble_hs_adv_fields fields;
|
||||||
const char *name;
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -158,6 +157,7 @@ bleprph_advertise(void)
|
|||||||
fields.tx_pwr_lvl_is_present = 1;
|
fields.tx_pwr_lvl_is_present = 1;
|
||||||
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
||||||
|
|
||||||
|
const char *name;
|
||||||
name = ble_svc_gap_device_name();
|
name = ble_svc_gap_device_name();
|
||||||
fields.name = (uint8_t *)name;
|
fields.name = (uint8_t *)name;
|
||||||
fields.name_len = strlen(name);
|
fields.name_len = strlen(name);
|
||||||
@@ -528,12 +528,14 @@ app_main(void)
|
|||||||
ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID;
|
ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("nimble-bleprph");
|
rc = ble_svc_gap_device_name_set("nimble-bleprph");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
/* XXX Need to have template for store */
|
||||||
ble_store_config_init();
|
ble_store_config_init();
|
||||||
|
|||||||
@@ -311,7 +311,6 @@ bleprph_advertise(void)
|
|||||||
{
|
{
|
||||||
struct ble_gap_adv_params adv_params;
|
struct ble_gap_adv_params adv_params;
|
||||||
struct ble_hs_adv_fields fields;
|
struct ble_hs_adv_fields fields;
|
||||||
const char *name;
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -338,6 +337,7 @@ bleprph_advertise(void)
|
|||||||
fields.tx_pwr_lvl_is_present = 1;
|
fields.tx_pwr_lvl_is_present = 1;
|
||||||
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
||||||
|
|
||||||
|
const char *name;
|
||||||
name = ble_svc_gap_device_name();
|
name = ble_svc_gap_device_name();
|
||||||
fields.name = (uint8_t *)name;
|
fields.name = (uint8_t *)name;
|
||||||
fields.name_len = strlen(name);
|
fields.name_len = strlen(name);
|
||||||
@@ -525,8 +525,6 @@ void bleprph_host_task(void *param)
|
|||||||
void
|
void
|
||||||
app_main(void)
|
app_main(void)
|
||||||
{
|
{
|
||||||
int rc;
|
|
||||||
|
|
||||||
/* Initialize NVS — it is used to store PHY calibration data */
|
/* Initialize NVS — it is used to store PHY calibration data */
|
||||||
esp_err_t ret = nvs_flash_init();
|
esp_err_t ret = nvs_flash_init();
|
||||||
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||||
@@ -550,12 +548,15 @@ app_main(void)
|
|||||||
ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb;
|
ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb;
|
||||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
|
int rc;
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("nimble-bleprph");
|
rc = ble_svc_gap_device_name_set("nimble-bleprph");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
/* XXX Need to have template for store */
|
||||||
ble_store_config_init();
|
ble_store_config_init();
|
||||||
|
|||||||
@@ -169,7 +169,6 @@ bleprph_advertise(void)
|
|||||||
{
|
{
|
||||||
struct ble_gap_adv_params adv_params;
|
struct ble_gap_adv_params adv_params;
|
||||||
struct ble_hs_adv_fields fields;
|
struct ble_hs_adv_fields fields;
|
||||||
const char *name;
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -196,6 +195,7 @@ bleprph_advertise(void)
|
|||||||
fields.tx_pwr_lvl_is_present = 1;
|
fields.tx_pwr_lvl_is_present = 1;
|
||||||
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
|
||||||
|
|
||||||
|
const char *name;
|
||||||
name = ble_svc_gap_device_name();
|
name = ble_svc_gap_device_name();
|
||||||
fields.name = (uint8_t *)name;
|
fields.name = (uint8_t *)name;
|
||||||
fields.name_len = strlen(name);
|
fields.name_len = strlen(name);
|
||||||
@@ -622,6 +622,7 @@ app_main(void)
|
|||||||
ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID;
|
ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
@@ -629,6 +630,7 @@ app_main(void)
|
|||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("nimble-bleprph");
|
rc = ble_svc_gap_device_name_set("nimble-bleprph");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
/* XXX Need to have template for store */
|
||||||
|
|||||||
@@ -945,6 +945,7 @@ app_main(void)
|
|||||||
rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64);
|
rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set the default device name. */
|
/* Set the default device name. */
|
||||||
rc = ble_svc_gap_device_name_set("gattc-throughput");
|
rc = ble_svc_gap_device_name_set("gattc-throughput");
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|||||||
@@ -26,10 +26,10 @@ static uint8_t ext_adv_pattern[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static uint8_t s_current_phy;
|
static uint8_t s_current_phy;
|
||||||
#else
|
|
||||||
static const char *device_name = "nimble_prph";
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static const char *device_name = "nimble_prph";
|
||||||
|
|
||||||
#define NOTIFY_THROUGHPUT_PAYLOAD 495
|
#define NOTIFY_THROUGHPUT_PAYLOAD 495
|
||||||
#define MIN_REQUIRED_MBUF 2 /* Assuming payload of 500Bytes and each mbuf can take 292Bytes. */
|
#define MIN_REQUIRED_MBUF 2 /* Assuming payload of 500Bytes and each mbuf can take 292Bytes. */
|
||||||
#define PREFERRED_MTU_VALUE 512
|
#define PREFERRED_MTU_VALUE 512
|
||||||
@@ -509,10 +509,10 @@ void app_main(void)
|
|||||||
/* Initialize Notify Task */
|
/* Initialize Notify Task */
|
||||||
xTaskCreate(notify_task, "notify_task", 4096, NULL, 10, NULL);
|
xTaskCreate(notify_task, "notify_task", 4096, NULL, 10, NULL);
|
||||||
|
|
||||||
|
#if MYNEWT_VAL(BLE_GATTS)
|
||||||
rc = gatt_svr_init();
|
rc = gatt_svr_init();
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|
||||||
#if !(CONFIG_EXAMPLE_EXTENDED_ADV)
|
|
||||||
/* Set the default device name */
|
/* Set the default device name */
|
||||||
rc = ble_svc_gap_device_name_set(device_name);
|
rc = ble_svc_gap_device_name_set(device_name);
|
||||||
assert(rc == 0);
|
assert(rc == 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user