Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Nucleo_BLE_BlueNRG by
Diff: hci/inc/gatt_service.h
- Revision:
- 0:a948f5f3904c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hci/inc/gatt_service.h Fri Dec 19 18:56:07 2014 +0000 @@ -0,0 +1,147 @@ +/******************** (C) COPYRIGHT 2012 STMicroelectronics ******************** +* File Name : gatt_server.h +* Author : AMS - HEA&RF BU +* Version : V1.0.0 +* Date : 19-July-2012 +* Description : Header file for BlueNRG's GATT server layer. +******************************************************************************** +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +*******************************************************************************/ + +#ifndef __GATT_SERV_H__ +#define __GATT_SERV_H__ + +#include "compiler.h" +#include "ble_status.h" + +/** + * UUID table + */ +#define PRIMARY_SERVICE_UUID (0x2800) +#define SECONDARY_SERVICE_UUID (0x2801) +#define INCLUDE_SERVICE_UUID (0x2802) +#define CHARACTERISTIC_UUID (0x2803) +#define CHAR_EXTENDED_PROP_DESC_UUID (0x2900) +#define CHAR_USER_DESC_UUID (0x2901) +#define CHAR_CLIENT_CONFIG_DESC_UUID (0x2902) +#define CHAR_SERVER_CONFIG_DESC_UUID (0x2903) +#define CHAR_FORMAT_DESC_UUID (0x2904) +#define CHAR_AGGR_FMT_DESC_UUID (0x2905) +#define GATT_SERVICE_UUID (0x1801) +#define GAP_SERVICE_UUID (0x1800) +#define SERVICE_CHANGED_UUID (0x2A05) + +/****************************************************************************** + * Types + *****************************************************************************/ + +/** + * Access permissions + * for an attribute + */ +typedef tHalUint8 tAttrAccessFlags; +#define ATTR_NO_ACCESS (0x00) +#define ATTR_ACCESS_READ_ONLY (0x01) +#define ATTR_ACCESS_WRITE_REQ_ONLY (0x02) +#define ATTR_ACCESS_READ_WRITE (0x03) +#define ATTR_ACCESS_WRITE_WITHOUT_RESPONSE (0x04) +#define ATTR_ACCESS_SIGNED_WRITE_ALLOWED (0x08) + +/** + * Allows all write procedures + */ +#define ATTR_ACCESS_WRITE_ANY (0x0E) + +/** + * Characteristic properties. + */ +#define CHAR_PROP_BROADCAST (0x01) +#define CHAR_PROP_READ (0x02) +#define CHAR_PROP_WRITE_WITHOUT_RESP (0x04) +#define CHAR_PROP_WRITE (0x08) +#define CHAR_PROP_NOTIFY (0x10) +#define CHAR_PROP_INDICATE (0x20) +#define CHAR_PROP_SIGNED_WRITE (0x40) +#define CHAR_PROP_EXT (0x80) + +/** + * Security permissions + * for an attribute + */ +typedef tHalUint8 tAttrSecurityFlags; +#define ATTR_PERMISSION_NONE (0x00) +#define ATTR_PERMISSION_AUTHEN_READ (0x01) +#define ATTR_PERMISSION_AUTHOR_READ (0x02) +#define ATTR_PERMISSION_ENCRY_READ (0x04) +#define ATTR_PERMISSION_AUTHEN_WRITE (0x08) +#define ATTR_PERMISSION_AUTHOR_WRITE (0x10) +#define ATTR_PERMISSION_ENCRY_WRITE (0x20) + +/** + * Type of UUID + * (16 bit or 128 bit) + */ +typedef tHalUint8 tUuidType; +#define UUID_TYPE_16 (0x01) +#define UUID_TYPE_128 (0x02) + +/** + * Type of service + * (primary or secondary) + */ +typedef tHalUint8 tServiceType; +#define PRIMARY_SERVICE (0x01) +#define SECONDARY_SERVICE (0x02) + +/** + * Type of event generated by + * Gatt server + */ +typedef tHalUint8 tGattServerEvent; +#define GATT_SERVER_ATTR_WRITE (0x01) +#define GATT_INTIMATE_AND_WAIT_FOR_APPL_AUTH (0x02) +#define GATT_INTIMATE_APPL_WHEN_READ_N_WAIT (0x04) +#define GATT_SERVER_ATTR_READ_WRITE GATT_SERVER_ATTR_WRITE|GATT_INTIMATE_APPL_WHEN_READ_N_WAIT + + +/** + * Min encryption key size + */ +#define MIN_ENCRY_KEY_SIZE (7) + +/** + * Max encryption key size + */ +#define MAX_ENCRY_KEY_SIZE (0x10) + +typedef struct __packed _charactFormat { + tHalUint8 format; + tHalInt8 exp; + tHalUint16 unit; + tHalUint8 name_space; + tHalUint16 desc; +} PACKED charactFormat; + +#define FORMAT_UINT8 0x04 +#define FORMAT_UINT16 0x06 +#define FORMAT_SINT16 0x0E +#define FORMAT_SINT24 0x0F + + +#define UNIT_UNITLESS 0x2700 +#define UNIT_TEMP_CELSIUS 0x272F +#define UNIT_PRESSURE_BAR 0x2780 + + +/* + * Default MTU size + */ +#define ATT_DEFAULT_MTU (23) + + +#endif /* __GATT_SERVER_H__ */