Files
discoverpixy/discovery/src/usbh_usr.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)
{
}