Bluetooth Low Energy Host Stack  Rev. 4
API Reference Manual
BLE General Definitions

Overview


 

Files

file  ble_general.h
 
file  ble_host_tasks.h
 
file  ble_sig_defines.h
 
file  ble_utils.h
 

Data Structures

struct  bleIdentityAddress_t
 
union  bleUuid_t
 
struct  bleAdvertisingChannelMap_t
 
struct  gapLeScOobData_t
 
struct  gapInternalError_t
 
struct  gapControllerTestEvent_t
 
struct  gapGenericEvent_t
 
union  gapGenericEvent_t.eventData
 
struct  bleBondIdentityHeaderBlob_t
 
struct  bleBondDataDynamicBlob_t
 
struct  bleBondDataStaticBlob_t
 
struct  bleBondDataDeviceInfoBlob_t
 
struct  bleBondDataDescriptorBlob_t
 
struct  bleBondDataBlob_t
 

Macros

#define gInvalidDeviceId_c
 
#define gcConnectionIntervalMin_c
 
#define gcConnectionIntervalMax_c
 
#define gcConnectionSlaveLatencyMax_c
 
#define gcConnectionSupervisionTimeoutMin_c
 
#define gcConnectionSupervisionTimeoutMax_c
 
#define gcConnectionIntervalMinDefault_c
 
#define gcConnectionIntervalMaxDefault_c
 
#define gcConnectionSlaveLatencyDefault_c
 
#define gcConnectionSupervisionTimeoutDefault_c
 
#define gcConnectionEventMinDefault_c
 
#define gcConnectionEventMaxDefault_c
 
#define Ble_IsPrivateResolvableDeviceAddress(bleAddress)
 
#define Ble_IsPrivateNonresolvableDeviceAddress(bleAddress)
 
#define Ble_IsRandomStaticDeviceAddress(bleAddress)
 
#define Ble_DeviceAddressesMatch(bleAddress1, bleAddress2)
 
#define Ble_CopyDeviceAddress(destinationAddress, sourceAddress)
 
#define gBleSig_PrimaryService_d
 
#define gBleSig_SecondaryService_d
 
#define gBleSig_Include_d
 
#define gBleSig_Characteristic_d
 
#define gBleSig_CCCD_d
 
#define gBleSig_SCCD_d
 
#define gBleSig_CharPresFormatDescriptor_d
 
#define gBleSig_ValidRangeDescriptor_d
 
#define gBleSig_GenericAccessProfile_d
 
#define gBleSig_GenericAttributeProfile_d
 
#define gBleSig_ImmediateAlertService_d
 
#define gBleSig_LinkLossService_d
 
#define gBleSig_TxPowerService_d
 
#define gBleSig_CurrentTimeService_d
 
#define gBleSig_ReferenceTimeUpdateService_d
 
#define gBleSig_NextDSTChangeService_d
 
#define gBleSig_GlucoseService_d
 
#define gBleSig_HealthThermometerService_d
 
#define gBleSig_DeviceInformationService_d
 
#define gBleSig_HeartRateService_d
 
#define gBleSig_BatteryService_d
 
#define gBleSig_BloodPressureService_d
 
#define gBleSig_AlertNotificationService_d
 
#define gBleSig_HidService_d
 
#define gBleSig_RunningSpeedAndCadenceService_d
 
#define gBleSig_CyclingSpeedAndCadenceService_d
 
#define gBleSig_CyclingPowerService_d
 
#define gBleSig_IpsService_d
 
#define gBleSig_PulseOximeterService_d
 
#define gBleSig_HTTPProxyService_d
 
#define gBleSig_WPTService_d
 
#define gBleSig_GapDeviceName_d
 
#define gBleSig_GapAppearance_d
 
#define gBleSig_GapPpcp_d
 
#define gBleSig_GattServiceChanged_d
 
#define gBleSig_AlertLevel_d
 
#define gBleSig_TxPower_d
 
#define gBleSig_LocalTimeInformation_d
 
#define gBleSig_TimeWithDST_d
 
#define gBleSig_ReferenceTimeInformation_d
 
#define gBleSig_TimeUpdateControlPoint_d
 
#define gBleSig_TimeUpdateState_d
 
#define gBleSig_GlucoseMeasurement_d
 
#define gBleSig_BatteryLevel_d
 
#define gBleSig_TemperatureMeasurement_d
 
#define gBleSig_TemperatureType_d
 
#define gBleSig_IntermediateTemperature_d
 
#define gBleSig_MeasurementInterval_d
 
#define gBleSig_SystemId_d
 
#define gBleSig_ModelNumberString_d
 
#define gBleSig_SerialNumberString_d
 
#define gBleSig_FirmwareRevisionString_d
 
#define gBleSig_HardwareRevisionString_d
 
#define gBleSig_SoftwareRevisionString_d
 
#define gBleSig_ManufacturerNameString_d
 
#define gBleSig_IeeeRcdl_d
 
#define gBleSig_CurrentTime_d
 
#define gBleSig_BootKeyboardInputReport_d
 
#define gBleSig_BootKeyboardOutputReport_d
 
#define gBleSig_BootMouseInputReport_d
 
#define gBleSig_GlucoseMeasurementContext_d
 
#define gBleSig_BpMeasurement_d
 
#define gBleSig_IntermediateCuffPressure_d
 
#define gBleSig_HrMeasurement_d
 
#define gBleSig_BodySensorLocation_d
 
#define gBleSig_HrControlPoint_d
 
#define gBleSig_AlertNotifControlPoint_d
 
#define gBleSig_UnreadAlertStatus_d
 
#define gBleSig_NewAlert_d
 
#define gBleSig_SupportedNewAlertCategory_d
 
#define gBleSig_SupportedUnreadAlertCategory_d
 
#define gBleSig_BloodPressureFeature_d
 
#define gBleSig_HidInformation_d
 
#define gBleSig_HidCtrlPoint_d
 
#define gBleSig_Report_d
 
#define gBleSig_ProtocolMode_d
 
#define gBleSig_ScanIntervalWindow_d
 
#define gBleSig_PnpId_d
 
#define gBleSig_GlucoseFeature_d
 
#define gBleSig_RaCtrlPoint_d
 
#define gBleSig_RscMeasurement_d
 
#define gBleSig_RscFeature_d
 
#define gBleSig_ScControlPoint_d
 
#define gBleSig_CscMeasurement_d
 
#define gBleSig_CscFeature_d
 
#define gBleSig_SensorLocation_d
 
#define gBleSig_PlxSCMeasurement_d
 
#define gBleSig_PlxContMeasurement_d
 
#define gBleSig_PulseOximeterFeature_d
 
#define gBleSig_CpMeasurement_d
 
#define gBleSig_CpVector_d
 
#define gBleSig_CpFeature_d
 
#define gBleSig_CpControlPoint_d
 
#define gBleSig_Temperature_d
 
#define gBleSig_CentralAddressResolution_d
 
#define gBleSig_URI_d
 
#define gBleSig_HTTP_Headers_d
 
#define gBleSig_HTTP_StatusCode_d
 
#define gBleSig_HTTP_EntityBody_d
 
#define gBleSig_HTTP_ControlPoint_d
 
#define gBleSig_HTTPS_Security_d
 
#define BleSig_IsGroupingAttributeUuid16(uuid16)
 
#define BleSig_IsServiceDeclarationUuid16(uuid16)
 
#define Uuid16(uuid)
 
#define Uuid32(uuid)
 
#define UuidArray(value)
 
#define PACKED_STRUCT
 
#define PACKED_UNION
 
#define global
 
#define __noreturn
 
#define Utils_ExtractTwoByteValue(buf)
 
#define Utils_ExtractThreeByteValue(buf)
 
#define Utils_ExtractFourByteValue(buf)
 
#define Utils_BeExtractTwoByteValue(buf)
 
#define Utils_BeExtractThreeByteValue(buf)
 
