PRIMARY_SERVICE_UUID16 (1, UUID_SERVICE_GAP),

    //<Name>watch</Name>
    //Characteristic 'Device Name'
    CHARACTERISTIC_UUID16(2, 3,
				UUID_CHARACTERISTIC_DEVICE_NAME, LEGATTDB_CHAR_PROP_READ,
				LEGATTDB_PERM_READABLE, 16),
    //UTF-8 'Device Name' watch
    'M','y',' ','W','a','t','c','h',0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    //<Appearance>Unknown</Appearance>
    //Characteristic 'Appearance'
    CHARACTERISTIC_UUID16(4, 5,
				UUID_CHARACTERISTIC_APPEARANCE, LEGATTDB_CHAR_PROP_READ,
				LEGATTDB_PERM_READABLE, 2),
	BIT16_TO_8(APPEARANCE_GENERIC_WATCH),

	CHARACTERISTIC_UUID16(6, 7,
			    UUID_CHARACTERISTIC_PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS, LEGATTDB_CHAR_PROP_READ,
				LEGATTDB_PERM_READABLE, 8),
	0x06, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x32, 0x00,

	// ***** GATT service
	    //Handle HDLS_GATT: GATT service
	PRIMARY_SERVICE_UUID16 (8, UUID_SERVICE_GATT),

