TMC32_QJB/HID/HID_request.c

111 lines
2.7 KiB
C
Raw Normal View History

2026-04-30 08:23:12 +00:00
/********************************************************************************
* Copyright (c) 2016, Beijing Tongfang Microelectroics Co., Ltd.
* All rights reserved.
* Module: HID class response
* Author: Yang Song
* Version: V1.0
* History:
* 2016-09-22 Original version
********************************************************************************/
#include "global.h"
u8 g_bCapsLock=CAPSLOCKOFF; //0<><30> û<><C3BB><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u8 g_bNumLock=NUMLOCKOFF; //0<><30> û<><C3BB><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/***************************************************************************
* Function: hidSendReportDscrpt
* Description:HID Data processing
* Input: NULL
* Return: NULL
* Other: NULL
**************************************************************************/
void hidSendReportDscrpt(void)
{
if(g_bUsbDevType == USBDEVTYPE_HIDPOS)
{
Memcpy(USBbuf,(u8 *)usbHidPosReportDescriptor,HID_POS_RPT_LEN);
usbEpnTxAll(0,USBbuf,HID_POS_RPT_LEN);
}
else if(g_bUsbDevType == USBDEVTYPE_HIDKBD)
{
Memcpy(USBbuf,(u8 *)usbHidKbdReportDescriptor,HID_KBD_RPT_LEN);
usbEpnTxAll(0,USBbuf,HID_KBD_RPT_LEN);
}
}
/***************************************************************************
* Function: Hid_SendReportDscrpt
* Description:HID Data processing
* Input: NULL
* Return: NULL
* Other: NULL
**************************************************************************/
void hidReportRequest(u8 req)
{
switch(req)
{
case SET_REPORT : hidSetReportRequest(); break;
case GET_REPORT : hidGetReportRequest(); break;
default : break;
}
}
/***************************************************************************
* Function: Hid_SendReportDscrpt
* Description:HID Data processing
* Input: NULL
* Return: NULL
* Other: NULL
**************************************************************************/
void hidGetReportRequest(void)
{
}
/***************************************************************************
* Function: fSet_Report
* Description:HID Data processing
* Input: NULL
* Return: NULL
* Other: NULL
**************************************************************************/
void hidSetReportRequest(void)
{
if(g_bUsbDevType == USBDEVTYPE_HIDKBD)
{
if((st_usbDeviceRequest.wValue & 0xFFFF) == 0x200)
{
while(!EP0STSCXDPKT);
if(g_abUsbEp0Buf[0] & 0x02) //<2F><>д
{
g_bCapsLock = CAPSLOCKON;
}
else //Сд
{
g_bCapsLock = CAPSLOCKOFF;
}
if(g_abUsbEp0Buf[0] & 0x01) //numlock
{
g_bNumLock = NUMLOCKON;
}
else
{
g_bNumLock = NUMLOCKOFF;
}
return;
}
}
}
//<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SendNumLock(void)
{
memset(g_abUsbEp2Buf,0,8);
g_abUsbEp2Buf[2] = 0x53;
usbEpnTxAll(2,g_abUsbEp2Buf,8);
g_abUsbEp2Buf[2] = 0x00;
usbEpnTxAll(2,g_abUsbEp2Buf,8);
}