| /* |
| * Copyright (c) 2022 Codecoup |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_IAS_H_ |
| #define ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_IAS_H_ |
| |
| /** |
| * @brief Immediate Alert Service (IAS) |
| * @defgroup bt_ias Immediate Alert Service (IAS) |
| * @ingroup bluetooth |
| * @{ |
| * |
| * [Experimental] Users should note that the APIs can change |
| * as a part of ongoing development. |
| */ |
| |
| #include <zephyr/bluetooth/conn.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| enum bt_ias_alert_lvl { |
| /** No alerting should be done on device */ |
| BT_IAS_ALERT_LVL_NO_ALERT, |
| |
| /** Device shall alert */ |
| BT_IAS_ALERT_LVL_MILD_ALERT, |
| |
| /** Device should alert in strongest possible way */ |
| BT_IAS_ALERT_LVL_HIGH_ALERT, |
| }; |
| |
| /** @brief Immediate Alert Service callback structure. */ |
| struct bt_ias_cb { |
| /** |
| * @brief Callback function to stop alert. |
| * |
| * This callback is called when peer commands to disable alert. |
| */ |
| void (*no_alert)(void); |
| |
| /** |
| * @brief Callback function for alert level value. |
| * |
| * This callback is called when peer commands to alert. |
| */ |
| void (*mild_alert)(void); |
| |
| /** |
| * @brief Callback function for alert level value. |
| * |
| * This callback is called when peer commands to alert in the strongest possible way. |
| */ |
| void (*high_alert)(void); |
| }; |
| |
| /** @brief Method for stopping alert locally |
| * |
| * @return Zero in case of success and error code in case of error. |
| */ |
| int bt_ias_local_alert_stop(void); |
| |
| /** |
| * @brief Register a callback structure for immediate alert events. |
| * |
| * @param _name Name of callback structure. |
| */ |
| #define BT_IAS_CB_DEFINE(_name) \ |
| static const STRUCT_SECTION_ITERABLE(bt_ias_cb, _CONCAT(bt_ias_cb_, _name)) |
| |
| struct bt_ias_client_cb { |
| /** @brief Callback function for bt_ias_discover. |
| * |
| * This callback is called when discovery procedure is complete. |
| * |
| * @param conn Bluetooth connection object. |
| * @param err 0 on success, ATT error or negative errno otherwise |
| */ |
| void (*discover)(struct bt_conn *conn, int err); |
| }; |
| |
| /** @brief Set alert level |
| * |
| * @param conn Bluetooth connection object |
| * @param bt_ias_alert_lvl Level of alert to write |
| * |
| * @return Zero in case of success and error code in case of error. |
| */ |
| int bt_ias_client_alert_write(struct bt_conn *conn, enum bt_ias_alert_lvl); |
| |
| /** @brief Discover Immediate Alert Service |
| * |
| * @param conn Bluetooth connection object |
| * |
| * @return Zero in case of success and error code in case of error. |
| */ |
| int bt_ias_discover(struct bt_conn *conn); |
| |
| /** @brief Register Immediate Alert Client callbacks |
| * |
| * @param cb The callback structure |
| * |
| * @return Zero in case of success and error code in case of error. |
| */ |
| int bt_ias_client_cb_register(const struct bt_ias_client_cb *cb); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| /** |
| * @} |
| */ |
| |
| #endif /* ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_IAS_H_ */ |