#define Utils_BeExtractFourByteValue(buf)
 
#define Utils_PackTwoByteValue(value, buf)
 
#define Utils_PackThreeByteValue(value, buf)
 
#define Utils_PackFourByteValue(value, buf)
 
#define Utils_BePackTwoByteValue(value, buf)
 
#define Utils_BePackThreeByteValue(value, buf)
 
#define Utils_BePackFourByteValue(value, buf)
 
#define Utils_Copy8(ptr, val8)
 
#define Utils_Copy16(ptr, val16)
 
#define Utils_Copy32(ptr, val32)
 
#define Utils_Copy64(ptr, val64)
 
#define Utils_RevertByteArray(array, size)
 

Typedefs

typedef uint8_t deviceId_t
 
typedef uint8_t bleDeviceAddress_t[gcBleDeviceAddressSize_c]
 
typedef void(* gapGenericCallback_t) (gapGenericEvent_t *pGenericEvent)
 
typedef bleResult_t(* hciHostToControllerInterface_t) (hciPacketType_t packetType, void *pPacket, uint16_t packetSize)
 

Enumerations

enum  bleResult_t {
  gBleStatusBase_c, gBleSuccess_c, gBleInvalidParameter_c, gBleOverflow_c,
  gBleUnavailable_c, gBleFeatureNotSupported_c, gBleOutOfMemory_c, gBleAlreadyInitialized_c,
  gBleOsError_c, gBleUnexpectedError_c, gBleInvalidState_c, gHciStatusBase_c,
  gHciSuccess_c, gHciUnknownHciCommand_c, gHciUnknownConnectionIdentifier_c, gHciHardwareFailure_c,
  gHciPageTimeout_c, gHciAuthenticationFailure_c, gHciPinOrKeyMissing_c, gHciMemoryCapacityExceeded_c,
  gHciConnectionTimeout_c, gHciConnectionLimitExceeded_c, gHciSynchronousConnectionLimitToADeviceExceeded_c, gHciAclConnectionAlreadyExists_c,
  gHciCommandDisallowed_c, gHciConnectionRejectedDueToLimitedResources_c, gHciConnectionRejectedDueToSecurityReasons_c, gHciConnectionRejectedDueToUnacceptableBdAddr_c,
  gHciConnectionAcceptTimeoutExceeded_c, gHciUnsupportedFeatureOrParameterValue_c, gHciInvalidHciCommandParameters_c, gHciRemoteUserTerminatedConnection_c,
  gHciRemoteDeviceTerminatedConnectionLowResources_c, gHciRemoteDeviceTerminatedConnectionPowerOff_c, gHciConnectionTerminatedByLocalHost_c, gHciRepeatedAttempts_c,
  gHciPairingNotAllowed_c, gHciUnknownLpmPdu_c, gHciUnsupportedRemoteFeature_c, gHciScoOffsetRejected_c,
  gHciScoIntervalRejected_c, gHciScoAirModeRejected_c, gHciInvalidLpmParameters_c, gHciUnspecifiedError_c,
  gHciUnsupportedLpmParameterValue_c, gHciRoleChangeNotAllowed_c, gHciLLResponseTimeout_c, gHciLmpErrorTransactionCollision_c,
  gHciLmpPduNotAllowed_c, gHciEncryptionModeNotAcceptable_c, gHciLinkKeyCannotBeChanged_c, gHciRequestedQosNotSupported_c,
  gHciInstantPassed_c, gHciPairingWithUnitKeyNotSupported_c, gHciDifferentTransactionCollision_c, gHciReserved_0x2B_c,
  gHciQosNotAcceptableParameter_c, gHciQosRejected_c, gHciChannelClassificationNotSupported_c, gHciInsufficientSecurity_c,
  gHciParameterOutOfMandatoryRange_c, gHciReserved_0x31_c, gHciRoleSwitchPending_c, gHciReserved_0x33_c,
  gHciReservedSlotViolation_c, gHciRoleSwitchFailed_c, gHciExtendedInquiryResponseTooLarge_c, gHciSecureSimplePairingNotSupportedByHost_c,
  gHciHostBusyPairing_c, gHciConnectionRejectedDueToNoSuitableChannelFound_c, gHciControllerBusy_c, gHciUnacceptableConnectionParameters_c,
  gHciDirectedAdvertisingTimeout_c, gHciConnectionTerminatedDueToMicFailure_c, gHciConnectionFailedToBeEstablished_c, gHciMacConnectionFailed_c,
  gHciCoarseClockAdjustmentRejected_c, gHciAlreadyInit_c, gHciInvalidParameter_c, gHciCallbackNotInstalled_c,
  gHciCallbackAlreadyInstalled_c, gHciCommandNotSupported_c, gHciEventNotSupported_c, gHciTransportError_c,
  gCtrlStatusBase_c, gCtrlSuccess_c, gL2caStatusBase_c, gL2caSuccess_c,
  gL2caAlreadyInit_c, gL2caInsufficientResources_c, gL2caCallbackNotInstalled_c, gL2caCallbackAlreadyInstalled_c,
  gL2caLePsmInvalid_c, gL2caLePsmAlreadyRegistered_c, gL2caLePsmNotRegistered_c, gL2caLePsmInsufficientResources_c,
  gL2caChannelInvalid_c, gL2caChannelClosed_c, gL2caChannelAlreadyConnected_c, gL2caConnectionParametersRejected_c,
  gL2caChannelBusy_c, gL2caInvalidParameter_c, gL2caError_c, gSmStatusBase_c,
  gSmSuccess_c, gSmNullCBFunction_c, gSmCommandNotSupported_c, gSmUnexpectedCommand_c,
  gSmInvalidCommandCode_c, gSmInvalidCommandLength_c, gSmInvalidCommandParameter_c, gSmInvalidDeviceId_c,
  gSmInvalidInternalOperation_c, gSmInvalidConnectionHandle_c, gSmInproperKeyDistributionField_c, gSmUnexpectedKeyType_c,
  gSmUnexpectedPairingTerminationReason_c, gSmUnexpectedKeyset_c, gSmSmpTimeoutOccurred_c, gSmUnknownSmpPacketType_c,
  gSmInvalidSmpPacketLength_c, gSmInvalidSmpPacketParameter_c, gSmReceivedUnexpectedSmpPacket_c, gSmReceivedSmpPacketFromUnknownDevice_c,
  gSmReceivedUnexpectedHciEvent_c, gSmReceivedHciEventFromUnknownDevice_c, gSmInvalidHciEventParameter_c, gSmLlConnectionEncryptionInProgress_c,
  gSmLlConnectionEncryptionFailure_c, gSmInsufficientResources_c, gSmOobDataAddressMismatch_c, gSmSmpPacketReceivedAfterTimeoutOccurred_c,
  gSmReceivedTimerEventForUnknownDevice_c, gSmUnattainableLocalDeviceSecRequirements_c, gSmUnattainableLocalDeviceMinKeySize_c, gSmUnattainableSlaveSecReqRequirements_c,
  gSmPairingErrorPasskeyEntryFailed_c, gSmPairingErrorConfirmValueFailed_c, gSmPairingErrorCommandNotSupported_c, gSmPairingErrorInvalidParameters_c,
  gSmPairingErrorUnknownReason_c, gSmTbResolvableAddressDoesNotMatchIrk_c, gSmTbInvalidDataSignature_c, gAttStatusBase_c,
  gAttSuccess_c, gGattStatusBase_c, gGattSuccess_c, gGattAnotherProcedureInProgress_c,
  gGattLongAttributePacketsCorrupted_c, gGattMultipleAttributesOverflow_c, gGattUnexpectedReadMultipleResponseLength_c, gGattInvalidValueLength_c,
  gGattServerTimeout_c, gGattIndicationAlreadyInProgress_c, gGattClientConfirmationTimeout_c, gGapStatusBase_c,
  gGapSuccess_c, gGapAdvDataTooLong_c, gGapScanRspDataTooLong_c, gGapDeviceNotBonded_c,
  gDevDbStatusBase_c, gDevDbSuccess_c, gDevDbCccdLimitReached_c, gDevDbCccdNotFound_c,
  gGattDbStatusBase_c, gGattDbSuccess_c, gGattDbInvalidHandle_c, gGattDbCharacteristicNotFound_c,
  gGattDbCccdNotFound_c, gGattDbServiceNotFound_c, gGattDbDescriptorNotFound_c
}
 
