/* Open a pipe of the low level driver.  */
USBH_StatusTypeDef USBH_LL_OpenPipe(USBH_HandleTypeDef *phost, uint8_t pipe_num, uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t ep_type, uint16_t mps)
/* Open a pipe of the low level driver.  */
USBH_StatusTypeDef USBH_LL_OpenPipe(USBH_HandleTypeDef *phost, uint8_t pipe_num, uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t ep_type, uint16_t mps)
{
    HAL_StatusTypeDef hal_status = HAL_OK;
    USBH_StatusTypeDef usb_status = USBH_OK;
    hal_status = HAL_HCD_HC_Init(static_cast<HCD_HandleTypeDef *>(phost->pData), pipe_num, epnum,
        dev_address, speed, ep_type, mps);
    usb_status = USBH_Get_USB_Status(hal_status);
    return usb_status;
}