nRF Connect SDK Bare Metal API 2.0.99
Loading...
Searching...
No Matches
ble_dis.h
1/*
2 * Copyright (c) 2012 - 2025 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
18#ifndef BLE_DIS_H__
19#define BLE_DIS_H__
20
21#include <stdint.h>
22#include <zephyr/sys/util.h>
23#include <bm/bluetooth/ble_common.h>
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
30#define BLE_DIS_CONFIG_SEC_MODE_DEFAULT \
31 { \
32 .device_info_char.read = BLE_GAP_CONN_SEC_MODE_OPEN, \
33 }
34
36#define BLE_DIS_VALUES_DEFAULTS \
37 { \
38 .manufacturer_name = CONFIG_BLE_DIS_MANUFACTURER_NAME, \
39 .model_number = CONFIG_BLE_DIS_MODEL_NUMBER, \
40 .serial_number = CONFIG_BLE_DIS_SERIAL_NUMBER, \
41 .hw_revision = CONFIG_BLE_DIS_HW_REVISION, \
42 .fw_revision = CONFIG_BLE_DIS_FW_REVISION, \
43 .sw_revision = CONFIG_BLE_DIS_SW_REVISION, \
44 IF_ENABLED(CONFIG_BLE_DIS_SYSTEM_ID, ( \
45 .sys_id = &(const struct ble_dis_sys_id){ \
46 .manufacturer_id = CONFIG_BLE_DIS_SYSTEM_ID_MID, \
47 .organizationally_unique_id = CONFIG_BLE_DIS_SYSTEM_ID_OUI, \
48 },)) \
49 IF_ENABLED(CONFIG_BLE_DIS_PNP_ID, ( \
50 .pnp_id = &(const struct ble_dis_pnp_id){ \
51 .vendor_id_source = CONFIG_BLE_DIS_PNP_VID_SRC, \
52 .vendor_id = CONFIG_BLE_DIS_PNP_VID, \
53 .product_id = CONFIG_BLE_DIS_PNP_PID, \
54 .product_version = CONFIG_BLE_DIS_PNP_VER, \
55 },)) \
56 IF_ENABLED(CONFIG_BLE_DIS_REGULATORY_CERT, ( \
57 .reg_cert = &(const struct ble_dis_reg_cert){ \
58 .list = (const uint8_t[8]) \
59 sys_uint64_to_array(CONFIG_BLE_DIS_REGULATORY_CERT_LIST), \
60 .len = 8, \
61 },)) \
62 }
63
69#define BLE_DIS_VENDOR_ID_SRC_BLUETOOTH_SIG 1
71#define BLE_DIS_VENDOR_ID_SRC_USB_IMPL_FORUM 2
81
87 uint16_t vendor_id;
89 uint16_t product_id;
92};
93
97 const uint8_t *list;
99 uint16_t len;
100};
101
105 const char *manufacturer_name;
107 const char *model_number;
109 const char *serial_number;
111 const char *hw_revision;
113 const char *fw_revision;
115 const char *sw_revision;
116
118 const struct ble_dis_sys_id *sys_id;
120 const struct ble_dis_pnp_id *pnp_id;
123};
124
128 struct {
130 struct {
134 ble_gap_conn_sec_mode_t read;
137
139 const struct ble_dis_values *values;
140};
141
161uint32_t ble_dis_init(const struct ble_dis_config *dis_config);
162
163#ifdef __cplusplus
164}
165#endif
166
167#endif /* BLE_DIS_H__ */
168
uint32_t ble_dis_init(const struct ble_dis_config *dis_config)
Initialize the Device Information Service.
const struct ble_dis_values * values
Definition ble_dis.h:139
struct ble_dis_config::@73::@74 device_info_char
struct ble_dis_config::@73 sec_mode
ble_gap_conn_sec_mode_t read
Definition ble_dis.h:134
Device Information Service configuration.
Definition ble_dis.h:126
uint8_t vendor_id_source
Definition ble_dis.h:85
uint16_t product_id
Definition ble_dis.h:89
uint16_t vendor_id
Definition ble_dis.h:87
uint16_t product_version
Definition ble_dis.h:91
PnP ID characteristic value.
Definition ble_dis.h:83
const uint8_t * list
Definition ble_dis.h:97
uint16_t len
Definition ble_dis.h:99
IEEE 11073-20601 Regulatory Certification Data List characteristic value.
Definition ble_dis.h:95
uint64_t manufacturer_id
Definition ble_dis.h:77
uint32_t organizationally_unique_id
Definition ble_dis.h:79
System ID characteristic value.
Definition ble_dis.h:75
const char * model_number
Definition ble_dis.h:107
const char * hw_revision
Definition ble_dis.h:111
const struct ble_dis_pnp_id * pnp_id
Definition ble_dis.h:120
const char * serial_number
Definition ble_dis.h:109
const char * manufacturer_name
Definition ble_dis.h:105
const char * sw_revision
Definition ble_dis.h:115
const struct ble_dis_sys_id * sys_id
Definition ble_dis.h:118
const char * fw_revision
Definition ble_dis.h:113
const struct ble_dis_reg_cert * reg_cert
Definition ble_dis.h:122
Device Information Service characteristic values.
Definition ble_dis.h:103