enum  bleAddressType_t { gBleAddrTypePublic_c, gBleAddrTypeRandom_c }
 
enum  bleUuidType_t { gBleUuidType16_c, gBleUuidType128_c, gBleUuidType32_c }
 
enum  bleAdvertisingType_t {
  gAdvConnectableUndirected_c, gAdvDirectedHighDutyCycle_c, gAdvScannable_c, gAdvNonConnectable_c,
  gAdvDirectedLowDutyCycle_c
}
 
enum  bleAdvertisingFilterPolicy_t { gBleAdvFilterAllowScanFromAnyAllowConnFromAny_c, gBleAdvFilterAllowScanFromWLAllowConnFromAny_c, gBleAdvFilterAllowScanFromAnyAllowConnFromWL_c, gBleAdvFilterAllowScanFromWLAllowConnFromWL_c }
 
enum  bleLlConnectionRole_t { gBleLlConnectionMaster_c, gBleLlConnectionSlave_c }
 
enum  bleMasterClockAccuracy_t {
  gBleMasterClkAcc500ppm_c, gBleMasterClkAcc250ppm_c, gBleMasterClkAcc150ppm_c, gBleMasterClkAcc100ppm_c,
  gBleMasterClkAcc75ppm_c, gBleMasterClkAcc50ppm_c, gBleMasterClkAcc30ppm_c, gBleMasterClkAcc20ppm_c
}
 
enum  bleAdvertisingReportEventType_t {
  gBleAdvRepAdvInd_c, gBleAdvRepAdvDirectInd_c, gBleAdvRepAdvScanInd_c, gBleAdvRepAdvNonconnInd_c,
  gBleAdvRepScanRsp_c
}
 
enum  hciPacketType_t { gHciCommandPacket_c, gHciDataPacket_c, gHciSynchronousDataPacket_c, gHciEventPacket_c }
 
enum  bleScanType_t { gScanTypePassive_c, gScanTypeActive_c }
 
enum  bleScanningFilterPolicy_t { gScanAll_c, gScanWithWhiteList_c }
 
enum  bleInitiatorFilterPolicy_t { gUseDeviceAddress_c, gUseWhiteList_c }
 
enum  bleTransmitPowerLevelType_t { gReadCurrentTxPowerLevel_c, gReadMaximumTxPowerLevel_c }
 
enum  bleTransmitPowerChannelType_t { gTxPowerAdvChannel_c, gTxPowerConnChannel_c }
 
enum  bleChannelFrequency_t {
  gBleFreq2402MHz_c, gBleFreq2404MHz_c, gBleFreq2406MHz_c, gBleFreq2408MHz_c,
  gBleFreq2410MHz_c, gBleFreq2412MHz_c, gBleFreq2414MHz_c, gBleFreq2416MHz_c,
  gBleFreq2418MHz_c, gBleFreq2420MHz_c, gBleFreq2422MHz_c, gBleFreq2424MHz_c,
  gBleFreq2426MHz_c, gBleFreq2428MHz_c, gBleFreq2430MHz_c, gBleFreq2432MHz_c,
  gBleFreq2434MHz_c, gBleFreq2436MHz_c, gBleFreq2438MHz_c, gBleFreq2440MHz_c,
  gBleFreq2442MHz_c, gBleFreq2444MHz_c, gBleFreq2446MHz_c, gBleFreq2448MHz_c,
  gBleFreq2450MHz_c, gBleFreq2452MHz_c, gBleFreq2454MHz_c, gBleFreq2456MHz_c,
  gBleFreq2458MHz_c, gBleFreq2460MHz_c, gBleFreq2462MHz_c, gBleFreq2464MHz_c,
  gBleFreq2466MHz_c, gBleFreq2468MHz_c, gBleFreq2470MHz_c, gBleFreq2472MHz_c,
  gBleFreq2474MHz_c, gBleFreq2476MHz_c, gBleFreq2478MHz_c, gBleFreq2480MHz_c
}
 
enum  bleTxTestPacketPayload_t {
  gBleTestPacketPayloadPrbs9_c, gBleTestPacketPayloadPattern11110000_c, gBleTestPacketPayloadPattern10101010_c, gBleTestPacketPayloadPrbs15_c,
  gBleTestPacketPayloadPatternAllBits1_c, gBleTestPacketPayloadPatternAllBits0_c, gBleTestPacketPayloadPattern00001111_c, gBleTestPacketPayloadPattern01010101_c
}
 
enum  bleHardwareErrorCode_t { bleHwErrCodeNoError_c }
 
enum  gapGenericEventType_t {
  gInitializationComplete_c, gInternalError_c, gAdvertisingSetupFailed_c, gAdvertisingParametersSetupComplete_c,
  gAdvertisingDataSetupComplete_c, gWhiteListSizeRead_c, gDeviceAddedToWhiteList_c, gDeviceRemovedFromWhiteList_c,
  gWhiteListCleared_c, gRandomAddressReady_c, gCreateConnectionCanceled_c, gPublicAddressRead_c,
  gAdvTxPowerLevelRead_c, gPrivateResolvableAddressVerified_c, gRandomAddressSet_c, gControllerResetComplete_c,
  gLeScPublicKeyRegenerated_c, gLeScLocalOobData_c, gControllerPrivacyStateChanged_c, gControllerTestEvent_c,
  gTxPowerLevelSetComplete_c
}
 
enum  gapInternalErrorSource_t {
  gHciCommandStatus_c, gCheckPrivateResolvableAddress_c, gVerifySignature_c, gAddNewConnection_c,
  gResetController_c, gSetEventMask_c, gReadLeBufferSize_c, gSetLeEventMask_c,
  gReadDeviceAddress_c, gReadLocalSupportedFeatures_c, gReadWhiteListSize_c, gClearWhiteList_c,
  gAddDeviceToWhiteList_c, gRemoveDeviceFromWhiteList_c, gCancelCreateConnection_c, gReadRadioPower_c,
  gSetRandomAddress_c, gCreateRandomAddress_c, gEncryptLink_c, gProvideLongTermKey_c,
  gDenyLongTermKey_c, gConnect_c, gDisconnect_c, gTerminatePairing_c,
  gSendSlaveSecurityRequest_c, gEnterPasskey_c, gProvideOob_c, gSendSmpKeys_c,
  gWriteSuggestedDefaultDataLength_c, gReadSuggestedDefaultDataLength_c, gUpdateLeDataLength_c, gEnableControllerPrivacy_c,
  gLeScSendKeypressNotification_c, gLeScSetPeerOobData_c, gLeScGetLocalOobData_c, gLeScValidateNumericValue_c,
  gLeScRegeneratePublicKey_c, gLeSetResolvablePrivateAddressTimeout_c, gDefaultPairingProcedure_c, gLeControllerTest_c
}
 
enum  gapControllerTestEventType_t { gControllerReceiverTestStarted_c, gControllerTransmitterTestStarted_c, gControllerTestEnded_c }
 

Functions

bleResult_t Ble_HostInitialize (gapGenericCallback_t genericCallback, hciHostToControllerInterface_t hostToControllerInterface)
 
bleResult_t Ble_HciRecv (hciPacketType_t packetType, void *pPacket, uint16_t packetSize)
 
void Host_TaskHandler (void *args)
 

Variables

msgQueue_t gApp2Host_TaskQueue
 
msgQueue_t gHci2Host_TaskQueue
 
osaEventId_t gHost_TaskEvent
 

Data Structure Documentation