// ***** Primary service 'Human Interface Device'
    //<Name>Human Interface Device</Name>
    //<Uuid>1812</Uuid>
    //Service handle: HDLS_HID
    //Service UUID: UUID_SERVICE_HID
    PRIMARY_SERVICE_UUID16 (0x0001, UUID_SERVICE_GATT),

    // Handle 0x02: characteristic Service Changed, handle 0x03 characteristic value
    CHARACTERISTIC_UUID16  (0x0002, 0x0003, UUID_CHARACTERISTIC_SERVICE_CHANGED, LEGATTDB_CHAR_PROP_INDICATE, LEGATTDB_PERM_NONE, 4),
        0x00, 0x00, 0x00, 0x00,

    // Handle 0x14: GAP service
    PRIMARY_SERVICE_UUID16 (0x0014, UUID_SERVICE_GAP),

    // Handle 0x15: characteristic Device Name, handle 0x16 characteristic value
    CHARACTERISTIC_UUID16 (0x0015, 0x0016, UUID_CHARACTERISTIC_DEVICE_NAME, LEGATTDB_CHAR_PROP_READ, LEGATTDB_PERM_READABLE, 16),
        'B','L','E',' ','B','P',' ','M','o','n','i','t','o','r',0,0,    // "BLE BP Monitor"

    // Handle 0x17: characteristic Appearance, handle 0x18 characteristic value
    CHARACTERISTIC_UUID16 (0x0017, 0x0018, UUID_CHARACTERISTIC_APPEARANCE, LEGATTDB_CHAR_PROP_READ, LEGATTDB_PERM_READABLE, 2),
        BIT16_TO_8(APPEARANCE_GENERIC_BLOOD_PRESSURE),

    // Handle 0x28: Blood Pressure Service
    PRIMARY_SERVICE_UUID16 (0x0028, UUID_SERVICE_BLOOD_PRESSURE),

    // Handle 0x29: characteristic Blood Pressure Measurement, handle 0x2a characteristic value
    CHARACTERISTIC_UUID16 (0x0029, 0x002a, UUID_CHARACTERISTIC_BLOOD_PRESSURE_MEASUREMENT,
                           LEGATTDB_CHAR_PROP_INDICATE, LEGATTDB_PERM_NONE, 11),
        0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    // Handle 0x2b: Client Configuration descriptor
    CHAR_DESCRIPTOR_UUID16_WRITABLE (0x002b, UUID_DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIGURATION,
                                      LEGATTDB_PERM_READABLE | LEGATTDB_PERM_WRITE_CMD |LEGATTDB_PERM_WRITE_REQ, 2),
        0x00,0x00,

    CHARACTERISTIC_UUID16 (0x002c, 0x002d, UUID_CHARACTERISTIC_INTERMEDIATE_BLOOD_PRESSURE,
const BLE_PROFILE_CFG line_cook_w_names_cfg =
{
    /*.fine_timer_interval            =*/ LINE_COOK_W_NAMES_FINE_TIMER, // ms
    /*.default_adv                    =*/ 4,    // HIGH_UNDIRECTED_DISCOVERABLE
    /*.button_adv_toggle              =*/ 0,    // pairing button make adv toggle (if 1) or always on (if 0)
    /*.high_undirect_adv_interval     =*/ 32,   // slots
    /*.low_undirect_adv_interval      =*/ 1024, // slots
    /*.high_undirect_adv_duration     =*/ 30,   // seconds
    /*.low_undirect_adv_duration      =*/ 300,  // seconds
    /*.high_direct_adv_interval       =*/ 0,    // seconds
    /*.low_direct_adv_interval        =*/ 0,    // seconds
    /*.high_direct_adv_duration       =*/ 0,    // seconds
    /*.low_direct_adv_duration        =*/ 0,    // seconds
    /*.local_name                     =*/ LINE_COOK_W_NAMES_DEVICE_NAME, // [LOCAL_NAME_LEN_MAX];
    /*.cod                            =*/ BIT16_TO_8(LINE_COOK_W_NAMES_DEVICE_APPEARENCE),0x00, // [COD_LEN];
    /*.ver                            =*/ "1.00",         // [VERSION_LEN];
    /*.encr_required                  =*/ 0,    //(SECURITY_ENABLED | SECURITY_REQUEST),    // data encrypted and device sends security request on every connection
    /*.disc_required                  =*/ 0,    // if 1, disconnection after confirmation
    /*.test_enable                    =*/ 1,    // TEST MODE is enabled when 1
    /*.tx_power_level                 =*/ 0x04, // dbm
    /*.con_idle_timeout               =*/ 30,   // second  0-> no timeout
    /*.powersave_timeout              =*/ 0,    // second  0-> no timeout
    /*.hdl                            =*/ {LINE_COOK_W_NAMES_MAIN_CHAR_HANDLE, 0x00, 0x00, 0x00, 0x00}, // [HANDLE_NUM_MAX];
    /*.serv                           =*/ {LINE_COOK_W_NAMES_MAIN_SERVICE_UUID, 0x00, 0x00, 0x00, 0x00},
    /*.cha                            =*/ {LINE_COOK_W_NAMES_MAIN_CHAR_UUID, 0x00, 0x00, 0x00, 0x00},
    /*.findme_locator_enable          =*/ 0,    // if 1 Find me locator is enable
    /*.findme_alert_level             =*/ 0,    // alert level of find me
    /*.client_grouptype_enable        =*/ 0,    // if 1 grouptype read can be used
    /*.linkloss_button_enable         =*/ 0,    // if 1 linkloss button is enable
    /*.pathloss_check_interval        =*/ 0,    // second
// GATT databse
const UINT8 blecsc_db_data[]=
{
    // Handle 0x01: GATT service
    PRIMARY_SERVICE_UUID16 (0x0001, UUID_SERVICE_GATT),

    // Handle 0x14: GAP service
    PRIMARY_SERVICE_UUID16 (0x0014, UUID_SERVICE_GAP),

    // Handle 0x15: characteristic Device Name, handle 0x16 characteristic value
    CHARACTERISTIC_UUID16 (0x0015, 0x0016, UUID_CHARACTERISTIC_DEVICE_NAME, LEGATTDB_CHAR_PROP_READ, LEGATTDB_PERM_READABLE, 16),
        'B','L','E',' ','C','y','c','l','i','n','g',0x00,0x00,0x00,0x00,0x00,

    // Handle 0x17: characteristic Appearance, handle 0x18 characteristic value
    CHARACTERISTIC_UUID16 (0x0017, 0x0018, UUID_CHARACTERISTIC_APPEARANCE, LEGATTDB_CHAR_PROP_READ, LEGATTDB_PERM_READABLE, 2),
        BIT16_TO_8(APPEARANCE_CYCLING_SPEED_AND_CADENCE_SENSOR),

    // Handle 0x28: Cycling Speed and Cadence
    PRIMARY_SERVICE_UUID16 (0x0028, UUID_SERVICE_CSC),

    // Handle 0x29: characteristic CSC Measurement, handle 0x2a characteristic value
#define HANDLE_CSC_MEASUREMENT_VALUE 0x2a
    CHARACTERISTIC_UUID16 (0x0029, HANDLE_CSC_MEASUREMENT_VALUE, UUID_CHARACTERISTIC_CSC_MEASUREMENT,
                           LEGATTDB_CHAR_PROP_NOTIFY, LEGATTDB_PERM_NONE, 11),
        0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    // Handle 0x2b: Client Configuration descriptor
#define HANDLE_CSC_MEASUREMENT_CLIENT_CONFIGURATION_DESCRIPTOR 0x2b
    CHAR_DESCRIPTOR_UUID16_WRITABLE (HANDLE_CSC_MEASUREMENT_CLIENT_CONFIGURATION_DESCRIPTOR, UUID_DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIGURATION,
                                     LEGATTDB_PERM_READABLE | LEGATTDB_PERM_WRITE_REQ, 2),
        0x00,0x00,
                           HDLC_GENERIC_ACCESS_DEVICE_NAME_VALUE,
                           UUID_CHARACTERISTIC_DEVICE_NAME,
                           LEGATTDB_CHAR_PROP_READ,
                           LEGATTDB_PERM_READABLE,
                           16),
    'l','o','n','g','_','c','h','a','r',0x00,0x00,0x00,0x00,0x00,0x00,0x00, 

    //<Name>Appearance</Name>
    //<Uuid>2A01</Uuid>
    CHARACTERISTIC_UUID16 (HDLC_GENERIC_ACCESS_APPEARANCE,
                           HDLC_GENERIC_ACCESS_APPEARANCE_VALUE,
                           UUID_CHARACTERISTIC_APPEARANCE,
                           LEGATTDB_CHAR_PROP_READ,
                           LEGATTDB_PERM_READABLE,
                           2),
    BIT16_TO_8(APPEARANCE_GENERIC_TAG),

// ***** Primary service 'Generic Attribute'
    //<Name>Generic Attribute</Name>
    //<Uuid>1801</Uuid>
    //Service handle: HDLS_GENERIC_ATTRIBUTE
    //Service UUID: UUID_SERVICE_GATT
    PRIMARY_SERVICE_UUID16 (HDLS_GENERIC_ATTRIBUTE, UUID_SERVICE_GATT),

// ***** Primary service 'long_characteristic'
    //<Name>long_characteristic</Name>
    //<Uuid>bf 90 21 8e c0 68 4c 00 84 01 2d ba 08 ab 32 88</Uuid>
    //Service handle: HDLS_LONG_CHARACTERISTIC
    //Service UUID: UUID_LONG_CHAR_SERVICE
    PRIMARY_SERVICE_UUID128 (HDLS_LONG_CHARACTERISTIC, UUID_LONG_CHAR_SERVICE),
Esempio n. 6
0
PLACE_IN_DROM const UINT8 blehrm_db_data[]=
{
    // GATT service
    PRIMARY_SERVICE_UUID16 (0x0001, UUID_SERVICE_GATT),

    CHARACTERISTIC_UUID16  (0x0002, 0x0003, UUID_CHARACTERISTIC_SERVICE_CHANGED, LEGATTDB_CHAR_PROP_NOTIFY, LEGATTDB_PERM_NONE, 4), 
        0x00, 0x00, 0x00, 0x00,

    // GAP service
    PRIMARY_SERVICE_UUID16 (0x0014, UUID_SERVICE_GAP),
    
    CHARACTERISTIC_UUID16 (0x0015, 0x0016, UUID_CHARACTERISTIC_DEVICE_NAME, LEGATTDB_CHAR_PROP_READ, LEGATTDB_PERM_READABLE, 16),
        'B','L','E',' ','H','R',' ','M','o','n','i','t','o','r',0x00,0x00,

    CHARACTERISTIC_UUID16 (0x0017, 0x0018, UUID_CHARACTERISTIC_APPEARANCE, LEGATTDB_CHAR_PROP_READ, LEGATTDB_PERM_READABLE, 2),
        BIT16_TO_8(APPEARANCE_GENERIC_HEART_RATE_SENSOR),

    // Heart Rate service
    PRIMARY_SERVICE_UUID16 (0x0028, UUID_SERVICE_HEART_RATE),

    CHARACTERISTIC_UUID16 (0x0029, 0x002a, UUID_CHARACTERISTIC_HEART_RATE_MEASUREMENT, 
                           LEGATTDB_CHAR_PROP_NOTIFY, LEGATTDB_PERM_NONE, 4),
        0x08,0x00,0x00,0x00,

    CHAR_DESCRIPTOR_UUID16_WRITABLE (0x002b, UUID_DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIGURATION,
                                      LEGATTDB_PERM_READABLE | LEGATTDB_PERM_WRITE_CMD |LEGATTDB_PERM_WRITE_REQ, 2),
        0x00,0x00,

    CHARACTERISTIC_UUID16 (0x002e, 0x002f, UUID_CHARACTERISTIC_HEART_RATE_SENSOR_LOCATION, 
                           LEGATTDB_CHAR_PROP_READ, LEGATTDB_PERM_READABLE, 1),
        0x01,                       // Body Sensor Location Chest