/* * Copyright (c) 2019 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ /** @file * @brief Nordic mesh light sample */ #include #include #include #include #include "model_handler.h" #include "common.h" static const struct bt_data ad[] = { BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)), BT_DATA_BYTES(BT_DATA_UUID128_ALL, 0x84, 0xaa, 0x60, 0x74, 0x52, 0x8a, 0x8b, 0x86, 0xd3, 0x4c, 0xb7, 0x1d, 0x1d, 0xdc, 0x53, 0x8d), }; static void bt_ready(int err) { printk("dbg_m In function bt_ready"); if (err) { printk("Bluetooth init failed (err %d)\n", err); return; } printk("Bluetooth initialized\n"); dk_leds_init(); dk_buttons_init(NULL); err = bt_mesh_init(bt_mesh_dk_prov_init(), model_handler_init()); //dbg_m After calling this API, the node will not automatically advertise as unprovisioned, rather the bt_mesh_prov_enable() API needs to be called to enable unprovisioned advertising on one or more provisioning bearers. if (err) { printk("Initializing mesh failed (err %d)\n", err); return; } if (IS_ENABLED(CONFIG_SETTINGS)) { settings_load(); } /* This will be a no-op if settings_load() loaded provisioning info */ bt_mesh_prov_enable(BT_MESH_PROV_ADV | BT_MESH_PROV_GATT); printk("Mesh initialized\n"); } void main(void) { int err; printk("Initializing...\n"); os_mgmt_register_group(); img_mgmt_register_group(); err = bt_enable(bt_ready); if (err) { printk("Bluetooth init failed (err %d)\n", err); } /* Initialize the Bluetooth mcumgr transport. */ smp_bt_register(); //dbg_m: register the SMP GATT service. }