◆ bleIdentityAddress_t

struct bleIdentityAddress_t

Bluetooth Identity Address - array of 6 bytes.

Data Fields
bleAddressType_t idAddressType Public or Random (static).
bleDeviceAddress_t idAddress 6-byte address.

◆ bleUuid_t

union bleUuid_t

Union for a Bluetooth UUID; selected according to an accompanying bleUuidType_t.

Data Fields
uint16_t uuid16 For gBleUuidType16_c.
uint32_t uuid32 For gBleUuidType32_c.
uint8_t uuid128[16] For gBleUuidType128_c.

◆ bleAdvertisingChannelMap_t

struct bleAdvertisingChannelMap_t
Data Fields
uint8_t enableChannel37: 1 Bit for channel 37.
uint8_t enableChannel38: 1 Bit for channel 38.
uint8_t enableChannel39: 1 Bit for channel 39.
uint8_t reserved: 5 Reserved for future use.

◆ gapLeScOobData_t

struct gapLeScOobData_t
Data Fields
uint8_t randomValue[gSmpLeScRandomValueSize_c] LE SC OOB r (Random value)
uint8_t confirmValue[gSmpLeScRandomConfirmValueSize_c] LE SC OOB Cr (Random Confirm value)

◆ gapInternalError_t

struct gapInternalError_t

Internal Error Event Data.

Data Fields
bleResult_t errorCode Host Stack error code.
gapInternalErrorSource_t errorSource The command that generated the error; useful when it is not obvious from the error code.
uint16_t hciCommandOpcode Only for errorSource = gHciCommandStatus_c; the HCI Command that received an error status.

◆ gapControllerTestEvent_t

struct gapControllerTestEvent_t
Data Fields
gapControllerTestEventType_t testEventType
uint16_t receivedPackets

◆ gapGenericEvent_t

struct gapGenericEvent_t

Generic Event Structure = type + data.

Data Fields
gapGenericEventType_t eventType Event type.
union gapGenericEvent_t eventData Event data, selected according to event type.

◆ gapGenericEvent_t.eventData

union gapGenericEvent_t.eventData
Data Fields
gapInternalError_t internalError Data for the gInternalError_c event.

The error that has occurred and the command that triggered it.

uint8_t whiteListSize Data for the gWhiteListSizeReady_c event.

The size of the White List.

bleDeviceAddress_t aAddress Data for the gRandomAddressReady_c, gPublicAddressRead_c events.

Contains the requested device address.

bleResult_t setupFailError Data for the gAdvertisingSetupFailed_c event.

The error that occurred during the advertising setup.

int8_t advTxPowerLevel_dBm Data for the gAdvTxPowerLevelRead_c event.

Value in dBm.

bool_t verified Data for the gPrivateResolvableAddressVerified_c event.

TRUE if the PRA was resolved with the given IRK.

gapLeScOobData_t localOobData Data for the gLeScLocalOobData_c event.

Contains local OOB data for LESC Pairing.

bool_t newControllerPrivacyState Data for the gControllerPrivacyStateChanged_c event.

TRUE if enabled, FALSE if disabled.

gapControllerTestEvent_t testEvent Data for the gControllerTestEvent_c event.

Contains test event type and received packets.

bleResult_t txPowerLeveleSetStatus Data for the gTxPowerLevelSetComplete_c event.

Status of the set request.

◆ bleBondIdentityHeaderBlob_t

struct bleBondIdentityHeaderBlob_t
Data Fields
uint32_t raw[(gBleBondIdentityHeaderSize_c+3)/sizeof(uint32_t)]

◆ bleBondDataDynamicBlob_t

struct bleBondDataDynamicBlob_t
Data Fields
uint32_t raw[(gBleBondDataDynamicSize_c+3)/sizeof(uint32_t)]

◆ bleBondDataStaticBlob_t

struct bleBondDataStaticBlob_t
Data Fields
uint32_t raw[(gBleBondDataStaticSize_c+3)/sizeof(uint32_t)]

◆ bleBondDataDeviceInfoBlob_t

struct bleBondDataDeviceInfoBlob_t
Data Fields
uint32_t raw[(gBleBondDataDeviceInfoSize_c+3)/sizeof(uint32_t)]

◆ bleBondDataDescriptorBlob_t

struct bleBondDataDescriptorBlob_t
Data Fields
uint32_t raw[(gBleBondDataDescriptorSize_c+3)/sizeof(uint32_t)]

◆ bleBondDataBlob_t

struct bleBondDataBlob_t
Data Fields
bleBondIdentityHeaderBlob_t bondHeader
bleBondDataDynamicBlob_t bondDataBlobDynamic
bleBondDataStaticBlob_t bondDataBlobStatic
bleBondDataDescriptorBlob_t bondDataDescriptors[gcGapMaximumSavedCccds_c]
bleBondDataDeviceInfoBlob_t bondDataBlobDeviceInfo

Macro Definition Documentation

◆ gcConnectionIntervalMin_c

#define gcConnectionIntervalMin_c

Boundary values for the Connection Parameters (Standard GAP).

◆ gcConnectionIntervalMinDefault_c

#define gcConnectionIntervalMinDefault_c

Default values for the Connection Parameters (Preferred).

connIntervalmin = Conn_Interval_Min * 1.25 ms

Value of 0xFFFF indicates no specific minimum.

◆ gcConnectionIntervalMaxDefault_c

#define gcConnectionIntervalMaxDefault_c

connIntervalmax = Conn_Interval_Max * 1.25 ms

Value of 0xFFFF indicates no specific maximum.

◆ gcConnectionSupervisionTimeoutDefault_c

#define gcConnectionSupervisionTimeoutDefault_c

Time = N * 10 ms.

◆ gcConnectionEventMinDefault_c

#define gcConnectionEventMinDefault_c

Time = N * 0.625 ms.

◆ gcConnectionEventMaxDefault_c

#define gcConnectionEventMaxDefault_c

Time = N * 0.625 ms.

◆ Ble_IsPrivateResolvableDeviceAddress

#define Ble_IsPrivateResolvableDeviceAddress (   bleAddress)

PRA condition: check the 6th byte - MSB should be 0; 2nd MSB should be 1.

◆ Ble_IsPrivateNonresolvableDeviceAddress

#define Ble_IsPrivateNonresolvableDeviceAddress (   bleAddress)

PNRA condition: check the 6th byte - MSB should be 0; 2nd MSB should be 0.

◆ Ble_IsRandomStaticDeviceAddress

#define Ble_IsRandomStaticDeviceAddress (   bleAddress)

RSA condition: check the 6th byte - MSB should be 1; 2nd MSB should be 1.

◆ Ble_DeviceAddressesMatch

#define Ble_DeviceAddressesMatch (   bleAddress1,
  bleAddress2 
)

A macro used to compare two device addresses.

◆ Ble_CopyDeviceAddress

#define Ble_CopyDeviceAddress (   destinationAddress,
  sourceAddress 
)

A macro used to copy device addresses.

◆ gBleSig_PrimaryService_d

#define gBleSig_PrimaryService_d

Bluetooth SIG UUID constants for GATT declarations.

Primary Service declaration UUID

◆ gBleSig_SecondaryService_d

#define gBleSig_SecondaryService_d

Secondary Service declaration UUID.

◆ gBleSig_Include_d

#define gBleSig_Include_d

Include declaration UUID.

◆ gBleSig_Characteristic_d

#define gBleSig_Characteristic_d

Characteristic declaration UUID.

◆ gBleSig_CCCD_d

#define gBleSig_CCCD_d

Client Characteristic Configuration Descriptor declaration UUID.

◆ gBleSig_SCCD_d

#define gBleSig_SCCD_d

Server Characteristic Configuration Descriptor declaration UUID.

◆ gBleSig_CharPresFormatDescriptor_d

#define gBleSig_CharPresFormatDescriptor_d

Characteristic Presentation Format declaration UUID.

