234 lines
4.6 KiB
C
234 lines
4.6 KiB
C
#include "usbh_usr.h"
|
|
#include <stdbool.h>
|
|
#include <string.h>
|
|
|
|
|
|
USBH_Usr_cb_TypeDef USR_Callbacks =
|
|
{
|
|
USBH_USR_Init,
|
|
USBH_USR_DeInit,
|
|
USBH_USR_DeviceAttached,
|
|
USBH_USR_ResetDevice,
|
|
USBH_USR_DeviceDisconnected,
|
|
USBH_USR_OverCurrentDetected,
|
|
USBH_USR_DeviceSpeedDetected,
|
|
USBH_USR_Device_DescAvailable,
|
|
USBH_USR_DeviceAddressAssigned,
|
|
USBH_USR_Configuration_DescAvailable,
|
|
USBH_USR_Manufacturer_String,
|
|
USBH_USR_Product_String,
|
|
USBH_USR_SerialNum_String,
|
|
USBH_USR_EnumerationDone,
|
|
USBH_USR_UserInput,
|
|
USBH_USR_MSC_Application,
|
|
USBH_USR_DeviceNotSupported,
|
|
USBH_USR_UnrecoveredError
|
|
};
|
|
|
|
|
|
/* Private function prototypes -----------------------------------------------*/
|
|
/* Private functions ---------------------------------------------------------*/
|
|
bool manufacturer_ok;
|
|
bool product_ok;
|
|
bool serial_ok;
|
|
|
|
/**
|
|
* @brief USBH_USR_Init
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_Init(void)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_DeviceAttached
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_DeviceAttached(void)
|
|
{
|
|
manufacturer_ok=false;
|
|
product_ok= false;
|
|
serial_ok=false;
|
|
|
|
|
|
STM_EVAL_LEDOff(LED5);
|
|
STM_EVAL_LEDOff(LED3);
|
|
STM_EVAL_LEDOn(LED4);
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_UnrecoveredError
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_UnrecoveredError (void)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_DisconnectEvent
|
|
* Device disconnect event
|
|
* @param None
|
|
* @retval Staus
|
|
*/
|
|
void USBH_USR_DeviceDisconnected (void)
|
|
{
|
|
/* Red Led on if the USB Key is removed */
|
|
STM_EVAL_LEDOn(LED5);
|
|
STM_EVAL_LEDOff(LED4);
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_ResetUSBDevice
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_ResetDevice(void)
|
|
{
|
|
/* callback for USB-Reset */
|
|
}
|
|
|
|
|
|
/**
|
|
* @brief USBH_USR_DeviceSpeedDetected
|
|
* Displays the message on LCD for device speed
|
|
* @param Device speed:
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_DeviceSpeedDetected(uint8_t DeviceSpeed)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_Device_DescAvailable
|
|
* @param device descriptor
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_Device_DescAvailable(void *DeviceDesc)
|
|
{
|
|
/* callback for device descriptor */
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_DeviceAddressAssigned
|
|
* USB device is successfully assigned the Address
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_DeviceAddressAssigned(void)
|
|
{
|
|
/* callback for device successfully assigned the Address */
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_Conf_Desc
|
|
* @param Configuration descriptor
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_Configuration_DescAvailable(USBH_CfgDesc_TypeDef * cfgDesc,
|
|
USBH_InterfaceDesc_TypeDef *itfDesc,
|
|
USBH_EpDesc_TypeDef *epDesc)
|
|
{
|
|
/* callback for configuration descriptor */
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_Manufacturer_String
|
|
* @param Manufacturer String
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_Manufacturer_String(void *ManufacturerString)
|
|
{
|
|
manufacturer_ok = strcmp((char*)ManufacturerString,"Charmed Labs") == 0;
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_Product_String
|
|
* @param Product String
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_Product_String(void *ProductString)
|
|
{
|
|
product_ok = strcmp((char*)ProductString,"Pixy") == 0;
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_SerialNum_String
|
|
* @param SerialNum_String
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_SerialNum_String(void *SerialNumString)
|
|
{
|
|
serial_ok = strcmp((char*)SerialNumString,"DEMO 0.0") == 0;
|
|
}
|
|
|
|
/**
|
|
* @brief EnumerationDone
|
|
* User response request is displayed to ask application jump to class
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_EnumerationDone(void)
|
|
{
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_DeviceNotSupported
|
|
* Device is not supported
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_DeviceNotSupported(void)
|
|
{
|
|
}
|
|
|
|
|
|
/**
|
|
* @brief USBH_USR_UserInput
|
|
* User Action for application state entry
|
|
* @param None
|
|
* @retval USBH_USR_Status : User response for key button
|
|
*/
|
|
USBH_USR_Status USBH_USR_UserInput(void)
|
|
{
|
|
if(product_ok&&manufacturer_ok&&serial_ok) {
|
|
return USBH_USR_RESP_OK;
|
|
}
|
|
return USBH_USR_NO_RESP;
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_OverCurrentDetected
|
|
* Over Current Detected on VBUS
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_OverCurrentDetected (void)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_MSC_Application
|
|
* @param None
|
|
* @retval Staus
|
|
*/
|
|
int USBH_USR_MSC_Application(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
/**
|
|
* @brief USBH_USR_DeInit
|
|
* Deint User state and associated variables
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
void USBH_USR_DeInit(void)
|
|
{
|
|
|
|
}
|
|
|