void HID_CtrlSetupSetReport(void * pVoid)
{
	S_DRVUSB_DEVICE *psDevice = (S_DRVUSB_DEVICE *)((S_HID_DEVICE *)pVoid)->device;

	if(psDevice->au8Setup[3] == 1)
	{
        /* Report Type = input */

		// Trigger next Control Out DATA1 Transaction.
		_DRVUSB_SET_EP_TOG_BIT(1, FALSE);
		_DRVUSB_TRIG_EP(1, 0);

	}
	else if (psDevice->au8Setup[3] == 2)
	{
		_DRVUSB_SET_EP_TOG_BIT(1, FALSE);
		_DRVUSB_TRIG_EP(1, 0x00);

	}
	else if (psDevice->au8Setup[3] == 3)
	{
        /* Request Type = Feature */
		_DRVUSB_SET_EP_TOG_BIT(1, FALSE);
		_DRVUSB_TRIG_EP(1, 0x00);
	}
	else
	{
		// Not support. Reply STALL.                
		_HID_CLR_CTRL_READY_AND_TRIG_STALL();
	}
}
示例#2
0
void HID_CtrlSetupGetReport(void * pVoid)
{
    S_DRVUSB_DEVICE *psDevice = (S_DRVUSB_DEVICE *)((S_HID_DEVICE *)pVoid)->device;

    DBG_PRINTF("HID - Get Report");
    if (psDevice->au8Setup[3] == 3)
    {
        /* Request Type = Feature */
        const uint8_t au8Data[2] = {0x01, 0x02};

        gpu8UsbBuf = au8Data;
        gu32BytesInUsbBuf = 0;
        DrvUSB_DataIn(0, au8Data, 2);
    }
    else
    {
        DBG_PRINTF(" - Unknown\n");
        _HID_CLR_CTRL_READY_AND_TRIG_STALL();
    }
}
示例#3
0
// 21 09 02 03 02 00 03 00	 (Report ID = 0x02)
// 02(ID) 02(MODE) 78(contact ID)
//
void HID_CtrlSetupSetReport(void * pVoid)
{
    S_DRVUSB_DEVICE *psDevice = (S_DRVUSB_DEVICE *)((S_HID_DEVICE *)pVoid)->device;

    DBG_PRINTF("HID - Set Report");
    if (psDevice->au8Setup[3] == HID_RPT_TYPE_INPUT)
    {
        /* Report Type = input */
//		_DRVUSB_SET_EP_TOG_BIT(1,FALSE);
//		_DRVUSB_TRIG_EP(1, 0x00);
        DBG_PRINTF(" - Input\n");
    }
    else if (psDevice->au8Setup[3] == HID_RPT_TYPE_OUTPUT)
    {
        /* Report Type = Output */
//		_DRVUSB_SET_EP_TOG_BIT(1,FALSE);
//		_DRVUSB_TRIG_EP(1,0x00);
        DBG_PRINTF(" - Output\n");
    }
    else if (psDevice->au8Setup[3] == HID_RPT_TYPE_FEATURE)
    {
        /* Request Type = Feature */

        DrvUSB_DataOutTrigger(CTRL_EP_NUM, HID_MAX_PACKET_SIZE_EP0);

        DBG_PRINTF(" - Feature\n");
    }
    else
    {
        // Not support. Reply STALL.
        DBG_PRINTF(" - Unknown\n");

        _HID_CLR_CTRL_READY_AND_TRIG_STALL();
    }
    DBG_PRINTF("\n");
}