◆ gBleSig_ValidRangeDescriptor_d

#define gBleSig_ValidRangeDescriptor_d

Valid Range Descriptor declaration UUID.

◆ gBleSig_GenericAccessProfile_d

#define gBleSig_GenericAccessProfile_d

GAP Service UUID.

◆ gBleSig_GenericAttributeProfile_d

#define gBleSig_GenericAttributeProfile_d

GATT Service UUID.

◆ gBleSig_ImmediateAlertService_d

#define gBleSig_ImmediateAlertService_d

Immediate Alert Service UUID.

◆ gBleSig_LinkLossService_d

#define gBleSig_LinkLossService_d

Link Loss Service UUID.

◆ gBleSig_TxPowerService_d

#define gBleSig_TxPowerService_d

Tx Power Service UUID.

◆ gBleSig_CurrentTimeService_d

#define gBleSig_CurrentTimeService_d

Current Time Service UUID.

◆ gBleSig_ReferenceTimeUpdateService_d

#define gBleSig_ReferenceTimeUpdateService_d

Reference Time Update Service UUID.

◆ gBleSig_NextDSTChangeService_d

#define gBleSig_NextDSTChangeService_d

Next DST Change Service UUID.

◆ gBleSig_GlucoseService_d

#define gBleSig_GlucoseService_d

Glucose Service UUID.

◆ gBleSig_HealthThermometerService_d

#define gBleSig_HealthThermometerService_d

Health Thermometer Service UUID.

◆ gBleSig_DeviceInformationService_d

#define gBleSig_DeviceInformationService_d

Device Information Service UUID.

◆ gBleSig_HeartRateService_d

#define gBleSig_HeartRateService_d

Heart Rate Service UUID.

◆ gBleSig_BatteryService_d

#define gBleSig_BatteryService_d

Battery Service UUID.

◆ gBleSig_BloodPressureService_d

#define gBleSig_BloodPressureService_d

Blood Pressure Service UUID.

◆ gBleSig_AlertNotificationService_d

#define gBleSig_AlertNotificationService_d

Alert Notification Service UUID.

◆ gBleSig_HidService_d

#define gBleSig_HidService_d

HID Service UUID.

◆ gBleSig_RunningSpeedAndCadenceService_d

#define gBleSig_RunningSpeedAndCadenceService_d

Running Speed And Cadence Service UUID.

◆ gBleSig_CyclingSpeedAndCadenceService_d

#define gBleSig_CyclingSpeedAndCadenceService_d

Cycling Speed And Cadence Service UUID.

◆ gBleSig_CyclingPowerService_d

#define gBleSig_CyclingPowerService_d

Cycling Power Service UUID.

◆ gBleSig_IpsService_d

#define gBleSig_IpsService_d

Internet Protocol Support Service UUID.

◆ gBleSig_PulseOximeterService_d

#define gBleSig_PulseOximeterService_d

Pulse Oximeter Service UUID.

◆ gBleSig_HTTPProxyService_d

#define gBleSig_HTTPProxyService_d

HTTP Proxy Service UUID.

◆ gBleSig_WPTService_d

#define gBleSig_WPTService_d

Wireless Power Transfer Service UUID.

◆ gBleSig_GapDeviceName_d

#define gBleSig_GapDeviceName_d

GAP Device Name Characteristic UUID.

◆ gBleSig_GapAppearance_d

#define gBleSig_GapAppearance_d

GAP Appearance Characteristic UUID.

◆ gBleSig_GapPpcp_d

#define gBleSig_GapPpcp_d

GAP Peripheral Preferred Connection Parameters Characteristic UUID.

◆ gBleSig_GattServiceChanged_d

#define gBleSig_GattServiceChanged_d

GATT Service Changed Characteristic UUID.

◆ gBleSig_AlertLevel_d

#define gBleSig_AlertLevel_d

Alert Level Characteristic UUID.

◆ gBleSig_TxPower_d

#define gBleSig_TxPower_d

TX Power Characteristic UUID.

◆ gBleSig_LocalTimeInformation_d

#define gBleSig_LocalTimeInformation_d

Local Time Information Characteristic UUID.

◆ gBleSig_TimeWithDST_d

#define gBleSig_TimeWithDST_d

Time With DST Characteristic UUID.

◆ gBleSig_ReferenceTimeInformation_d

#define gBleSig_ReferenceTimeInformation_d

Reference Time Information Characteristic UUID.

◆ gBleSig_TimeUpdateControlPoint_d

#define gBleSig_TimeUpdateControlPoint_d

Time Update Control Point Characteristic UUID.

◆ gBleSig_TimeUpdateState_d

#define gBleSig_TimeUpdateState_d

Time Update State Characteristic UUID.

◆ gBleSig_GlucoseMeasurement_d

#define gBleSig_GlucoseMeasurement_d

Glucose Measurement Characteristic UUID.

◆ gBleSig_BatteryLevel_d

#define gBleSig_BatteryLevel_d

Battery Level Characteristic UUID.

◆ gBleSig_TemperatureMeasurement_d

#define gBleSig_TemperatureMeasurement_d

Temperature Measurement Characteristic UUID.

◆ gBleSig_TemperatureType_d

#define gBleSig_TemperatureType_d

Temperature Type Characteristic UUID.

◆ gBleSig_IntermediateTemperature_d

#define gBleSig_IntermediateTemperature_d

Intermediate Temperature Characteristic UUID.

◆ gBleSig_MeasurementInterval_d

#define gBleSig_MeasurementInterval_d

Measurement Interval Characteristic UUID.

◆ gBleSig_SystemId_d

#define gBleSig_SystemId_d

System ID Characteristic UUID.

◆ gBleSig_ModelNumberString_d

#define gBleSig_ModelNumberString_d

Model Number String Characteristic UUID.

◆ gBleSig_SerialNumberString_d

#define gBleSig_SerialNumberString_d

Serial Number String Characteristic UUID.

◆ gBleSig_FirmwareRevisionString_d

#define gBleSig_FirmwareRevisionString_d

Firmware Revision String Characteristic UUID.

◆ gBleSig_HardwareRevisionString_d

#define gBleSig_HardwareRevisionString_d

Hardware Revision String Characteristic UUID.

◆ gBleSig_SoftwareRevisionString_d

#define gBleSig_SoftwareRevisionString_d

Software Revision String Characteristic UUID.

◆ gBleSig_ManufacturerNameString_d

#define gBleSig_ManufacturerNameString_d

Manufacturer Name String Characteristic UUID.

◆ gBleSig_IeeeRcdl_d

#define gBleSig_IeeeRcdl_d

IEEE 11073-20601 Regulatory Certification Data List Characteristic UUID.

◆ gBleSig_CurrentTime_d

#define gBleSig_CurrentTime_d

Current Time Characteristic UUID.

◆ gBleSig_BootKeyboardInputReport_d

#define gBleSig_BootKeyboardInputReport_d

Boot Keyboard Input Report UUID.

◆ gBleSig_BootKeyboardOutputReport_d

#define gBleSig_BootKeyboardOutputReport_d

Boot Keyboard output Report UUID.

◆ gBleSig_BootMouseInputReport_d

#define gBleSig_BootMouseInputReport_d

Boot Mouse Input Report UUID.

◆ gBleSig_GlucoseMeasurementContext_d

#define gBleSig_GlucoseMeasurementContext_d

Glucose Measurement Context Characteristic UUID.

◆ gBleSig_BpMeasurement_d

#define gBleSig_BpMeasurement_d

Blood Pressure Measurement UUID.

◆ gBleSig_IntermediateCuffPressure_d

#define gBleSig_IntermediateCuffPressure_d

Intermediate Cuff Pressure UUID.

◆ gBleSig_HrMeasurement_d

#define gBleSig_HrMeasurement_d

Heart Rate Measurement UUID.

◆ gBleSig_BodySensorLocation_d

#define gBleSig_BodySensorLocation_d

Body Sensor Location UUID.

