/*********************************************************************
 * @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);
}
Пример #2
0
/*********************************************************************
 * @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
}
Пример #3
0
/*********************************************************************
 * @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 );
  }
}
Пример #4
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
}
Пример #5
0
/*********************************************************************
 * @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 );
}
Пример #6
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 );
}
Пример #7
0
/*---------------------------------------------------------------------------
* 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 );
}