| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307 |
- /*****************************************************************************
- * @file ble_gatt_aci.h
- * @brief STM32WB BLE API (gatt_aci)
- * Auto-generated file: do not edit!
- *****************************************************************************
- * @attention
- *
- * Copyright (c) 2018-2024 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- *****************************************************************************
- */
- #ifndef BLE_GATT_ACI_H__
- #define BLE_GATT_ACI_H__
- //#include "ble_types.h"
- #include <ble/core/auto/ble_types.h>
- /**
- * @brief ACI_GATT_INIT
- * Initializes the GATT layer for server and client roles. It also adds the
- * GATT service with Service Changed Characteristic.
- * Until this command is issued the GATT channel does not process any commands
- * even if the connection is opened. This command has to be given before using
- * any of the GAP features.
- *
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_init(void);
- /**
- * @brief ACI_GATT_ADD_SERVICE
- * Add a service to GATT Server. When a service is created in the server, the
- * host needs to reserve the handle ranges for this service using
- * Max_Attribute_Records parameter. This parameter specifies the maximum number
- * of attribute records that can be added to this service (including the
- * service attribute, include attribute, characteristic attribute,
- * characteristic value attribute and characteristic descriptor attribute).
- * Handle of the created service is returned in command complete event. Service
- * declaration is taken from the service pool.
- * The attributes for characteristics and descriptors are allocated from the
- * attribute pool.
- *
- * @param Service_UUID_Type UUID type: 0x01 = 16 bits UUID while 0x02 = 128
- * bits UUID
- * @param Service_UUID See @ref Service_UUID_t
- * @param Service_Type Service type.
- * Values:
- * - 0x01: Primary Service
- * - 0x02: Secondary Service
- * @param Max_Attribute_Records Maximum number of attribute records that can be
- * added to this service
- * @param[out] Service_Handle Handle of the Service.
- * When this service is added, a handle is allocated by the server for
- * this service.
- * Server also allocates a range of handles for this service from
- * serviceHandle to <serviceHandle + max_attr_records - 1>
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_add_service(
- uint8_t Service_UUID_Type,
- const Service_UUID_t* Service_UUID,
- uint8_t Service_Type,
- uint8_t Max_Attribute_Records,
- uint16_t* Service_Handle);
- /**
- * @brief ACI_GATT_INCLUDE_SERVICE
- * Include a service given by Include_Start_Handle and Include_End_Handle to
- * another service given by Service_Handle. Attribute server creates an INCLUDE
- * definition attribute and return the handle of this attribute in
- * Included_handle.
- *
- * @param Service_Handle Handle of the Service to which another service has to
- * be included.
- * @param Include_Start_Handle Start Handle of the Service which has to be
- * included in service
- * @param Include_End_Handle End Handle of the Service which has to be included
- * in service
- * @param Include_UUID_Type UUID type: 0x01 = 16 bits UUID while 0x02 = 128
- * bits UUID
- * @param Include_UUID See @ref Include_UUID_t
- * @param[out] Include_Handle Handle of the include declaration
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_include_service(
- uint16_t Service_Handle,
- uint16_t Include_Start_Handle,
- uint16_t Include_End_Handle,
- uint8_t Include_UUID_Type,
- const Include_UUID_t* Include_UUID,
- uint16_t* Include_Handle);
- /**
- * @brief ACI_GATT_ADD_CHAR
- * Adds a characteristic to a service.
- * The command returns the handle of the declaration attribute. The attribute
- * that holds the Characteristic Value is always allocated at the next handle
- * (Char_Handle + 1). The Characteristic Value is immediately followed, in
- * order, by:
- * - the Server Characteristic Configuration descriptor if CHAR_PROP_BROADCAST
- * is selected;
- * - the Client Characteristic Configuration descriptor if CHAR_PROP_NOTIFY or
- * CHAR_PROP_INDICATE properties is selected;
- * - the Characteristic Extended Properties descriptor if CHAR_PROP_EXT is
- * selected.
- * For instance, if CHAR_PROP_NOTIFY is selected but not CHAR_PROP_BROADCAST
- * nor CHAR_PROP_EXT, then the Client Characteristic Configuration attribute
- * handle is Char_Handle + 2.
- * Additional descriptors can be added to the characteristic by calling the
- * ACI_GATT_ADD_CHAR_DESC command immediately after calling this command.
- *
- * @param Service_Handle Handle of the Service to which the characteristic will
- * be added
- * @param Char_UUID_Type UUID type: 0x01 = 16 bits UUID while 0x02 = 128 bits
- * UUID
- * @param Char_UUID See @ref Char_UUID_t
- * @param Char_Value_Length Maximum length of the characteristic value.
- * @param Char_Properties Characteristic Properties (Volume 3, Part G, section
- * 3.3.1.1 of Bluetooth Core Specification)
- * Flags:
- * - 0x00: CHAR_PROP_NONE
- * - 0x01: CHAR_PROP_BROADCAST (Broadcast)
- * - 0x02: CHAR_PROP_READ (Read)
- * - 0x04: CHAR_PROP_WRITE_WITHOUT_RESP (Write w/o resp)
- * - 0x08: CHAR_PROP_WRITE (Write)
- * - 0x10: CHAR_PROP_NOTIFY (Notify)
- * - 0x20: CHAR_PROP_INDICATE (Indicate)
- * - 0x40: CHAR_PROP_SIGNED_WRITE (Authenticated Signed Writes)
- * - 0x80: CHAR_PROP_EXT (Extended Properties)
- * @param Security_Permissions Security permission flags.
- * Flags:
- * - 0x00: None
- * - 0x01: AUTHEN_READ (Need authentication to read)
- * - 0x02: AUTHOR_READ (Need authorization to read)
- * - 0x04: ENCRY_READ (Need encryption to read)
- * - 0x08: AUTHEN_WRITE (need authentication to write)
- * - 0x10: AUTHOR_WRITE (need authorization to write)
- * - 0x20: ENCRY_WRITE (need encryption to write)
- * @param GATT_Evt_Mask GATT event mask.
- * Flags:
- * - 0x00: GATT_DONT_NOTIFY_EVENTS
- * - 0x01: GATT_NOTIFY_ATTRIBUTE_WRITE
- * - 0x02: GATT_NOTIFY_WRITE_REQ_AND_WAIT_FOR_APPL_RESP
- * - 0x04: GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP
- * - 0x08: GATT_NOTIFY_NOTIFICATION_COMPLETION
- * @param Enc_Key_Size Minimum encryption key size required to read the
- * characteristic.
- * Values:
- * - 0x07 ... 0x10
- * @param Is_Variable Specify if the characteristic value has a fixed length or
- * a variable length.
- * Values:
- * - 0x00: Fixed length
- * - 0x01: Variable length
- * @param[out] Char_Handle Handle of the characteristic that has been added (it
- * is the handle of the characteristic declaration).
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_add_char(
- uint16_t Service_Handle,
- uint8_t Char_UUID_Type,
- const Char_UUID_t* Char_UUID,
- uint16_t Char_Value_Length,
- uint8_t Char_Properties,
- uint8_t Security_Permissions,
- uint8_t GATT_Evt_Mask,
- uint8_t Enc_Key_Size,
- uint8_t Is_Variable,
- uint16_t* Char_Handle);
- /**
- * @brief ACI_GATT_ADD_CHAR_DESC
- * Adds a characteristic descriptor to a service.
- * Note that this command allocates the new handle for the descriptor after the
- * currently allocated handles. It is therefore advisable to call this command
- * following the call of the command ACI_GATT_ADD_CHAR which created the
- * characteristic containing this descriptor.
- *
- * @param Service_Handle Handle of service to which the characteristic belongs
- * @param Char_Handle Handle of the characteristic to which description has to
- * be added
- * @param Char_Desc_Uuid_Type UUID type: 0x01 = 16 bits UUID while 0x02 = 128
- * bits UUID
- * @param Char_Desc_Uuid See @ref Char_Desc_Uuid_t
- * @param Char_Desc_Value_Max_Len The maximum length of the descriptor value
- * @param Char_Desc_Value_Length Current Length of the characteristic
- * descriptor value
- * @param Char_Desc_Value Value of the characteristic description
- * @param Security_Permissions Security permission flags.
- * Flags:
- * - 0x00: None
- * - 0x01: AUTHEN_READ (Need authentication to read)
- * - 0x02: AUTHOR_READ (Need authorization to read)
- * - 0x04: ENCRY_READ (Need encryption to read)
- * - 0x08: AUTHEN_WRITE (need authentication to write)
- * - 0x10: AUTHOR_WRITE (need authorization to write)
- * - 0x20: ENCRY_WRITE (need encryption to write)
- * @param Access_Permissions Access permission
- * Flags:
- * - 0x00: None
- * - 0x01: READ
- * - 0x02: WRITE
- * - 0x04: WRITE_WO_RESP
- * - 0x08: SIGNED_WRITE
- * @param GATT_Evt_Mask GATT event mask.
- * Flags:
- * - 0x00: GATT_DONT_NOTIFY_EVENTS
- * - 0x01: GATT_NOTIFY_ATTRIBUTE_WRITE
- * - 0x02: GATT_NOTIFY_WRITE_REQ_AND_WAIT_FOR_APPL_RESP
- * - 0x04: GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP
- * @param Enc_Key_Size Minimum encryption key size required to read the
- * characteristic.
- * Values:
- * - 0x07 ... 0x10
- * @param Is_Variable Specify if the characteristic value has a fixed length or
- * a variable length.
- * Values:
- * - 0x00: Fixed length
- * - 0x01: Variable length
- * @param[out] Char_Desc_Handle Handle of the characteristic descriptor
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_add_char_desc(
- uint16_t Service_Handle,
- uint16_t Char_Handle,
- uint8_t Char_Desc_Uuid_Type,
- const Char_Desc_Uuid_t* Char_Desc_Uuid,
- uint8_t Char_Desc_Value_Max_Len,
- uint8_t Char_Desc_Value_Length,
- const uint8_t* Char_Desc_Value,
- uint8_t Security_Permissions,
- uint8_t Access_Permissions,
- uint8_t GATT_Evt_Mask,
- uint8_t Enc_Key_Size,
- uint8_t Is_Variable,
- uint16_t* Char_Desc_Handle);
- /**
- * @brief ACI_GATT_UPDATE_CHAR_VALUE
- * Updates a characteristic value in a service. If notifications (or
- * indications) are enabled on that characteristic, a notification (or
- * indication) is sent to any client that has registered for notifications (or
- * indications) via the Client Characteristic Configuration.
- * Notes:
- * - The command is disallowed if it would cause the generation of an
- * indication on a bearer which is still awaiting confirmation of a previous
- * indication.
- * - The command does not execute and returns BLE_STATUS_BUSY if notifications
- * from a previous call are not completed. The application can enable and wait
- * for the event ACI_GATT_NOTIFICATION_COMPLETE_EVENT to avoid this case.
- * - The command does not execute and returns BLE_STATUS_INSUFFICIENT_RESOURCES
- * if there is no more room in the TX pool to allocate notification (or
- * indication) packets. This happens if notifications (or indications) are
- * enabled and the application calls this command at an higher rate than what
- * is allowed by the link. Throughput on BLE link depends on connection
- * interval and connection length parameters (decided by the Central, see
- * ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_REQ for more information on how to
- * suggest new connection parameters from a Peripheral). The application can
- * wait for the event ACI_GATT_TX_POOL_AVAILABLE_EVENT before retrying a call
- * to this command. It can also retry the call until it does not return
- * BLE_STATUS_INSUFFICIENT_RESOURCES anymore.
- * - When calling this command, the characteristic value is updated only if the
- * command returns BLE_STATUS_SUCCESS or BLE_STATUS_SEC_PERMISSION_ERROR. The
- * security permission error means that at least one client has not been
- * notified due to security requirements not met.
- *
- * @param Service_Handle Handle of service to which the characteristic belongs
- * @param Char_Handle Handle of the characteristic declaration
- * @param Val_Offset The offset from which the attribute value has to be
- * updated.
- * If this is set to 0 and the attribute value is of variable length,
- * then the length of the attribute will be set to the
- * Char_Value_Length.
- * If the Val_Offset is set to a value greater than 0, then the length
- * of the attribute will be set to the maximum length as specified for
- * the attribute while adding the characteristic.
- * @param Char_Value_Length Length of the Char_Value parameter in octets.
- * On STM32WB, this value must not exceed (BLE_CMD_MAX_PARAM_LEN - 6)
- * i.e. 249 for BLE_CMD_MAX_PARAM_LEN default value.
- * @param Char_Value Characteristic value
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_update_char_value(
- uint16_t Service_Handle,
- uint16_t Char_Handle,
- uint8_t Val_Offset,
- uint8_t Char_Value_Length,
- const uint8_t* Char_Value);
- /**
- * @brief ACI_GATT_DEL_CHAR
- * Deletes the specified characteristic from the service.
- *
- * @param Serv_Handle Handle of service to which the characteristic belongs
- * @param Char_Handle Handle of the characteristic which has to be deleted
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_del_char(uint16_t Serv_Handle, uint16_t Char_Handle);
- /**
- * @brief ACI_GATT_DEL_SERVICE
- * Deletes the specified service from the GATT server database.
- *
- * @param Serv_Handle Handle of the service to be deleted
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_del_service(uint16_t Serv_Handle);
- /**
- * @brief ACI_GATT_DEL_INCLUDE_SERVICE
- * Deletes the Include definition from the service.
- *
- * @param Serv_Handle Handle of the service to which the include service
- * belongs
- * @param Include_Handle Handle of the included service which has to be deleted
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_del_include_service(uint16_t Serv_Handle, uint16_t Include_Handle);
- /**
- * @brief ACI_GATT_SET_EVENT_MASK
- * Masks events from the GATT. If the bit in the GATT_Evt_Mask is set to a one,
- * then the event associated with that bit will be enabled.
- * The default configuration is all the events masked.
- *
- * @param GATT_Evt_Mask GATT/ATT event mask.
- * Values:
- * - 0x00000001: ACI_GATT_ATTRIBUTE_MODIFIED_EVENT
- * - 0x00000002: ACI_GATT_PROC_TIMEOUT_EVENT
- * - 0x00000004: ACI_ATT_EXCHANGE_MTU_RESP_EVENT
- * - 0x00000008: ACI_ATT_FIND_INFO_RESP_EVENT
- * - 0x00000010: ACI_ATT_FIND_BY_TYPE_VALUE_RESP_EVENT
- * - 0x00000020: ACI_ATT_READ_BY_TYPE_RESP_EVENT
- * - 0x00000040: ACI_ATT_READ_RESP_EVENT
- * - 0x00000080: ACI_ATT_READ_BLOB_RESP_EVENT
- * - 0x00000100: ACI_ATT_READ_MULTIPLE_RESP_EVENT
- * - 0x00000200: ACI_ATT_READ_BY_GROUP_TYPE_RESP_EVENT
- * - 0x00000800: ACI_ATT_PREPARE_WRITE_RESP_EVENT
- * - 0x00001000: ACI_ATT_EXEC_WRITE_RESP_EVENT
- * - 0x00002000: ACI_GATT_INDICATION_EVENT
- * - 0x00004000: ACI_GATT_NOTIFICATION_EVENT
- * - 0x00008000: ACI_GATT_ERROR_RESP_EVENT
- * - 0x00010000: ACI_GATT_PROC_COMPLETE_EVENT
- * - 0x00020000: ACI_GATT_DISC_READ_CHAR_BY_UUID_RESP_EVENT
- * - 0x00040000: ACI_GATT_TX_POOL_AVAILABLE_EVENT
- * - 0x00100000: ACI_GATT_READ_EXT_EVENT
- * - 0x00200000: ACI_GATT_INDICATION_EXT_EVENT
- * - 0x00400000: ACI_GATT_NOTIFICATION_EXT_EVENT
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_set_event_mask(uint32_t GATT_Evt_Mask);
- /**
- * @brief ACI_GATT_EXCHANGE_CONFIG
- * Performs an ATT MTU exchange procedure.
- * When the ATT MTU exchange procedure is completed, a
- * ACI_ATT_EXCHANGE_MTU_RESP_EVENT event is generated. A
- * ACI_GATT_PROC_COMPLETE_EVENT event is also generated to indicate the end of
- * the procedure.
- *
- * @param Connection_Handle Connection handle for which the command applies.
- * Values:
- * - 0x0000 ... 0x0EFF
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_exchange_config(uint16_t Connection_Handle);
- /**
- * @brief ACI_ATT_FIND_INFO_REQ
- * Sends a Find Information Request.
- * This command is used to obtain the mapping of attribute handles with their
- * associated types. The responses of the procedure are given through the
- * ACI_ATT_FIND_INFO_RESP_EVENT event. The end of the procedure is indicated by
- * a ACI_GATT_PROC_COMPLETE_EVENT event.
- *
- * @param Connection_Handle Connection handle for which the command applies.
- * Values:
- * - 0x0000 ... 0x0EFF
- * @param Start_Handle First requested handle number
- * @param End_Handle Last requested handle number
- * @return Value indicating success or error code.
- */
- tBleStatus
- aci_att_find_info_req(uint16_t Connection_Handle, uint16_t Start_Handle, uint16_t End_Handle);
- /**
- * @brief ACI_ATT_FIND_BY_TYPE_VALUE_REQ
- * Sends a Find By Type Value Request
- * The Find By Type Value Request is used to obtain the handles of attributes
- * that have a given 16-bit UUID attribute type and a given attribute value.
- * The responses of the procedure are given through the
- * ACI_ATT_FIND_BY_TYPE_VALUE_RESP_EVENT event.
- * The end of the procedure is indicated by a ACI_GATT_PROC_COMPLETE_EVENT
- * event.
- *
- * @param Connection_Handle Connection handle for which the command applies.
- * Values:
- * - 0x0000 ... 0x0EFF
- * @param Start_Handle First requested handle number
- * @param End_Handle Last requested handle number
- * @param UUID 2 octet UUID to find (little-endian)
- * @param Attribute_Val_Length Length of attribute value (maximum value is
- * ATT_MTU - 7).
- * @param Attribute_Val Attribute value to find
- * @return Value indicating success or error code.
- */
- tBleStatus aci_att_find_by_type_value_req(
- uint16_t Connection_Handle,
- uint16_t Start_Handle,
- uint16_t End_Handle,
- uint16_t UUID,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_ATT_READ_BY_TYPE_REQ
- * Sends a Read By Type Request.
- * The Read By Type Request is used to obtain the values of attributes where
- * the attribute type is known but the handle is not known.
- * The responses are given through the ACI_ATT_READ_BY_TYPE_RESP_EVENT event.
- *
- * @param Connection_Handle Connection handle for which the command applies.
- * Values:
- * - 0x0000 ... 0x0EFF
- * @param Start_Handle First requested handle number
- * @param End_Handle Last requested handle number
- * @param UUID_Type UUID type: 0x01 = 16 bits UUID while 0x02 = 128 bits UUID
- * @param UUID See @ref UUID_t
- * @return Value indicating success or error code.
- */
- tBleStatus aci_att_read_by_type_req(
- uint16_t Connection_Handle,
- uint16_t Start_Handle,
- uint16_t End_Handle,
- uint8_t UUID_Type,
- const UUID_t* UUID);
- /**
- * @brief ACI_ATT_READ_BY_GROUP_TYPE_REQ
- * Sends a Read By Group Type Request.
- * The Read By Group Type Request is used to obtain the values of grouping
- * attributes where the attribute type is known but the handle is not known.
- * Grouping attributes are defined at GATT layer. The grouping attribute types
- * are: "Primary Service", "Secondary Service" and "Characteristic".
- * The responses of the procedure are given through the
- * ACI_ATT_READ_BY_GROUP_TYPE_RESP_EVENT event.
- * The end of the procedure is indicated by a ACI_GATT_PROC_COMPLETE_EVENT.
- *
- * @param Connection_Handle Connection handle for which the command applies.
- * Values:
- * - 0x0000 ... 0x0EFF
- * @param Start_Handle First requested handle number
- * @param End_Handle Last requested handle number
- * @param UUID_Type UUID type: 0x01 = 16 bits UUID while 0x02 = 128 bits UUID
- * @param UUID See @ref UUID_t
- * @return Value indicating success or error code.
- */
- tBleStatus aci_att_read_by_group_type_req(
- uint16_t Connection_Handle,
- uint16_t Start_Handle,
- uint16_t End_Handle,
- uint8_t UUID_Type,
- const UUID_t* UUID);
- /**
- * @brief ACI_ATT_PREPARE_WRITE_REQ
- * Sends a Prepare Write Request.
- * The Prepare Write Request is used to request the server to prepare to write
- * the value of an attribute.
- * The responses of the procedure are given through the
- * ACI_ATT_PREPARE_WRITE_RESP_EVENT event.
- * The end of the procedure is indicated by a ACI_GATT_PROC_COMPLETE_EVENT.
- *
- * @param Connection_Handle Connection handle for which the command applies.
- * Values:
- * - 0x0000 ... 0x0EFF
- * @param Attr_Handle Handle of the attribute to be written
- * @param Val_Offset The offset of the first octet to be written
- * @param Attribute_Val_Length Length of attribute value (maximum value is
- * ATT_MTU - 5).
- * @param Attribute_Val The value of the attribute to be written
- * @return Value indicating success or error code.
- */
- tBleStatus aci_att_prepare_write_req(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint16_t Val_Offset,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_ATT_EXECUTE_WRITE_REQ
- * Sends an Execute Write Request.
- * The Execute Write Request is used to request the server to write or cancel
- * the write of all the prepared values currently held in the prepare queue
- * from this client.
- * The result of the procedure is given through the
- * ACI_ATT_EXEC_WRITE_RESP_EVENT event.
- * The end of the procedure is indicated by a ACI_GATT_PROC_COMPLETE_EVENT
- * event.
- *
- * @param Connection_Handle Connection handle for which the command applies.
- * Values:
- * - 0x0000 ... 0x0EFF
- * @param Execute Execute or cancel writes.
- * Values:
- * - 0x00: Cancel all prepared writes
- * - 0x01: Immediately write all pending prepared values
- * @return Value indicating success or error code.
- */
- tBleStatus aci_att_execute_write_req(uint16_t Connection_Handle, uint8_t Execute);
- /**
- * @brief ACI_GATT_DISC_ALL_PRIMARY_SERVICES
- * Starts the GATT client procedure to discover all primary services on the
- * server.
- * The responses of the procedure are given through the
- * ACI_ATT_READ_BY_GROUP_TYPE_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_disc_all_primary_services(uint16_t Connection_Handle);
- /**
- * @brief ACI_GATT_DISC_PRIMARY_SERVICE_BY_UUID
- * Starts the procedure to discover the primary services of the specified UUID
- * on the server.
- * The responses of the procedure are given through the
- * ACI_ATT_FIND_BY_TYPE_VALUE_RESP_EVENT event.
- * The end of the procedure is indicated by a ACI_GATT_PROC_COMPLETE_EVENT
- * event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param UUID_Type UUID type: 0x01 = 16 bits UUID while 0x02 = 128 bits UUID
- * @param UUID See @ref UUID_t
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_disc_primary_service_by_uuid(
- uint16_t Connection_Handle,
- uint8_t UUID_Type,
- const UUID_t* UUID);
- /**
- * @brief ACI_GATT_FIND_INCLUDED_SERVICES
- * Starts the procedure to find all included services.
- * The responses of the procedure are given through the
- * ACI_ATT_READ_BY_TYPE_RESP_EVENT event.
- * The end of the procedure is indicated by a ACI_GATT_PROC_COMPLETE_EVENT
- * event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Start_Handle Start attribute handle of the service
- * @param End_Handle End attribute handle of the service
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_find_included_services(
- uint16_t Connection_Handle,
- uint16_t Start_Handle,
- uint16_t End_Handle);
- /**
- * @brief ACI_GATT_DISC_ALL_CHAR_OF_SERVICE
- * Starts the procedure to discover all the characteristics of a given service.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. Before procedure completion the response packets are given
- * through ACI_ATT_READ_BY_TYPE_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Start_Handle Start attribute handle of the service
- * @param End_Handle End attribute handle of the service
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_disc_all_char_of_service(
- uint16_t Connection_Handle,
- uint16_t Start_Handle,
- uint16_t End_Handle);
- /**
- * @brief ACI_GATT_DISC_CHAR_BY_UUID
- * Starts the procedure to discover all the characteristics specified by a
- * UUID.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. Before procedure completion the response packets are given
- * through ACI_GATT_DISC_READ_CHAR_BY_UUID_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Start_Handle Start attribute handle of the service
- * @param End_Handle End attribute handle of the service
- * @param UUID_Type UUID type: 0x01 = 16 bits UUID while 0x02 = 128 bits UUID
- * @param UUID See @ref UUID_t
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_disc_char_by_uuid(
- uint16_t Connection_Handle,
- uint16_t Start_Handle,
- uint16_t End_Handle,
- uint8_t UUID_Type,
- const UUID_t* UUID);
- /**
- * @brief ACI_GATT_DISC_ALL_CHAR_DESC
- * Starts the procedure to discover all characteristic descriptors on the
- * server.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. Before procedure completion the response packets are given
- * through ACI_ATT_FIND_INFO_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Char_Handle Handle of the characteristic value
- * @param End_Handle End handle of the characteristic
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_disc_all_char_desc(
- uint16_t Connection_Handle,
- uint16_t Char_Handle,
- uint16_t End_Handle);
- /**
- * @brief ACI_GATT_READ_CHAR_VALUE
- * Starts the procedure to read the attribute value.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. Before procedure completion the response packet is given through
- * ACI_ATT_READ_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the characteristic value to be read
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_read_char_value(uint16_t Connection_Handle, uint16_t Attr_Handle);
- /**
- * @brief ACI_GATT_READ_USING_CHAR_UUID
- * This command sends a Read By Type Request packet to the server in order to
- * read the value attribute of the characteristics specified by the UUID.
- * When the procedure is completed, an ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. Before procedure completion, the response packet is given through
- * one ACI_GATT_DISC_READ_CHAR_BY_UUID_RESP_EVENT event per reported attribute.
- * Note: the number of bytes of a value reported by
- * ACI_GATT_DISC_READ_CHAR_BY_UUID_RESP_EVENT event cannot exceed
- * BLE_EVT_MAX_PARAM_LEN - 7 i.e. 248 bytes for default value of
- * BLE_EVT_MAX_PARAM_LEN.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Start_Handle Starting handle of the range to be searched
- * @param End_Handle End handle of the range to be searched
- * @param UUID_Type UUID type: 0x01 = 16 bits UUID while 0x02 = 128 bits UUID
- * @param UUID See @ref UUID_t
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_read_using_char_uuid(
- uint16_t Connection_Handle,
- uint16_t Start_Handle,
- uint16_t End_Handle,
- uint8_t UUID_Type,
- const UUID_t* UUID);
- /**
- * @brief ACI_GATT_READ_LONG_CHAR_VALUE
- * Starts the procedure to read a long characteristic value.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. Before procedure completion the response packets are given
- * through ACI_ATT_READ_BLOB_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the characteristic value to be read
- * @param Val_Offset Offset from which the value needs to be read
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_read_long_char_value(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint16_t Val_Offset);
- /**
- * @brief ACI_GATT_READ_MULTIPLE_CHAR_VALUE
- * Starts a procedure to read multiple characteristic values from a server.
- * The command must specify the handles of the characteristic values to be
- * read.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. Before procedure completion the response packets are given
- * through ACI_ATT_READ_MULTIPLE_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Number_of_Handles Number of handles in the following table
- * Values:
- * - 0x02 ... 0x7E
- * @param Handle_Entry See @ref Handle_Entry_t
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_read_multiple_char_value(
- uint16_t Connection_Handle,
- uint8_t Number_of_Handles,
- const Handle_Entry_t* Handle_Entry);
- /**
- * @brief ACI_GATT_WRITE_CHAR_VALUE
- * Starts the procedure to write a characteristic value.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated.
- * The length of the value to be written must not exceed (ATT_MTU - 3). On
- * STM32WB, it must also not exceed (BLE_CMD_MAX_PARAM_LEN - 5) i.e. 250 for
- * BLE_CMD_MAX_PARAM_LEN default value.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the characteristic value to be written
- * @param Attribute_Val_Length Length of the value to be written
- * @param Attribute_Val Value to be written
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_write_char_value(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_GATT_WRITE_LONG_CHAR_VALUE
- * Starts the procedure to write a long characteristic value.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. During the procedure, ACI_ATT_PREPARE_WRITE_RESP_EVENT and
- * ACI_ATT_EXEC_WRITE_RESP_EVENT events are raised.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the characteristic value to be written
- * @param Val_Offset Offset at which the attribute has to be written
- * @param Attribute_Val_Length Length of the value to be written.
- * On STM32WB, this value must not exceed (BLE_CMD_MAX_PARAM_LEN - 7)
- * i.e. 248 for BLE_CMD_MAX_PARAM_LEN default value.
- * @param Attribute_Val Value to be written
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_write_long_char_value(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint16_t Val_Offset,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_GATT_WRITE_CHAR_RELIABLE
- * Starts the procedure to write a characteristic reliably.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. During the procedure, ACI_ATT_PREPARE_WRITE_RESP_EVENT and
- * ACI_ATT_EXEC_WRITE_RESP_EVENT events are raised.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the attribute to be written
- * @param Val_Offset Offset at which the attribute has to be written
- * @param Attribute_Val_Length Length of the value to be written.
- * On STM32WB, this value must not exceed (BLE_CMD_MAX_PARAM_LEN - 7)
- * i.e. 248 for BLE_CMD_MAX_PARAM_LEN default value.
- * @param Attribute_Val Value to be written
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_write_char_reliable(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint16_t Val_Offset,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_GATT_WRITE_LONG_CHAR_DESC
- * Starts the procedure to write a long characteristic descriptor.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. During the procedure, ACI_ATT_PREPARE_WRITE_RESP_EVENT and
- * ACI_ATT_EXEC_WRITE_RESP_EVENT events are raised.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the attribute to be written
- * @param Val_Offset Offset at which the attribute has to be written
- * @param Attribute_Val_Length Length of the value to be written.
- * On STM32WB, this value must not exceed (BLE_CMD_MAX_PARAM_LEN - 7)
- * i.e. 248 for BLE_CMD_MAX_PARAM_LEN default value.
- * @param Attribute_Val Value to be written
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_write_long_char_desc(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint16_t Val_Offset,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_GATT_READ_LONG_CHAR_DESC
- * Starts the procedure to read a long characteristic value.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. Before procedure completion the response packets are given
- * through ACI_ATT_READ_BLOB_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the characteristic descriptor
- * @param Val_Offset Offset from which the value needs to be read
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_read_long_char_desc(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint16_t Val_Offset);
- /**
- * @brief ACI_GATT_WRITE_CHAR_DESC
- * Starts the procedure to write a characteristic descriptor.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated.
- * The length of the value to be written must not exceed (ATT_MTU - 3). On
- * STM32WB, it must also not exceed (BLE_CMD_MAX_PARAM_LEN - 5) i.e. 250 for
- * BLE_CMD_MAX_PARAM_LEN default value.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the attribute to be written
- * @param Attribute_Val_Length Length of the value to be written
- * @param Attribute_Val Value to be written
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_write_char_desc(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_GATT_READ_CHAR_DESC
- * Starts the procedure to read the descriptor specified.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated.
- * Before procedure completion the response packet is given through
- * ACI_ATT_READ_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the descriptor to be read
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_read_char_desc(uint16_t Connection_Handle, uint16_t Attr_Handle);
- /**
- * @brief ACI_GATT_WRITE_WITHOUT_RESP
- * Starts the procedure to write a characteristic value without waiting for any
- * response from the server. No events are generated after this command is
- * executed.
- * The length of the value to be written must not exceed (ATT_MTU - 3). On
- * STM32WB, it must also not exceed (BLE_CMD_MAX_PARAM_LEN - 5) i.e. 250 for
- * BLE_CMD_MAX_PARAM_LEN default value.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the characteristic value to be written
- * @param Attribute_Val_Length Length of the value to be written
- * @param Attribute_Val Value to be written
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_write_without_resp(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_GATT_SIGNED_WRITE_WITHOUT_RESP
- * Starts a signed write without response from the server.
- * The procedure is used to write a characteristic value with an authentication
- * signature without waiting for any response from the server. It cannot be
- * used when the link is encrypted.
- * The length of the value to be written must not exceed (ATT_MTU - 15). On
- * STM32WB, it must also not exceed (BLE_CMD_MAX_PARAM_LEN - 5) i.e. 250 for
- * BLE_CMD_MAX_PARAM_LEN default value.
- *
- * @param Connection_Handle Connection handle for which the command applies.
- * Values:
- * - 0x0000 ... 0x0EFF
- * @param Attr_Handle Handle of the characteristic value to be written
- * @param Attribute_Val_Length Length of the value to be written
- * @param Attribute_Val Value to be written
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_signed_write_without_resp(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_GATT_CONFIRM_INDICATION
- * Allow application to confirm indication. This command has to be sent when
- * the application receives the event ACI_GATT_INDICATION_EVENT.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_confirm_indication(uint16_t Connection_Handle);
- /**
- * @brief ACI_GATT_WRITE_RESP
- * Allow or reject a write request from a client.
- * This command has to be sent by the application when it receives the
- * ACI_GATT_WRITE_PERMIT_REQ_EVENT. If the write can be allowed, then the
- * status and error code have to be set to 0. If the write cannot be allowed,
- * then the status has to be set to 1 and the error code has to be set to the
- * error code that has to be passed to the client.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Attr_Handle Handle of the attribute that was passed in the event
- * ACI_GATT_WRITE_PERMIT_REQ_EVENT
- * @param Write_status If the value can be written or not.
- * Values:
- * - 0x00: The value can be written to the attribute specified by
- * attr_handle
- * - 0x01: The value cannot be written to the attribute specified by the
- * attr_handle
- * @param Error_Code The error code that has to be passed to the client in case
- * the write has to be rejected
- * @param Attribute_Val_Length Length of the value to be written as passed in
- * the event ACI_GATT_WRITE_PERMIT_REQ_EVENT
- * @param Attribute_Val Value as passed in the event
- * ACI_GATT_WRITE_PERMIT_REQ_EVENT
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_write_resp(
- uint16_t Connection_Handle,
- uint16_t Attr_Handle,
- uint8_t Write_status,
- uint8_t Error_Code,
- uint8_t Attribute_Val_Length,
- const uint8_t* Attribute_Val);
- /**
- * @brief ACI_GATT_ALLOW_READ
- * Allow the GATT server to send a response to a read request from a client.
- * The application has to send this command when it receives the
- * ACI_GATT_READ_PERMIT_REQ_EVENT or ACI_GATT_READ_MULTI_PERMIT_REQ_EVENT. This
- * command indicates to the stack that the response can be sent to the client.
- * So if the application wishes to update any of the attributes before they are
- * read by the client, it must update the characteristic values using the
- * ACI_GATT_UPDATE_CHAR_VALUE and then give this command. The application
- * should perform the required operations within 30 seconds. Otherwise the GATT
- * procedure will be timeout.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_allow_read(uint16_t Connection_Handle);
- /**
- * @brief ACI_GATT_SET_SECURITY_PERMISSION
- * This command sets the security permission for the attribute handle
- * specified. It is allowed only for the Client Characteristic Configuration
- * descriptor.
- *
- * @param Serv_Handle Handle of the service which contains the attribute whose
- * security permission has to be modified
- * @param Attr_Handle Handle of the attribute whose security permission has to
- * be modified
- * @param Security_Permissions Security permission flags.
- * Flags:
- * - 0x00: None
- * - 0x01: AUTHEN_READ (Need authentication to read)
- * - 0x02: AUTHOR_READ (Need authorization to read)
- * - 0x04: ENCRY_READ (Need encryption to read)
- * - 0x08: AUTHEN_WRITE (need authentication to write)
- * - 0x10: AUTHOR_WRITE (need authorization to write)
- * - 0x20: ENCRY_WRITE (need encryption to write)
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_set_security_permission(
- uint16_t Serv_Handle,
- uint16_t Attr_Handle,
- uint8_t Security_Permissions);
- /**
- * @brief ACI_GATT_SET_DESC_VALUE
- * This command sets the value of the descriptor specified by Char_Desc_Handle.
- *
- * @param Serv_Handle Handle of the service which contains the characteristic
- * descriptor
- * @param Char_Handle Handle of the characteristic which contains the
- * descriptor
- * @param Char_Desc_Handle Handle of the descriptor whose value has to be set
- * @param Val_Offset Offset from which the descriptor value has to be updated
- * @param Char_Desc_Value_Length Length of the descriptor value
- * @param Char_Desc_Value Descriptor value
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_set_desc_value(
- uint16_t Serv_Handle,
- uint16_t Char_Handle,
- uint16_t Char_Desc_Handle,
- uint16_t Val_Offset,
- uint8_t Char_Desc_Value_Length,
- const uint8_t* Char_Desc_Value);
- /**
- * @brief ACI_GATT_READ_HANDLE_VALUE
- * Reads the value of the attribute handle specified from the local GATT
- * database.
- *
- * @param Attr_Handle Handle of the attribute to read
- * @param Offset Offset from which the value needs to be read
- * @param Value_Length_Requested Maximum number of octets to be returned as
- * attribute value
- * @param[out] Length Length of the attribute value
- * @param[out] Value_Length Length in octets of the Value parameter
- * @param[out] Value Attribute value
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_read_handle_value(
- uint16_t Attr_Handle,
- uint16_t Offset,
- uint16_t Value_Length_Requested,
- uint16_t* Length,
- uint16_t* Value_Length,
- uint8_t* Value);
- /**
- * @brief ACI_GATT_UPDATE_CHAR_VALUE_EXT
- * This command is a more flexible version of ACI_GATT_UPDATE_CHAR_VALUE to
- * support update of long attribute up to 512 bytes and indicate selectively
- * the generation of Indication/Notification.
- * The description notes for the ACI_GATT_UPDATE_CHAR_VALUE command also apply
- * here.
- *
- * @param Conn_Handle_To_Notify Specifies the client(s) to be notified.
- * Values:
- * - 0x0000: Notify all subscribed clients on their unenhanced ATT
- * bearer
- * - 0x0001 ... 0x0EFF: Notify one client on the specified unenhanced
- * ATT bearer (the parameter is the connection handle)
- * - 0xEA00 ... 0xEA3F: Notify one client on the specified enhanced ATT
- * bearer (the LSB-byte of the parameter is the connection-oriented
- * channel index)
- * @param Service_Handle Handle of service to which the characteristic belongs
- * @param Char_Handle Handle of the characteristic declaration
- * @param Update_Type Allow Notification or Indication generation, if enabled
- * in the client characteristic configuration descriptor
- * Flags:
- * - 0x00: Do not notify
- * - 0x01: Notification
- * - 0x02: Indication
- * @param Char_Length Total length of the characteristic value.
- * In case of a variable size characteristic, this field specifies the
- * new length of the characteristic value after the update; in case of
- * fixed length characteristic this field is ignored.
- * @param Value_Offset The offset from which the attribute value has to be
- * updated.
- * @param Value_Length Length of the Value parameter in octets.
- * On STM32WB, this value must not exceed (BLE_CMD_MAX_PARAM_LEN - 12)
- * i.e. 243 for BLE_CMD_MAX_PARAM_LEN default value.
- * @param Value Updated characteristic value
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_update_char_value_ext(
- uint16_t Conn_Handle_To_Notify,
- uint16_t Service_Handle,
- uint16_t Char_Handle,
- uint8_t Update_Type,
- uint16_t Char_Length,
- uint16_t Value_Offset,
- uint8_t Value_Length,
- const uint8_t* Value);
- /**
- * @brief ACI_GATT_DENY_READ
- * This command is used to deny the GATT server to send a response to a read
- * request from a client.
- * The application may send this command when it receives the
- * ACI_GATT_READ_PERMIT_REQ_EVENT or ACI_GATT_READ_MULTI_PERMIT_REQ_EVENT.
- * This command indicates to the stack that the client is not allowed to read
- * the requested characteristic due to e.g. application restrictions.
- * The Error code shall be either 0x08 (Insufficient Authorization) or a value
- * in the range 0x80-0x9F (Application Error).
- * The application should issue the ACI_GATT_DENY_READ or ACI_GATT_ALLOW_READ
- * command within 30 seconds from the reception of the
- * ACI_GATT_READ_PERMIT_REQ_EVENT or ACI_GATT_READ_MULTI_PERMIT_REQ_EVENT
- * events; otherwise the GATT procedure issues a timeout.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Error_Code Error code for the command
- * Values:
- * - 0x08: Insufficient Authorization
- * - 0x80 ... 0x9F: Application Error
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_deny_read(uint16_t Connection_Handle, uint8_t Error_Code);
- /**
- * @brief ACI_GATT_SET_ACCESS_PERMISSION
- * This command sets the access permission for the attribute handle specified.
- *
- * @param Serv_Handle Handle of the service which contains the attribute whose
- * access permission has to be modified
- * @param Attr_Handle Handle of the attribute whose security permission has to
- * be modified
- * @param Access_Permissions Access permission
- * Flags:
- * - 0x00: None
- * - 0x01: READ
- * - 0x02: WRITE
- * - 0x04: WRITE_WO_RESP
- * - 0x08: SIGNED_WRITE
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_set_access_permission(
- uint16_t Serv_Handle,
- uint16_t Attr_Handle,
- uint8_t Access_Permissions);
- /**
- * @brief ACI_GATT_STORE_DB
- * This command forces the saving of the GATT database for all active
- * connections. Note that, by default, the GATT database is saved per active
- * connection at the time of disconnection.
- *
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_store_db(void);
- /**
- * @brief ACI_GATT_SEND_MULT_NOTIFICATION
- * This command sends a Multiple Handle Value Notification over the ATT bearer
- * specified in parameter. The handles provided as parameters must be the
- * handles of the characteristic declarations.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Number_of_Handles Number of handles in the following table
- * Values:
- * - 0x02 ... 0x7E
- * @param Handle_Entry See @ref Handle_Entry_t
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_send_mult_notification(
- uint16_t Connection_Handle,
- uint8_t Number_of_Handles,
- const Handle_Entry_t* Handle_Entry);
- /**
- * @brief ACI_GATT_READ_MULTIPLE_VAR_CHAR_VALUE
- * Starts a procedure to read multiple variable length characteristic values
- * from a server.
- * The command must specify the handles of the characteristic values to be
- * read.
- * When the procedure is completed, a ACI_GATT_PROC_COMPLETE_EVENT event is
- * generated. Before procedure completion the response packets are given
- * through ACI_ATT_READ_MULTIPLE_RESP_EVENT event.
- *
- * @param Connection_Handle Specifies the ATT bearer for which the command
- * applies.
- * Values:
- * - 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the
- * connection handle)
- * - 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the
- * parameter is the connection-oriented channel index)
- * @param Number_of_Handles Number of handles in the following table
- * Values:
- * - 0x02 ... 0x7E
- * @param Handle_Entry See @ref Handle_Entry_t
- * @return Value indicating success or error code.
- */
- tBleStatus aci_gatt_read_multiple_var_char_value(
- uint16_t Connection_Handle,
- uint8_t Number_of_Handles,
- const Handle_Entry_t* Handle_Entry);
- #endif /* BLE_GATT_ACI_H__ */
|