◆ gBleSig_HrControlPoint_d

#define gBleSig_HrControlPoint_d

Heart Rate Control Point UUID.

◆ gBleSig_AlertNotifControlPoint_d

#define gBleSig_AlertNotifControlPoint_d

Alert Notif Control Point UUID.

◆ gBleSig_UnreadAlertStatus_d

#define gBleSig_UnreadAlertStatus_d

Unread Alert Status UUID.

◆ gBleSig_NewAlert_d

#define gBleSig_NewAlert_d

New Alert UUID.

◆ gBleSig_SupportedNewAlertCategory_d

#define gBleSig_SupportedNewAlertCategory_d

Supported New Alert Category UUID.

◆ gBleSig_SupportedUnreadAlertCategory_d

#define gBleSig_SupportedUnreadAlertCategory_d

Supported Unread Alert Category UUID.

◆ gBleSig_BloodPressureFeature_d

#define gBleSig_BloodPressureFeature_d

Blood Pressure Feature UUID.

◆ gBleSig_HidInformation_d

#define gBleSig_HidInformation_d

HID Information UUID.

◆ gBleSig_HidCtrlPoint_d

#define gBleSig_HidCtrlPoint_d

HID Control Point UUID.

◆ gBleSig_Report_d

#define gBleSig_Report_d

Report UUID.

◆ gBleSig_ProtocolMode_d

#define gBleSig_ProtocolMode_d

Protocol Mode UUID.

◆ gBleSig_ScanIntervalWindow_d

#define gBleSig_ScanIntervalWindow_d

Scan Interval Window UUID.

◆ gBleSig_PnpId_d

#define gBleSig_PnpId_d

PnP Id UUID.

◆ gBleSig_GlucoseFeature_d

#define gBleSig_GlucoseFeature_d

Glucose Feature Characteristic UUID.

◆ gBleSig_RaCtrlPoint_d

#define gBleSig_RaCtrlPoint_d

Record Access Ctrl Point Characteristic UUID.

◆ gBleSig_RscMeasurement_d

#define gBleSig_RscMeasurement_d

RSC Measurement UUID.

◆ gBleSig_RscFeature_d

#define gBleSig_RscFeature_d

RSC Feature UUID.

◆ gBleSig_ScControlPoint_d

#define gBleSig_ScControlPoint_d

SC Control Point UUID.

◆ gBleSig_CscMeasurement_d

#define gBleSig_CscMeasurement_d

CSC Measurement Characteristic UUID.

◆ gBleSig_CscFeature_d

#define gBleSig_CscFeature_d

CSC Feature Characteristic UUID.

◆ gBleSig_SensorLocation_d

#define gBleSig_SensorLocation_d

Sensor Location Characteristic UUID.

◆ gBleSig_PlxSCMeasurement_d

#define gBleSig_PlxSCMeasurement_d

PLX Spot-Check Measurement Characteristic UUID.

◆ gBleSig_PlxContMeasurement_d

#define gBleSig_PlxContMeasurement_d

PLX Continuous Measurement Characteristic UUID.

◆ gBleSig_PulseOximeterFeature_d

#define gBleSig_PulseOximeterFeature_d

PLX Feature Characteristic UUID.

◆ gBleSig_CpMeasurement_d

#define gBleSig_CpMeasurement_d

CP Measurement Characteristic UUID.

◆ gBleSig_CpVector_d

#define gBleSig_CpVector_d

CP Measurement Vector UUID.

◆ gBleSig_CpFeature_d

#define gBleSig_CpFeature_d

CP Feature CharacteristicUUID.

◆ gBleSig_CpControlPoint_d

#define gBleSig_CpControlPoint_d

CP Control Point UUID.

◆ gBleSig_Temperature_d

#define gBleSig_Temperature_d

Temperature Characteristic UUID.

◆ gBleSig_CentralAddressResolution_d

#define gBleSig_CentralAddressResolution_d

Central Address Resolution Characteristic UUID.

◆ gBleSig_URI_d

#define gBleSig_URI_d

URI Characteristic UUID.

◆ gBleSig_HTTP_Headers_d

#define gBleSig_HTTP_Headers_d

HTTP Headers Characteristic UUID.

◆ gBleSig_HTTP_StatusCode_d

#define gBleSig_HTTP_StatusCode_d

HTTP Status Code Characteristic UUID.

◆ gBleSig_HTTP_EntityBody_d

#define gBleSig_HTTP_EntityBody_d

HTTP Entity Body Characteristic UUID.

◆ gBleSig_HTTP_ControlPoint_d

#define gBleSig_HTTP_ControlPoint_d

HTTP Control Point Characteristic UUID.

◆ gBleSig_HTTPS_Security_d

#define gBleSig_HTTPS_Security_d

HTTPS Security Characteristic UUID.

◆ BleSig_IsGroupingAttributeUuid16

#define BleSig_IsGroupingAttributeUuid16 (   uuid16)

Macro that returns whether or not an input 16-bit UUID is a grouping type.

◆ BleSig_IsServiceDeclarationUuid16

#define BleSig_IsServiceDeclarationUuid16 (   uuid16)

Macro that returns whether or not an input 16-bit UUID is a Service declaration.

◆ Uuid16

#define Uuid16 (   uuid)

Macro that declares a 16 bit UUID in a bleUuid_t union.

◆ Uuid32

#define Uuid32 (   uuid)

Macro that declares a 32 bit UUID in a bleUuid_t union.

◆ PACKED_STRUCT

#define PACKED_STRUCT

Type qualifier - does not affect local variables of integral type.

◆ PACKED_UNION

#define PACKED_UNION

Type qualifier - does not affect local variables of integral type.

◆ global

#define global

Type qualifier - does not affect local variables of integral type.

Storage class modifier - alignment of a variable. It does not affect the type of the function

Marks that this variable is in the interface.

◆ __noreturn

#define __noreturn

Marks a function that never returns.

◆ Utils_ExtractTwoByteValue

#define Utils_ExtractTwoByteValue (   buf)

Returns a uint16_t from a buffer, little-endian.

◆ Utils_ExtractThreeByteValue

#define Utils_ExtractThreeByteValue (   buf)

Returns a 3-byte value from a buffer, little-endian.

◆ Utils_ExtractFourByteValue

#define Utils_ExtractFourByteValue (   buf)

Returns a uint32_t from a buffer, little-endian.

◆ Utils_BeExtractTwoByteValue

#define Utils_BeExtractTwoByteValue (   buf)

Returns a uint16_t from a buffer, big-endian.

◆ Utils_BeExtractThreeByteValue

#define Utils_BeExtractThreeByteValue (   buf)

Returns a 3-byte value from a buffer, big-endian.

◆ Utils_BeExtractFourByteValue

#define Utils_BeExtractFourByteValue (   buf)

Returns a uint32_t from a buffer, big-endian.

◆ Utils_PackTwoByteValue

#define Utils_PackTwoByteValue (   value,
  buf 
)

Writes a uint16_t into a buffer, little-endian.

◆ Utils_PackThreeByteValue

#define Utils_PackThreeByteValue (   value,
  buf 
)

Writes a 3-byte value into a buffer, little-endian.

◆ Utils_PackFourByteValue

#define Utils_PackFourByteValue (   value,
  buf 
)

Writes a uint32_t into a buffer, little-endian.

◆ Utils_BePackTwoByteValue

#define Utils_BePackTwoByteValue (   value,
  buf 
)

Writes a uint16_t into a buffer, big-endian.

◆ Utils_BePackThreeByteValue

#define Utils_BePackThreeByteValue (   value,
  buf 
)

Writes a 3-byte value into a buffer, big-endian.

◆ Utils_BePackFourByteValue

#define Utils_BePackFourByteValue (   value,
  buf 
)

Writes a uint32_t into a buffer, big-endian.

◆ Utils_Copy8

#define Utils_Copy8 (   ptr,
  val8 
)

