Line data Source code
1 1 : /* 2 : * Copyright Runtime.io 2018. All rights reserved. 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : /** @file 8 : * @brief Bluetooth transport for the mcumgr SMP protocol. 9 : */ 10 : 11 : #ifndef ZEPHYR_INCLUDE_MGMT_SMP_BT_H_ 12 : #define ZEPHYR_INCLUDE_MGMT_SMP_BT_H_ 13 : 14 : #include <zephyr/bluetooth/uuid.h> 15 : #include <zephyr/types.h> 16 : struct bt_conn; 17 : 18 : #ifdef __cplusplus 19 : extern "C" { 20 : #endif 21 : 22 : /** SMP service UUID value. */ 23 1 : #define SMP_BT_SVC_UUID_VAL \ 24 : BT_UUID_128_ENCODE(0x8d53dc1d, 0x1db7, 0x4cd3, 0x868b, 0x8a527460aa84) 25 : 26 : /** SMP service UUID. */ 27 1 : #define SMP_BT_SVC_UUID \ 28 : BT_UUID_DECLARE_128(SMP_BT_SVC_UUID_VAL) 29 : 30 : /** SMP characteristic UUID value. */ 31 1 : #define SMP_BT_CHR_UUID_VAL \ 32 : BT_UUID_128_ENCODE(0xda2e7828, 0xfbce, 0x4e01, 0xae9e, 0x261174997c48) 33 : 34 : /** SMP characteristic UUID 35 : * Used for both requests and responses. 36 : */ 37 1 : #define SMP_BT_CHR_UUID \ 38 : BT_UUID_DECLARE_128(SMP_BT_CHR_UUID_VAL) 39 : 40 : /** 41 : * @brief Registers the SMP Bluetooth service. Should only be called if the Bluetooth 42 : * transport has been unregistered by calling smp_bt_unregister(). 43 : * 44 : * @return 0 on success; negative error code on failure. 45 : */ 46 1 : int smp_bt_register(void); 47 : 48 : /** 49 : * @brief Unregisters the SMP Bluetooth service. 50 : * 51 : * @return 0 on success; negative error code on failure. 52 : */ 53 1 : int smp_bt_unregister(void); 54 : 55 : /** 56 : * @brief Transmits an SMP command/response over the specified Bluetooth connection as a 57 : * notification. 58 : * 59 : * @param conn Connection object. 60 : * @param data Pointer to SMP message. 61 : * @param len data length. 62 : * 63 : * @return 0 in case of success or negative value in case of error. 64 : */ 65 1 : int smp_bt_notify(struct bt_conn *conn, const void *data, uint16_t len); 66 : 67 : #ifdef __cplusplus 68 : } 69 : #endif 70 : 71 : #endif