Files
MuditaOS/module-bluetooth/lib/Bluetopia/profiles/DIS/source/DISAPI.h

469 lines
27 KiB
C

/*
* Copyright 2011 - 2014 Stonestreet One.
* All Rights Reserved.
* Author: Tim Cook
*** MODIFICATION HISTORY ****************************************************
*
* mm/dd/yy F. Lastname Description of Modification
* -------- ----------- ------------------------------------------------
* 10/04/11 T. Cook Initial creation.
* 12/5/12 T. Cook Update to DIS v1.1.
****************************************************************************
*/
/**
* @file DISAPI.h
*
* @brief Stonestreet One Bluetooth Device Information Service (GATT
* based) API Type Definitions, Constants, and Prototypes.
* To use any of the following API's,
* include the following declaration in your application.
* @code
* #include "SS1BTDIS.h"
* @endcode
*
* The Device Information Service, DIS, programming interface defines the protocols
* and procedures to be used to implement DIS capabilities for both Server and Client services.
* ============================================================================
*/
#ifndef __DISAPIH__
#define __DISAPIH__
#include "SS1BTPS.h" /*! Bluetooth Stack API Prototypes/Constants. */
#include "SS1BTGAT.h" /*! Bluetooth Stack GATT API Prototypes/Constants. */
#include "DISTypes.h" /*! Device Information Service Types/Constants. */
/*! Error Return Codes.
* Error Codes that are smaller than these (less than -1000) are
* related to the Bluetooth Protocol Stack itself (see BTERRORS.H).
*/
#define DIS_ERROR_INVALID_PARAMETER (-1000)
#define DIS_ERROR_INSUFFICIENT_RESOURCES (-1001)
#define DIS_ERROR_SERVICE_ALREADY_REGISTERED (-1003)
#define DIS_ERROR_INVALID_INSTANCE_ID (-1004)
#define DIS_ERROR_MALFORMATTED_DATA (-1005)
#define DIS_ERROR_UNKNOWN_ERROR (-1006)
/*! The following controls the maximum length of a static string.
*/
#define DIS_MAXIMUM_SUPPORTED_STRING (BTPS_CONFIGURATION_DIS_MAXIMUM_SUPPORTED_STRING_LENGTH)
/*! The following structure represents all of the data contained in
* the DIS PNP ID value. The VendorID Source is a value that
* describes who assigned the following VendorID. The VendorID
* identifies the vendor from the source described in the VendorID
* Source. The ProductID is a vendor maintained product ID. The
* ProductVersion is a vendor mainted product version.
* \note The VendorID Source must be an enumerated value of the
* form DIS_PNP_ID_VENDOR_SOURCE_XXX.
*/
typedef struct _tagDIS_PNP_ID_Data_t
{
Byte_t VendorID_Source;
Word_t VendorID;
Word_t ProductID;
Word_t ProductVersion;
} DIS_PNP_ID_Data_t;
#define DIS_PNP_ID_DATA_SIZE (sizeof(DIS_PNP_ID_Data_t))
/*! @brief The following function is responsible for opening a DIS Server.
* @param BluetoothStackID The first parameter is the Bluetooth Stack ID on which to open the
* server. @param ServiceID The final parameter is a pointer to store the GATT
* Service ID of the registered DIS service. This can be used to
* include the service registered by this call.
* @return This function returns the positive, non-zero, Instance ID or a negative error
* code.
* \note Only 1 DIS Server may be open at a time, per Bluetooth
* Stack ID.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Initialize_Service(unsigned int BluetoothStackID, unsigned int *ServiceID);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Initialize_Service_t)(unsigned int BluetoothStackID, unsigned int *ServiceID);
#endif
/*! @brief The following function is responsible for opening a DIS Server.
* @param BluetoothStackID The first parameter is the Bluetooth Stack ID on which to open the
* server. @param ServiceID The second parameter is a pointer to store the GATT
* Service ID of the registered DIS service. This can be used to
* include the service registered by this call.
* @param ServiceHandleRange The final parameter
* is a pointer, that on input can be used to control the location of
* the service in the GATT database, and on ouput to store the
* service handle range. @return This function returns the positive,
* non-zero, Instance ID or a negative error code.
* \note Only 1 DIS Server may be open at a time, per Bluetooth
* Stack ID.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Initialize_Service_Handle_Range(unsigned int BluetoothStackID, unsigned int *ServiceID, GATT_Attribute_Handle_Group_t *ServiceHandleRange);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Initialize_Service_Handle_Range_t)(unsigned int BluetoothStackID, unsigned int *ServiceID, GATT_Attribute_Handle_Group_t *ServiceHandleRange);
#endif
/*! @brief The following function is responsible for closing a previously DIS
* Server. @param BluetoothStackID The first parameter is the Bluetooth Stack ID on which to
* close the server. @param InstanceID The second parameter is the InstanceID that was
* returned from a successful call to DIS_Initialize_Service().
* @return This function returns a zero if successful or a negative return
* error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Cleanup_Service(unsigned int BluetoothStackID, unsigned int InstanceID);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Cleanup_Service_t)(unsigned int BluetoothStackID, unsigned int InstanceID);
#endif
/*! @brief The following function is responsible for querying the number of
* attributes that are contained in the DIS Service that is
* registered with a call to DIS_Initialize_Service().
* @return This function returns the non-zero number of attributes that are contained in a
* DIS Server or zero on failure.
*/
BTPSAPI_DECLARATION unsigned int BTPSAPI DIS_Query_Number_Attributes(void);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef unsigned int (BTPSAPI *PFN_DIS_Query_Number_Attributes_t)(void);
#endif
/*! @brief The following function is responsible for setting the Manufacturer
* Name characteristic on the specified Device Information Service
* instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the
* Bluetooth Device. @param InstanceID The second parameter is the InstanceID returned
* from a successful call to DIS_Initialize_Server().
* @param ManufacturerName The final parameter is the Manufacturer Name to set as the current
* Manufacturer Name for the specified Device Information Service
* Instance. The Manufacturer Name parameter must be a pointer to a
* NULL terminated ASCII String of at most
* DIS_MAXIMUM_SUPPORTED_STRING (not counting the trailing NULL
* terminator). @return This function returns a zero if successful or a
* negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Set_Manufacturer_Name(unsigned int BluetoothStackID, unsigned int InstanceID, char *ManufacturerName);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Set_Manufacturer_Name_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *ManufacturerName);
#endif
/*! @brief The following function is responsible for querying the current
* Manufacturer Name characteristic value on the specified DIS
* instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the
* Bluetooth Device. @param InstanceID The second parameter is the InstanceID returned
* from a successful call to DIS_Initialize_Server().
* @param ManufacturerName The final parameter is a pointer to a structure to return the current
* Manufacturer Name for the specified DIS Service Instance. The
* Manufacturer Name Length should be at least
* (DIS_MAXIMUM_SUPPORTED_STRING+1) to hold the Maximum allowable
* string (plus a single character to hold the NULL terminator).
* @return This function returns a zero if successful or a negative return error
* code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Query_Manufacturer_Name(unsigned int BluetoothStackID, unsigned int InstanceID, char *ManufacturerName);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Query_Manufacturer_Name_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *ManufacturerName);
#endif
/*! @brief The following function is responsible for setting the Model Number
* characteristic on the specified Device Information Service
* instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the
* Bluetooth Device. @param InstanceID The second parameter is the InstanceID returned
* from a successful call to DIS_Initialize_Server().
*b@param ModelNumber The final parameter is the Model Number to set as the current Model Number
* for the specified Device Information Service Instance. The Model
* Number parameter must be a pointer to a NULL terminated ASCII
* String of at most DIS_MAXIMUM_SUPPORTED_STRING (not counting the
* trailing NULL terminator). @return This function returns a zero if
* successful or a negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Set_Model_Number(unsigned int BluetoothStackID, unsigned int InstanceID, char *ModelNumber);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Set_Model_Number_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *ModelNumber);
#endif
/*! @brief The following function is responsible for querying the current
* Model Number characteristic value on the specified DIS instance.
* @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the Bluetooth
* Device. @param InstanceID The second parameter is the InstanceID returned from a
* successful call to DIS_Initialize_Server(). @param ModelNumber The final parameter
* is a pointer to a structure to return the current Model Number for
* the specified DIS Service Instance. The Model Number Length
* should be at least (DIS_MAXIMUM_SUPPORTED_STRING+1) to hold the
* Maximum allowable string (plus a single character to hold the NULL
* terminator) @return This function returns a zero if successful or a
* negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Query_Model_Number(unsigned int BluetoothStackID, unsigned int InstanceID, char *ModelNumber);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Query_Model_Number_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *ModelNumber);
#endif
/*! @brief The following function is responsible for setting the Serial
* Number characteristic on the specified Device Information Service
* instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the
* Bluetooth Device. @param InstanceID The second parameter is the InstanceID returned
* from a successful call to DIS_Initialize_Server().
* @param SerialNumber The final parameter is the Serial Number to set as the current Serial Number
* for the specified Device Information Service Instance. The Serial
* Number parameter must be a pointer to a NULL terminated ASCII
* String of at most DIS_MAXIMUM_SUPPORTED_STRING (not counting the
* trailing NULL terminator). @return This function returns a zero if
* successful or a negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Set_Serial_Number(unsigned int BluetoothStackID, unsigned int InstanceID, char *SerialNumber);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Set_Serial_Number_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *SerialNumber);
#endif
/*! @brief The following function is responsible for querying the current
* Serial Number characteristic value on the specified DIS instance.
* @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the Bluetooth
* Device. @param InstanceID The second parameter is the InstanceID returned from a
* successful call to DIS_Initialize_Server(). @param SerialNumber The final parameter
* is a pointer to a structure to return the current Serial Number
* for the specified DIS Service Instance. The Serial Number Length
* should be at least (DIS_MAXIMUM_SUPPORTED_STRING+1) to hold the
* Maximum allowable string (plus a single character to hold the NULL
* terminator) @return This function returns a zero if successful or a
* negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Query_Serial_Number(unsigned int BluetoothStackID, unsigned int InstanceID, char *SerialNumber);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Query_Serial_Number_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *SerialNumber);
#endif
/*! @brief The following function is responsible for setting the Hardware
* Revision characteristic on the specified Device Information
* Service instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID
* of the Bluetooth Device. @param InstanceID The second parameter is the InstanceID
* returned from a successful call to DIS_Initialize_Server().
* @param Hardware_Revision The final parameter is the Hardware Revision to set as the current
* Hardware Revision for the specified Device Information Service
* Instance. The Hardware Revision parameter must be a pointer to a
* NULL terminated ASCII String of at most
* DIS_MAXIMUM_SUPPORTED_STRING (not counting the trailing NULL
* terminator). @return This function returns a zero if successful or a
* negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Set_Hardware_Revision(unsigned int BluetoothStackID, unsigned int InstanceID, char *Hardware_Revision);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Set_Hardware_Revision_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *Hardware_Revision);
#endif
/*! @brief The following function is responsible for querying the current
* Hardware Revision characteristic value on the specified DIS
* instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the
* Bluetooth Device. @param InstanceID The second parameter is the InstanceID returned
* from a successful call to DIS_Initialize_Server().
* @param Hardware_Revision The final parameter is a pointer to a structure to return the current
* Hardware Revision for the specified DIS Service Instance. The
* Hardware Revision Length should be at least
* (DIS_MAXIMUM_SUPPORTED_STRING+1) to hold the Maximum allowable
* string (plus a single character to hold the NULL terminator).
* @return This function returns a zero if successful or a negative return error
* code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Query_Hardware_Revision(unsigned int BluetoothStackID, unsigned int InstanceID, char *Hardware_Revision);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Query_Hardware_Revision_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *Hardware_Revision);
#endif
/*! @brief The following function is responsible for setting the Firmware
* Revision characteristic on the specified Device Information
* Service instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID
* of the Bluetooth Device. @param InstanceID The second parameter is the InstanceID
* returned from a successful call to DIS_Initialize_Server().
* @param FirmwareRevision The final parameter is the Firmware Revision to set as the current
* Firmware Revision for the specified Device Information Service
* Instance. The Firmware Revision parameter must be a pointer to a
* NULL terminated ASCII String of at most
* DIS_MAXIMUM_SUPPORTED_STRING (not counting the trailing NULL
* terminator). @return This function returns a zero if successful or a
* negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Set_Firmware_Revision(unsigned int BluetoothStackID, unsigned int InstanceID, char *FirmwareRevision);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Set_Firmware_Revision_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *FirmwareRevision);
#endif
/*! @brief The following function is responsible for querying the current
* Firmware Revision characteristic value on the specified DIS
* instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the
* Bluetooth Device. @param InstanceID The second parameter is the InstanceID returned
* from a successful call to DIS_Initialize_Server().
* @param FirmwareRevision The final parameter is a pointer to a structure to return the current
* Firmware Revision for the specified DIS Service Instance. The
* Firmware Revision Length should be at least
* (DIS_MAXIMUM_SUPPORTED_STRING+1) to hold the Maximum allowable
* string (plus a single character to hold the NULL terminator).
* @return This function returns a zero if successful or a negative return error
* code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Query_Firmware_Revision(unsigned int BluetoothStackID, unsigned int InstanceID, char *FirmwareRevision);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Query_Firmware_Revision_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *FirmwareRevision);
#endif
/*! @brief The following function is responsible for setting the Software
* Revision characteristic on the specified Device Information
* Service instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID
* of the Bluetooth Device. @param InstanceID The second parameter is the InstanceID
* returned from a successful call to DIS_Initialize_Server().
* @param SoftwareRevision The final parameter is the Software Revision to set as the current
* Software Revision for the specified Device Information Service
* Instance. The Software Revision parameter must be a pointer to a
* NULL terminated ASCII String of at most
* DIS_MAXIMUM_SUPPORTED_STRING (not counting the trailing NULL
* terminator). @return This function returns a zero if successful or a
* negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Set_Software_Revision(unsigned int BluetoothStackID, unsigned int InstanceID, char *SoftwareRevision);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Set_Software_Revision_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *SoftwareRevision);
#endif
/*! @brief The following function is responsible for querying the current
* Software Revision characteristic value on the specified DIS
* instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the
* Bluetooth Device. @param InstanceID The second parameter is the InstanceID returned
* from a successful call to DIS_Initialize_Server().
* @param SoftwareRevision The final parameter is a pointer to a structure to return the current
* Software Revision for the specified DIS Service Instance. The
* Software Revision Length should be at least
* (DIS_MAXIMUM_SUPPORTED_STRING+1) to hold the Maximum allowable
* string (plus a single character to hold the NULL terminator).
* @return This function returns a zero if successful or a negative return error
* code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Query_Software_Revision(unsigned int BluetoothStackID, unsigned int InstanceID, char *SoftwareRevision);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Query_Software_Revision_t)(unsigned int BluetoothStackID, unsigned int InstanceID, char *SoftwareRevision);
#endif
/*! @brief The following function is responsible for setting the System ID
* characteristic on the specified Device Information Service
* instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the
* Bluetooth Device. @param InstanceID The second parameter is the InstanceID returned
* from a successful call to DIS_Initialize_Server().
* @param SystemID The final parameter is the System ID to set as the current System ID for the
* specified Device Information Service Instance.
* @return This function returns a zero if successful or a negative return error code if an
* error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Set_System_ID(unsigned int BluetoothStackID, unsigned int InstanceID, DIS_System_ID_Value_t *SystemID);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Set_System_ID_t)(unsigned int BluetoothStackID, unsigned int InstanceID, DIS_System_ID_Value_t *SystemID);
#endif
/*! @brief The following function is responsible for querying the current
* System ID characteristic value on the specified DIS instance.
* @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the Bluetooth Device.
* @param InstanceID The second parameter is the InstanceID returned from a successful
* call to DIS_Initialize_Server(). @param SystemID The final parameter is a pointer
* to a structure to return the current System ID for the specified
* DIS Service Instance. @return This function returns a zero if successful
* or a negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Query_System_ID(unsigned int BluetoothStackID, unsigned int InstanceID, DIS_System_ID_Value_t *SystemID);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Query_System_ID_t)(unsigned int BluetoothStackID, unsigned int InstanceID, DIS_System_ID_Value_t *SystemID);
#endif
/*! @brief The following function is responsible for setting the IEEE
* Certification Data characteristic on the specified Device
* Information Service instance. @param BluetoothStackID The first parameter is the
* Bluetooth Stack ID of the Bluetooth Device. @param InstanceID The second parameter
* is the InstanceID returned from a successful call to
* DIS_Initialize_Server(). @param Length The third parameter is the length of the
* IEEE Certification Data. @param IEEE_Certification_Data The final parameter is the IEEE
* Certification Data to set as the current IEEE Certification Data
* for the specified Device Information Service Instance. The IEEE
* Certification Data parameter must be a pointer to a array of at
* most DIS_MAXIMUM_SUPPORTED_STRING characters.
* @return This function returns a zero if successful or a negative return error code if an
* error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Set_IEEE_Certification_Data(unsigned int BluetoothStackID, unsigned int InstanceID, unsigned int Length, Byte_t *IEEE_Certification_Data);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Set_IEEE_Certification_Data_t)(unsigned int BluetoothStackID, unsigned int InstanceID, unsigned int Length, Byte_t *IEEE_Certification_Data);
#endif
/*! @brief The following function is responsible for querying the current
* IEEE Certification Data characteristic value on the specified DIS
* instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the
* Bluetooth Device. @param InstanceID The second parameter is the InstanceID returned
* from a successful call to DIS_Initialize_Server().
* @param IEEE_Certification_Data The final parameter is a pointer to a structure to return the current IEEE
* Certification Data for the specified DIS Service Instance. The
* IEEE Certification Data Length should be at least
* (DIS_MAXIMUM_SUPPORTED_STRING) to hold the Maximum allowable IEEE
* Certification Data. This function the length of the IEEE
* Certification Data if successful or a negative return error code
* if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Query_IEEE_Certification_Data(unsigned int BluetoothStackID, unsigned int InstanceID, Byte_t *IEEE_Certification_Data);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Query_IEEE_Certification_Data_t)(unsigned int BluetoothStackID, unsigned int InstanceID, Byte_t *IEEE_Certification_Data);
#endif
/*! @brief The following function is responsible for setting the Plug and
* Play (PnP) ID characteristic on the specified Device Information
* Service instance. @param BluetoothStackID The first parameter is the Bluetooth Stack ID
* of the Bluetooth Device. @param InstanceID The second parameter is the InstanceID
* returned from a successful call to DIS_Initialize_Server().
* @param PNP_ID_Data The final parameter is the PnP ID Data to set as the current PnP ID
* Data for the specified Device Information Service Instance.
* @return This function returns a zero if successful or a negative return error
* code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Set_PNP_ID(unsigned int BluetoothStackID, unsigned int InstanceID, DIS_PNP_ID_Data_t *PNP_ID_Data);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Set_PNP_ID_t)(unsigned int BluetoothStackID, unsigned int InstanceID, DIS_PNP_ID_Data_t *PNP_ID_Data);
#endif
/*! @brief The following function is responsible for querying the current PnP
* ID Data characteristic value on the specified DIS instance.
* @param BluetoothStackID The first parameter is the Bluetooth Stack ID of the Bluetooth Device.
* @param InstanceID The second parameter is the InstanceID returned from a successful
* call to DIS_Initialize_Server(). @param PNP_ID_Data The final parameter is a pointer
* to a structure to return the current PnP ID Data for the specified
* DIS Service Instance. @return This function returns a zero if successful
* or a negative return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Query_PNP_ID(unsigned int BluetoothStackID, unsigned int InstanceID, DIS_PNP_ID_Data_t *PNP_ID_Data);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Query_PNP_ID_t)(unsigned int BluetoothStackID, unsigned int InstanceID, DIS_PNP_ID_Data_t *PNP_ID_Data);
#endif
/*! @brief The following function is responsible for parsing a PnP ID value
* received from a remote DIS Server. @param ValueLength The first parameter is the
* length of the value returned by the remote DIS Server.
* @param Value The second parameter is a pointer to the data returned by the remote DIS
* Server. @param PNP_ID_Data The final parameter is a pointer to store the parsed PnP
* ID data. @return This function returns a zero if successful or a negative
* return error code if an error occurs.
*/
BTPSAPI_DECLARATION int BTPSAPI DIS_Decode_PNP_ID(unsigned int ValueLength, Byte_t *Value, DIS_PNP_ID_Data_t *PNP_ID_Data);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_DIS_Decode_PNP_ID_t)(unsigned int ValueLength, Byte_t *Value, DIS_PNP_ID_Data_t *PNP_ID_Data);
#endif
#endif