Writes a uint8_t into a buffer, little-endian, and increments the pointer.

◆ Utils_Copy16

#define Utils_Copy16 (   ptr,
  val16 
)

Writes a uint16_t into a buffer, little-endian, and increments the pointer.

◆ Utils_Copy32

#define Utils_Copy32 (   ptr,
  val32 
)

Writes a uint32_t into a buffer, little-endian, and increments the pointer.

◆ Utils_Copy64

#define Utils_Copy64 (   ptr,
  val64 
)

Writes a uint64_t into a buffer, little-endian, and increments the pointer.

◆ Utils_RevertByteArray

#define Utils_RevertByteArray (   array,
  size 
)

Reverts the order of bytes in an array - useful for changing the endianness.

Typedef Documentation

◆ deviceId_t

typedef uint8_t deviceId_t

Unique identifier type for a connected device.

◆ bleDeviceAddress_t

typedef uint8_t bleDeviceAddress_t[gcBleDeviceAddressSize_c]

Bluetooth Device Address - array of 6 bytes.

◆ gapGenericCallback_t

typedef void(* gapGenericCallback_t) (gapGenericEvent_t *pGenericEvent)

Generic Callback prototype.

◆ hciHostToControllerInterface_t

typedef bleResult_t(* hciHostToControllerInterface_t) (hciPacketType_t packetType, void *pPacket, uint16_t packetSize)

Host-to-Controller API prototype.

Enumeration Type Documentation

◆ bleResult_t

BLE result type - the return value of BLE API functions.

Enumerator
gBleStatusBase_c 

General status base.

gBleSuccess_c 

Function executed successfully.

gBleInvalidParameter_c 

Parameter has an invalid value or is outside the accepted range.

gBleOverflow_c 

An internal limit is reached.

gBleUnavailable_c 

A requested parameter is not available.

gBleFeatureNotSupported_c 

The requested feature is not supported by this stack version.

gBleOutOfMemory_c 

An internal memory allocation failed.

gBleAlreadyInitialized_c 

Ble_HostInitialize function is incorrectly called a second time.

gBleOsError_c 

An error occurred at the OS level.

gBleUnexpectedError_c 

A "should never get here"-type error occurred.

gBleInvalidState_c 

The requested API cannot be called in the current state.

gSmCommandNotSupported_c 

The Security Manager (SM) does not have the required features or version to support this command.

gSmUnexpectedCommand_c 

This command is not or cannot be handled in the current context of the SM.

gSmInvalidCommandCode_c 

The provided SM command code is invalid.

gSmInvalidCommandLength_c 

The provided command length is not valid for the SM command code.

gSmInvalidCommandParameter_c 

One of the parameters of the SM command is not valid.

gSmInvalidDeviceId_c 

The provided Device ID is invalid.

gSmInvalidInternalOperation_c 

There is a problem with the internal state of the SM.

This should not happen during normal operation. A memory corruption or invalid operation may have occurred.

gSmInvalidConnectionHandle_c 

The target device does not have a valid connection handle.

It might be disconnected.

gSmInproperKeyDistributionField_c 

The Responder upper layer has set to "1" one or more flags in the Initiator or Responder Key Distribution Fields from the Pairing Request which were set to "0" by the peer device.

gSmUnexpectedKeyType_c 

The Responder upper layer has set a key type field in the Passkey Request Reply command, which is different than the field negotiated with the peer device.

gSmUnexpectedPairingTerminationReason_c 

The upper layer tried to cancel the pairing procedure with an unexpected pairing failure reason for the current phase of the pairing procedure.

gSmUnexpectedKeyset_c 

The Responder upper layer is trying to distribute keys which were not requested during the pairing procedure or the peer device has sent a Key Distribution packet which was not expected.

gSmSmpTimeoutOccurred_c 

An SMP timeout has occurred for the peer device.

No more operations are accepted until a new physical link is established.

gSmUnknownSmpPacketType_c 

An SMP packet with an unknown (or invalid) type has been received.

gSmInvalidSmpPacketLength_c 

An SMP packet with an invalid length for the SMP packet type has been received.

gSmInvalidSmpPacketParameter_c 

An SMP packet with an invalid parameter has been received.

gSmReceivedUnexpectedSmpPacket_c 

An unexpected SMP packet was received.

gSmReceivedSmpPacketFromUnknownDevice_c 

An SMP packet is received but the source Device ID cannot be identified.

gSmReceivedUnexpectedHciEvent_c 

An HCI event has been received which cannot be handled by the SM or cannot be handled in the current context.

gSmReceivedHciEventFromUnknownDevice_c 

An HCI event is received but the source Device ID cannot be identified.

gSmInvalidHciEventParameter_c 

An HCI Event is received with an invalid parameter.

gSmLlConnectionEncryptionInProgress_c 

A Link Layer Connection encryption was requested by the upper layer or attempted internally by the SM, but it could no be completed because an encryption was already in progress.

This situation could lead to an SMP Pairing Failure when the SM cannot encrypt the link with the STK. An unspecified pairing failure reason is used in this instance.

gSmLlConnectionEncryptionFailure_c 

The Link Layer connection encryption procedure has failed.

gSmInsufficientResources_c 

The SM could not allocate resources to perform operations (memory or timers).

gSmOobDataAddressMismatch_c 

The address of the peer contained in the remote OOB data sent to the stack does not match the address used by the remote device for the connection/pairing procedure.

gSmSmpPacketReceivedAfterTimeoutOccurred_c 

A SMP packet has been received from a peer device for which a pairing priocedure has timed out.

No further operations are permitted until a new connection sisestablished.

gSmReceivedTimerEventForUnknownDevice_c 

An Timer event is received but the source Device ID cannot be identified.

gSmUnattainableLocalDeviceSecRequirements_c 

The provided pairing parameters cannot lead to a Pairing Procedure which satisfies the minimum security properties for the local device.

gSmUnattainableLocalDeviceMinKeySize_c 

The provided pairing parameters cannot lead to a Pairing Procedure which satisfies the minimum encryption key size for the local device.

gSmUnattainableSlaveSecReqRequirements_c 

The provided pairing parameters cannot lead to a Pairing Procedure which satisfies the minimum security properties requested by the local device via a SMP Slave Security Request.

gSmTbResolvableAddressDoesNotMatchIrk_c 

The provided Resolvable Private Address and IRK do not match.

gSmTbInvalidDataSignature_c 

The provided data signature does not match the computed data signature.

gAttStatusBase_c 

ATT status base.

gAttSuccess_c 

Alias.

gGattStatusBase_c 

GATT status base.

gGattSuccess_c 

Alias.

gGattAnotherProcedureInProgress_c 

Trying to start a GATT procedure while one is already in progress.

gGattLongAttributePacketsCorrupted_c 

Writing a Long Characteristic failed because Prepare Write Request packets were corrupted.

gGattMultipleAttributesOverflow_c 

Too many Characteristics are given for a Read Multiple Characteristic procedure.

gGattUnexpectedReadMultipleResponseLength_c 

Read Multiple Characteristic procedure failed because unexpectedly long data was read.

gGattInvalidValueLength_c 

An invalid value length was supplied to a Characteristic Read/Write operation.

gGattServerTimeout_c 

No response was received from the Server.

gGattIndicationAlreadyInProgress_c 

A Server Indication is already waiting for Client Confirmation.

gGattClientConfirmationTimeout_c 

No Confirmation was received from the Client after a Server Indication.

gGapStatusBase_c 

GAP status base.

gGapSuccess_c 

Alias.

gGapAdvDataTooLong_c 

Trying to set too many bytes in the advertising payload.

gGapScanRspDataTooLong_c 

Trying to set too many bytes in the scan response payload.

gGapDeviceNotBonded_c 

Trying to execute an API that is only available for bonded devices.

gDevDbStatusBase_c 

DeviceDatabase status base.

gDevDbSuccess_c 

Alias.

gDevDbCccdLimitReached_c 

