Программа считывает показания датчиков и управляет сервомашинками.

Dependencies:   mbed-src

Fork of NUCLEO_BLUENRG by Ostap Ostapsky

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers gatt_server.h Source File

gatt_server.h

00001 /******************** (C) COPYRIGHT 2012 STMicroelectronics ********************
00002 * File Name          : gatt_server.h
00003 * Author             : AMS - HEA&RF BU
00004 * Version            : V1.0.0
00005 * Date               : 19-July-2012
00006 * Description        : Header file for BlueNRG's GATT server layer.
00007 ********************************************************************************
00008 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
00009 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
00010 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
00011 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
00012 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
00013 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
00014 *******************************************************************************/
00015 
00016 #ifndef __GATT_SERVER_H__
00017 #define __GATT_SERVER_H__
00018 
00019 #include "compiler.h"
00020 #include "ble_status.h"
00021 
00022 /**
00023  * UUID table
00024  */
00025 #define PRIMARY_SERVICE_UUID                       (0x2800)
00026 #define SECONDARY_SERVICE_UUID                     (0x2801)
00027 #define INCLUDE_SERVICE_UUID                       (0x2802)
00028 #define CHARACTERISTIC_UUID                        (0x2803)
00029 #define CHAR_EXTENDED_PROP_DESC_UUID               (0x2900)
00030 #define CHAR_USER_DESC_UUID                        (0x2901)
00031 #define CHAR_CLIENT_CONFIG_DESC_UUID               (0x2902)
00032 #define CHAR_SERVER_CONFIG_DESC_UUID               (0x2903)
00033 #define CHAR_FORMAT_DESC_UUID                      (0x2904)
00034 #define CHAR_AGGR_FMT_DESC_UUID                    (0x2905)
00035 #define GATT_SERVICE_UUID                          (0x1801)
00036 #define GAP_SERVICE_UUID                           (0x1800)
00037 #define SERVICE_CHANGED_UUID                       (0x2A05)
00038 
00039 /******************************************************************************
00040  * Types
00041  *****************************************************************************/
00042 
00043 /** 
00044  * Access permissions 
00045  * for an attribute
00046  */
00047 typedef tHalUint8 tAttrAccessFlags;
00048 #define ATTR_NO_ACCESS                             (0x00)
00049 #define ATTR_ACCESS_READ_ONLY                      (0x01) 
00050 #define ATTR_ACCESS_WRITE_REQ_ONLY                 (0x02)
00051 #define ATTR_ACCESS_READ_WRITE                     (0x03)
00052 #define ATTR_ACCESS_WRITE_WITHOUT_RESPONSE         (0x04)
00053 #define ATTR_ACCESS_SIGNED_WRITE_ALLOWED           (0x08)
00054 
00055 /**
00056  * Allows all write procedures
00057  */
00058 #define ATTR_ACCESS_WRITE_ANY                      (0x0E)
00059 
00060 /**
00061  * Characteristic properties.
00062  */
00063 #define CHAR_PROP_BROADCAST                     (0x01)
00064 #define CHAR_PROP_READ                          (0x02)
00065 #define CHAR_PROP_WRITE_WITHOUT_RESP            (0x04)
00066 #define CHAR_PROP_WRITE                         (0x08)
00067 #define CHAR_PROP_NOTIFY                        (0x10)
00068 #define CHAR_PROP_INDICATE                      (0x20)
00069 #define CHAR_PROP_SIGNED_WRITE                  (0x40)
00070 #define CHAR_PROP_EXT                           (0x80)
00071 
00072 /** 
00073  * Security permissions
00074  * for an attribute
00075  */
00076 typedef tHalUint8 tAttrSecurityFlags;
00077 #define ATTR_PERMISSION_NONE                       (0x00)
00078 #define ATTR_PERMISSION_AUTHEN_READ                (0x01)
00079 #define ATTR_PERMISSION_AUTHOR_READ                (0x02)
00080 #define ATTR_PERMISSION_ENCRY_READ                 (0x04)
00081 #define ATTR_PERMISSION_AUTHEN_WRITE               (0x08)
00082 #define ATTR_PERMISSION_AUTHOR_WRITE               (0x10)
00083 #define ATTR_PERMISSION_ENCRY_WRITE                (0x20)
00084 
00085 /** 
00086  * Type of UUID 
00087  * (16 bit or 128 bit)
00088  */
00089 typedef tHalUint8 tUuidType;
00090 #define UUID_TYPE_16                               (0x01)
00091 #define UUID_TYPE_128                              (0x02)
00092 
00093 /**
00094  * Type of service
00095  * (primary or secondary)
00096  */
00097 typedef tHalUint8 tServiceType;
00098 #define PRIMARY_SERVICE                            (0x01)
00099 #define SECONDARY_SERVICE                          (0x02)
00100 
00101 /** 
00102  * Type of event generated by 
00103  * Gatt server
00104  */
00105 typedef tHalUint8 tGattServerEvent;
00106 #define GATT_SERVER_ATTR_WRITE                     (0x01)
00107 #define GATT_INTIMATE_AND_WAIT_FOR_APPL_AUTH       (0x02)
00108 #define GATT_INTIMATE_APPL_WHEN_READ_N_WAIT        (0x04)
00109 #define GATT_SERVER_ATTR_READ_WRITE                GATT_SERVER_ATTR_WRITE|GATT_INTIMATE_APPL_WHEN_READ_N_WAIT
00110 
00111 
00112 /**
00113  * Min encryption key size
00114  */
00115 #define MIN_ENCRY_KEY_SIZE                (7)
00116 
00117 /**
00118  * Max encryption key size
00119  */
00120 #define MAX_ENCRY_KEY_SIZE                (0x10)
00121 
00122 
00123 typedef __packed struct _charactFormat {
00124     tHalUint8 format;
00125     tHalInt8 exp;
00126     tHalUint16 unit;
00127     tHalUint8 name_space;
00128     tHalUint16 desc;
00129 } PACKED charactFormat;
00130 
00131 #define FORMAT_UINT8         0x04
00132 #define FORMAT_UINT16        0x06
00133 #define FORMAT_SINT16        0x0E
00134 #define FORMAT_SINT24        0x0F
00135 
00136 
00137 #define UNIT_UNITLESS        0x2700
00138 #define UNIT_TEMP_CELSIUS    0x272F
00139 #define UNIT_PRESSURE_BAR    0x2780
00140 
00141 
00142 /*
00143  * Default MTU size
00144  */
00145 #define ATT_DEFAULT_MTU       (23)
00146 
00147 
00148 #endif /* __GATT_SERVER_H__ */
00149