Initial commit

Dependencies:   FastPWM

mbed-dev-master/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/bt_types.h

Committer:
lypinator
Date:
2020-09-16
Revision:
0:bb348c97df44

File content as of revision 0:bb348c97df44:

/*---------------------------------------------------------------------------
 * Copyright (c) 2016, u-blox Malmö, All Rights Reserved
 * SPDX-License-Identifier: LicenseRef-PBL
 *
 * This file and the related binary are licensed under the
 * Permissive Binary License, Version 1.0 (the "License");
 * you may not use these files except in compliance with the License.
 *
 * You may obtain a copy of the License here:
 * LICENSE-permissive-binary-license-1.0.txt and at
 * https://www.mbed.com/licenses/PBL-1.0
 *
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Component   : 
 * File        : bt_types.h
 *
 * Description : Common Bluetooth types
 *-------------------------------------------------------------------------*/

/**
 * @file bt_types.h
 * @brief Common Bluetooth types
 */

#ifndef _BT_TYPES_H_
#define _BT_TYPES_H_

#include "cb_comdefs.h"

/*===========================================================================
 * DEFINES
 *=========================================================================*/

#define SIZE_OF_BD_ADDR                               (6)
#define SIZE_OF_COD                                   (3)
#define SIZE_OF_LINK_KEY                              (16)
#define SIZE_OF_NAME_INCOMING                         (248)
#define SIZE_OF_NAME_OUTGOING                         (64)
#define SIZE_OF_PIN_CODE                              ((cb_uint8)16)
#define SIZE_OF_LAP                                   (3)
#define SIZE_OF_AFH_LMP_HCI_CHANNEL_MAP               (10)
#define CHANNEL_MAP_SIZE                              (5)
#define SIZE_OF_EXT_INQ_RSP                           (240)
#define MIN_PASSKEY_VALUE                             (0)
#define MAX_PASSKEY_VALUE                             (999999)
#define INVALID_CONN_HANDLE                           ((TConnHandle)0xFFFF)
#define MAX_ADV_DATA_LENGTH                           (31)
#define UUID_LENGTH                                   (16)


#define PACKET_TYPE_DM1                                                 (0x0008)
#define PACKET_TYPE_DH1                                                 (0x0010)
#define PACKET_TYPE_DM3                                                 (0x0400)
#define PACKET_TYPE_DH3                                                 (0x0800)
#define PACKET_TYPE_DM5                                                 (0x4000)
#define PACKET_TYPE_DH5                                                 (0x8000)

#define PACKET_TYPE_NO_2_DH1                                            (0x0002)
#define PACKET_TYPE_NO_3_DH1                                            (0x0004)
#define PACKET_TYPE_NO_2_DH3                                            (0x0100)
#define PACKET_TYPE_NO_3_DH3                                            (0x0200)
#define PACKET_TYPE_NO_2_DH5                                            (0x1000)
#define PACKET_TYPE_NO_3_DH5                                            (0x2000)

#define PACKET_TYPE_ALL (PACKET_TYPE_DM1 | PACKET_TYPE_DH1 | PACKET_TYPE_DM3 | PACKET_TYPE_DH3 | PACKET_TYPE_DM5 | PACKET_TYPE_DH5)

#define BD_ADDR_IS_STATIC_RANDOM(BdAddress)     ((BdAddress[0] & 0xC0) == 0xC0)
#define BD_ADDR_IS_NON_RESOLVABLE(BdAddress)    ((BdAddress[0] & 0xC0) == 0x00)
#define BD_ADDR_IS_RESOLVABLE(BdAddress)        ((BdAddress[0] & 0xC0) == 0x40)

#define BT_INVALID_STATIC_LINK_KEY (0)
/*===========================================================================
 * TYPES
 *=========================================================================*/

typedef cb_int32        int32;
typedef cb_uint32       uint32;
typedef cb_boolean      boolean;
typedef cb_int8         int8;
typedef cb_uint8        uint8;
typedef cb_int16        int16;
typedef cb_uint16       uint16;

typedef cb_uint8       TErrorCode;
typedef cb_uint8       TLinkType;
typedef cb_uint16      TPacketType;
typedef cb_uint16      TConnHandle;

typedef enum
{
  BT_SECURITY_MODE_1 = 1,
  BT_SECURITY_MODE_2,
  BT_SECURITY_MODE_3,
  BT_SECURITY_MODE_4

} TSecurityMode;

typedef enum
{
  BT_SECURITY_LEVEL_0 = 0,
  BT_SECURITY_LEVEL_1,
  BT_SECURITY_LEVEL_2,
  BT_SECURITY_LEVEL_3,
  // Used with security modes 1,2,3 where security level is not applicable
  BT_SECURITY_LEVEL_DUMMY = 5,

} TSecurityLevel;


typedef enum 
{
  BT_MASTER_SLAVE_POLICY_ALWAYS_MASTER     = 0,
  BT_MASTER_SLAVE_POLICY_OTHER_SIDE_DECIDE = 1

} TMasterSlavePolicy;

typedef enum 
{
    BT_TYPE_CLASSIC    = 0,
    BT_TYPE_LOW_ENERGY = 1

} TBluetoothType;

typedef enum
{
    BT_PUBLIC_ADDRESS = 0x00,
    BT_RANDOM_ADDRESS = 0x01,

} TAddressType;

typedef struct
{
  cb_uint8      BdAddress[SIZE_OF_BD_ADDR];
  TAddressType  AddrType;

} TBdAddr;

typedef struct
{
  cb_uint8 Cod[SIZE_OF_COD];

} TCod;

typedef struct
{
  cb_uint8 LinkKey[SIZE_OF_LINK_KEY];

} TLinkKey;

typedef struct
{
  cb_uint8 Name[SIZE_OF_NAME_INCOMING];

} TName;

typedef struct
{
    cb_uint8 Name[SIZE_OF_NAME_OUTGOING];

} TNameOutgoing;

typedef struct
{
  cb_uint8 PinCode[SIZE_OF_PIN_CODE];

} TPinCode;

typedef cb_uint32 TPasskey;

typedef struct
{
  cb_uint8 Lap[SIZE_OF_LAP];

} TLap;

typedef struct
{
  cb_uint8 Data[SIZE_OF_EXT_INQ_RSP];

} TExtInqRsp;

typedef cb_uint8 TAfhLmpHciChannelMap[SIZE_OF_AFH_LMP_HCI_CHANNEL_MAP];

typedef struct
{
    uint16 channel[CHANNEL_MAP_SIZE];
} TChannelMap;


typedef enum
{
    BT_ADV_TYPE_ADV  = 0x01,
    BT_ADV_TYPE_SCAN = 0x00,
} TAdvDataType;

typedef struct 
{
    TAdvDataType type;
    cb_uint8 length;
    cb_uint8 data[MAX_ADV_DATA_LENGTH];
} TAdvData;

typedef struct
{
    cb_uint16 createConnectionTimeout;
    cb_uint16 connectionIntervalMin;
    cb_uint16 connectionIntervalMax;
    cb_uint16 connectionLatency;
    cb_uint16 linkLossTimeout;
    cb_uint16  scanInterval;
    cb_uint16  scanWindow;
} TAclParamsLe;

#endif /* _BT_TYPES_H */