CCCD value cannot be saved because Server's CCCD list is full for the current client.

gDevDbCccdNotFound_c 

CCCD with the given handle is not found in the Server's list for the current client.

gGattDbStatusBase_c 

GATT Database status base.

gGattDbSuccess_c 

Alias.

gGattDbInvalidHandle_c 

An invalid handle was passed as parameter.

gGattDbCharacteristicNotFound_c 

Characteristic was not found.

gGattDbCccdNotFound_c 

CCCD was not found.

gGattDbServiceNotFound_c 

Service Declaration was not found.

gGattDbDescriptorNotFound_c 

Characteristic Descriptor was not found.

◆ bleAddressType_t

Bluetooth Device Address Types.

Enumerator
gBleAddrTypePublic_c 

Public Device Address - fixed into the Controller by the manufacturer.

gBleAddrTypeRandom_c 

Random Device Address - set by the Host into the Controller for privacy reasons.

◆ bleUuidType_t

Bluetooth UUID type - values chosen to correspond with the ATT UUID format.

Enumerator
gBleUuidType16_c 

16-bit standard UUID

gBleUuidType128_c 

128-bit long/custom UUID

gBleUuidType32_c 

32-bit UUID - not available as ATT UUID format

◆ bleAdvertisingType_t

Advertising Type.

Enumerator
gAdvConnectableUndirected_c 

Answers to both connect and scan requests.

gAdvDirectedHighDutyCycle_c 

Answers only to connect requests; smaller advertising interval for quicker connection.

gAdvScannable_c 

Answers only to scan requests.

gAdvNonConnectable_c 

Does not answer to connect nor scan requests.

gAdvDirectedLowDutyCycle_c 

Answers only to connect requests; larger advertising interval.

◆ bleAdvertisingFilterPolicy_t

Enumerator
gBleAdvFilterAllowScanFromAnyAllowConnFromAny_c 

White List is ignored.

gBleAdvFilterAllowScanFromWLAllowConnFromAny_c 

White List is used only for Scan Requests.

gBleAdvFilterAllowScanFromAnyAllowConnFromWL_c 

White List is used only for Connection Requests.

gBleAdvFilterAllowScanFromWLAllowConnFromWL_c 

White List is used for both Scan and Connection Requests.

◆ bleLlConnectionRole_t

Enumerator
gBleLlConnectionMaster_c 

Link Layer Master Role.

gBleLlConnectionSlave_c 

Link Layer Slave Role.

◆ hciPacketType_t

Enumerator
gHciCommandPacket_c 

HCI Command.

gHciDataPacket_c 

L2CAP Data Packet.

gHciSynchronousDataPacket_c 

Not used in BLE.

gHciEventPacket_c 

HCI Event.

◆ bleScanType_t

Scanning type enumeration.

Enumerator
gScanTypePassive_c 

Passive Scanning - advertising packets are immediately reported to the Host.

gScanTypeActive_c 

Active Scanning - the scanner sends scan requests to the advertiser and reports to the Host after the scan response is received.

◆ bleScanningFilterPolicy_t

Scanning filter policy enumeration.

Enumerator
gScanAll_c 

Scans all advertising packets.

gScanWithWhiteList_c 

Scans advertising packets using the White List.

◆ bleInitiatorFilterPolicy_t

Initiator filter policy enumeration.

Enumerator
gUseDeviceAddress_c 

Initiates a connection with a specific device identified by its address.

gUseWhiteList_c 

Initiates connections with all the devices in the White List at the same time.

◆ bleTransmitPowerLevelType_t

Enumerator
gReadCurrentTxPowerLevel_c 

Current TX Power level.

gReadMaximumTxPowerLevel_c 

Maximum recorded TX Power level.

◆ bleTransmitPowerChannelType_t

Enumerator
gTxPowerAdvChannel_c 

Advertising channel type when setting Tx Power.

gTxPowerConnChannel_c 

Connection channel type when setting Tx Power.

◆ gapGenericEventType_t

Generic Event Type.

Enumerator
gInitializationComplete_c 

Initial setup started by Ble_HostInitialize is complete.

gInternalError_c 

An internal error occurred.

gAdvertisingSetupFailed_c 

Error during advertising setup.

gAdvertisingParametersSetupComplete_c 

Advertising parameters have been successfully set.

Response to Gap_SetAdvertisingParameters.

gAdvertisingDataSetupComplete_c 

Advertising and/or scan response data has been successfully set.

Response to Gap_SetAdvertisingData.

gWhiteListSizeRead_c 

Contains the White List size.

Response to Gap_ReadWhiteListSize.

gDeviceAddedToWhiteList_c 

Device has been added to White List.

Response to Gap_AddDeviceToWhiteList.

gDeviceRemovedFromWhiteList_c 

Device has been removed from the White List.

Response to Gap_RemoveDeviceFromWhiteList.

gWhiteListCleared_c 

White List has been cleared.

Response to Gap_ClearWhiteList.

gRandomAddressReady_c 

A random device address has been created.

Response to Gap_CreateRandomDeviceAddress.

gCreateConnectionCanceled_c 

Connection initiation was successfully cancelled.

Response to Gap_CancelInitiatingConnection.

gPublicAddressRead_c 

Contains the public device address.

Response to Gap_ReadPublicDeviceAddress.

gAdvTxPowerLevelRead_c 

Contains the TX power on the advertising channel.

Response to Gap_ReadAdvertisingTxPowerLevel.

gPrivateResolvableAddressVerified_c 

Contains the result of PRA verification.

Response to Gap_VerifyPrivateResolvableAddress.

gRandomAddressSet_c 

Random address has been set into the Controller.

Response to Gap_SetRandomAddress.

gControllerResetComplete_c 

Controller has been successfully reset.

gLeScPublicKeyRegenerated_c 

The private/public key pair used for LE Secure Connections pairing has been regenerated.

gLeScLocalOobData_c 

Local OOB data used for LE Secure Connections pairing.

gControllerPrivacyStateChanged_c 

Controller Privacy was enabled or disabled.

gControllerTestEvent_c 

Controller Test was started or stopped.

gTxPowerLevelSetComplete_c 

Controller Tx Power Level set complete or invalid.

◆ gapInternalErrorSource_t

Internal Error Source - the command that triggered the error.

Function Documentation

◆ Ble_HostInitialize()

bleResult_t Ble_HostInitialize ( gapGenericCallback_t  genericCallback,
hciHostToControllerInterface_t  hostToControllerInterface 
)


Performs master initialization of the BLE Host stack.

Parameters
[in]genericCallbackCallback used to propagate GAP generic events to the application.
[in]hostToControllerInterfaceLE Controller uplink interface function pointer
Returns
gBleSuccess_c or error.
Remarks
Application must wait for the gInitializationComplete_c generic event.

◆ Ble_HciRecv()

bleResult_t Ble_HciRecv ( hciPacketType_t  packetType,
void *  pPacket,
uint16_t  packetSize 
)


This is the BLE Host downlink interface function.

Parameters
[in]packetTypeThe type of the packet sent by the LE Controller
[in]pPacketPointer to the packet sent by the LE Controller
[in]packetSizeNumber of bytes sent by the LE Controller
Returns
gBleSuccess_c or gBleOutOfMemory_c
Remarks
This function must be registered as a callback by the LE Controller and called to send HCI packets (events and LE-U data) to the BLE Host.

◆ Host_TaskHandler()

void Host_TaskHandler ( void *  args)


Contains the Host Task logic.

Remarks
This function must be called exclusively by the Host Task code from the application.

Variable Documentation

◆ gApp2Host_TaskQueue

msgQueue_t gApp2Host_TaskQueue

App to Host message queue for the Host Task.

◆ gHci2Host_TaskQueue

msgQueue_t gHci2Host_TaskQueue

HCI to Host message queue for the Host Task.

◆ gHost_TaskEvent

osaEventId_t gHost_TaskEvent

Event for the Host Task Queue.