blob: 435e9e11c2f8f68e45b4235b3873240cf7bf5dea [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#ifndef H_BLE_SVC_ANS_
#define H_BLE_SVC_ANS_
struct ble_hs_cfg;
/* 16 Bit Alert Notification Service UUID */
#define BLE_SVC_ANS_UUID16 0x1811
/* 16 Bit Alert Notification Service Characteristic UUIDs */
#define BLE_SVC_ANS_CHR_UUID16_SUP_NEW_ALERT_CAT 0x2a47
#define BLE_SVC_ANS_CHR_UUID16_NEW_ALERT 0x2a46
#define BLE_SVC_ANS_CHR_UUID16_SUP_UNR_ALERT_CAT 0x2a48
#define BLE_SVC_ANS_CHR_UUID16_UNR_ALERT_STAT 0x2a45
#define BLE_SVC_ANS_CHR_UUID16_ALERT_NOT_CTRL_PT 0x2a44
/* Alert Notification Service Category ID Bit Masks
*
* TODO: Add remaining 2 optional categories */
#define BLE_SVC_ANS_CAT_BM_NONE 0x00
#define BLE_SVC_ANS_CAT_BM_SIMPLE_ALERT 0x01
#define BLE_SVC_ANS_CAT_BM_EMAIL 0x02
#define BLE_SVC_ANS_CAT_BM_NEWS 0x04
#define BLE_SVC_ANS_CAT_BM_CALL 0x08
#define BLE_SVC_ANS_CAT_BM_MISSED_CALL 0x10
#define BLE_SVC_ANS_CAT_BM_SMS 0x20
#define BLE_SVC_ANS_CAT_BM_VOICE_MAIL 0x40
#define BLE_SVC_ANS_CAT_BM_SCHEDULE 0x80
/* Alert Notification Service Category IDs
*
* TODO: Add remaining 2 optional categories */
#define BLE_SVC_ANS_CAT_ID_SIMPLE_ALERT 0
#define BLE_SVC_ANS_CAT_ID_EMAIL 1
#define BLE_SVC_ANS_CAT_ID_NEWS 2
#define BLE_SVC_ANS_CAT_ID_CALL 3
#define BLE_SVC_ANS_CAT_ID_MISSED_CALL 4
#define BLE_SVC_ANS_CAT_ID_SMS 5
#define BLE_SVC_ANS_CAT_ID_VOICE_MAIL 6
#define BLE_SVC_ANS_CAT_ID_SCHEDULE 7
/* Number of valid ANS categories
*
* TODO: Add remaining 2 optional categories */
#define BLE_SVC_ANS_CAT_NUM 8
/* Alert Notification Control Point Command IDs */
#define BLE_SVC_ANS_CMD_EN_NEW_ALERT_CAT 0
#define BLE_SVC_ANS_CMD_EN_UNR_ALERT_CAT 1
#define BLE_SVC_ANS_CMD_DIS_NEW_ALERT_CAT 2
#define BLE_SVC_ANS_CMD_DIS_UNR_ALERT_CAT 3
#define BLE_SVC_ANS_CMD_NOT_NEW_ALERT_IMMEDIATE 4
#define BLE_SVC_ANS_CMD_NOT_UNR_ALERT_IMMEDIATE 5
/* Error Definitions */
#define BLE_SVC_ANS_ERR_CMD_NOT_SUPPORTED 0xA0
void ble_svc_ans_on_gap_connect(uint16_t conn_handle);
int ble_svc_ans_new_alert_add(uint8_t cat_id,
const char * info_str);
int ble_svc_ans_unr_alert_add(uint8_t cat_id);
void ble_svc_ans_init(void);
#endif