Report size=>改63
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x00, // USAGE (0)
0xA1, 0x01, // COLLECTION (Application)
0x85, 0x01, // Report ID (1)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0xFF, // LOGICAL_MAXIMUM (255)
0x19, 0x01, // USAGE_MINIMUM (1)
0x29, 0x08, // USAGE_MAXIMUM (8)
0x95, 0x3f, // REPORT_COUNT
0x75, 0x08, // REPORT_SIZE (8)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x19, 0x01, // USAGE_MINIMUM (1)
0x29, 0x08, // USAGE_MAXIMUM (8)
0x91, 0x02, // OUTPUT (Data,Var,Abs)
0x06, 0x00, 0xFF, // Usage Page (Vendor-Defined 162)
0x09, 0x01, // Usage (Vendor-Defined 1)
0xA1, 0x01, // COLLECTION (Application)
0x85, 0x02, // Report ID (2)
0x09, 0x01, // Usage (Vendor-Defined 1)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0xFF, // LOGICAL_MAXIMUM (-1)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x0F, // REPORT_COUNT (15)
0xB1, 0x02, // Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit)
0xC0, // END_COLLECTION
0xC0, // END_COLLECTION
//=================================================
Fw送收端點還是要64 byte
64 byte=>1 byte id+ 63 byte data
BOOL ReadFile(unsigned char *pcBuffer, size_t szMaxLen, DWORD *pdwLength, DWORD dwMilliseconds)
{
BOOL bRet;
bRet = m_hidIO.ReadFile(m_acBuffer, 64, pdwLength, dwMilliseconds); =>64 byte id+ 63 data
// (*pdwLength)--;
memcpy(pcBuffer, m_acBuffer, *pdwLength);
return bRet;
}
BOOL WriteFile(unsigned char *pcBuffer, DWORD dwLen, DWORD *pdwLength, DWORD dwMilliseconds)
{
/* Set new package index value */
DWORD dwCmdLength = dwLen;
if(dwCmdLength > sizeof(m_acBuffer) - 1)
dwCmdLength = sizeof(m_acBuffer) - 1;
memset(m_acBuffer, 0xCC, sizeof(m_acBuffer));
m_acBuffer[0] = 0x01; //Always 0x00
memcpy(m_acBuffer+1 , pcBuffer, dwCmdLength);
BOOL bRet = m_hidIO.WriteFile(m_acBuffer, 64, pdwLength, dwMilliseconds); =>64 byte id+ 63 data
// (*pdwLength)--;
if(bRet)
{
*pdwLength = *pdwLength - 1;
}
return bRet;
}
};
|