/********************************************************************* * @fn glucCollCentral_processPasscode * * @brief Passcode callback. * * @param connHandle - connection handle * @param uiInputs - input passcode * @param uiOutputs - display passcode * * @return none */ static void glucCollCentral_processPasscode(uint16_t connHandle, uint8_t uiInputs, uint8_t uiOutputs) { uint32_t passcode; // Is the callback to get the passcode from or display it to the user? if (uiInputs != 0) { // Passcode must be entered by the user but use the default passcode for now passcode = DEFAULT_PASSCODE; } else { // Create random passcode passcode = Util_GetTRNG(); } passcode %= 1000000; // Display passcode to user if (uiOutputs != 0) { LCD_WRITE_STRING_VALUE("Passcode:", passcode, 10, LCD_PAGE4); } // Send passcode response GAPBondMgr_PasscodeRsp(connHandle, SUCCESS, passcode); }
/********************************************************************* * @fn glucCollCentralPasscodeCB * * @brief Passcode callback. * * @return none */ static void glucCollCentralPasscodeCB( uint8 *deviceAddr, uint16 connectionHandle, uint8 uiInputs, uint8 uiOutputs ) { #if (HAL_LCD == TRUE) uint32 passcode; uint8 str[7]; // Is the callback to get the passcode from or display it to the user? if ( uiInputs != 0 ) { // Passcode must be entered by the user but use the default passcode for now passcode = DEFAULT_PASSCODE; } else { // Create random passcode LL_Rand( ((uint8 *) &passcode), sizeof( uint32 )); } passcode %= 1000000; // Display passcode to user if ( uiOutputs != 0 ) { LCD_WRITE_STRING( "Passcode:", HAL_LCD_LINE_1 ); LCD_WRITE_STRING( (char *) _ltoa(passcode, str, 10), HAL_LCD_LINE_2 ); } // Send passcode response GAPBondMgr_PasscodeRsp( connectionHandle, SUCCESS, passcode ); #endif }
/********************************************************************* * @fn hidDevPasscodeCB * * @brief Passcode callback. * * @param deviceAddr - address of device to pair with, and could be either public or random. * @param connectionHandle - connection handle * @param uiInputs - pairing User Interface Inputs - Ask user to input passcode * @param uiOutputs - pairing User Interface Outputs - Display passcode * * @return none */ static void hidDevPasscodeCB( uint8 *deviceAddr, uint16 connectionHandle, uint8 uiInputs, uint8 uiOutputs ) { if ( pHidDevCB && pHidDevCB->passcodeCB ) { // execute HID app passcode callback (*pHidDevCB->passcodeCB)( deviceAddr, connectionHandle, uiInputs, uiOutputs ); } else { // Send passcode response GAPBondMgr_PasscodeRsp( connectionHandle, SUCCESS, 0 ); } }
/********************************************************************* * @fn controlBLECentralPasscodeCB * * @brief Passcode callback. * * @return none */ static void controlBLECentralPasscodeCB( uint8 *deviceAddr, uint16 connectionHandle, uint8 uiInputs, uint8 uiOutputs ) { #if (HAL_LCD == TRUE) uint32 passcode; uint8 str[7]; // Create random passcode LL_Rand( ((uint8 *) &passcode), sizeof( uint32 )); passcode %= 1000000; // Display passcode to user if ( uiOutputs != 0 ) { LCD_WRITE_STRING( "Passcode:", HAL_LCD_LINE_1 ); LCD_WRITE_STRING( (char *) _ltoa(passcode, str, 10), HAL_LCD_LINE_2 ); } // Send passcode response GAPBondMgr_PasscodeRsp( connectionHandle, SUCCESS, passcode ); #endif }
/********************************************************************* * @fn timeAppPasscodeCB * * @brief Passcode callback. * * @return none */ static void timeAppPasscodeCB( uint8 *deviceAddr, uint16 connectionHandle, uint8 uiInputs, uint8 uiOutputs ) { // Send passcode response GAPBondMgr_PasscodeRsp( connectionHandle, SUCCESS, 0 ); }
/********************************************************************* * @fn HidDev_PasscodeRsp * * @brief Respond to a passcode request. * * @param status - SUCCESS if passcode is available, otherwise * see @ref SMP_PAIRING_FAILED_DEFINES. * @param passcode - integer value containing the passcode. * * @return none */ void HidDev_PasscodeRsp( uint8 status, uint32 passcode ) { // Send passcode response GAPBondMgr_PasscodeRsp( gapConnHandle, status, passcode ); }
/*--------------------------------------------------------------------------- * Passcode callback, will be called during pairing. * The passcode is set to "0". *-------------------------------------------------------------------------*/ static void passcodeCB( uint8 *deviceAddr, uint16 connectionHandle, uint8 uiInputs, uint8 uiOutputs ) { GAPBondMgr_PasscodeRsp( connectionHandle, SUCCESS, 0 ); }