Skip to content

Commit b9c3fcd

Browse files
committed
add HID descriptor lenght to iSerial
1 parent 4a550a3 commit b9c3fcd

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

Diff for: hardware/arduino/avr/cores/arduino/PluggableUSB.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ static u8 modules_count = 0;
3535

3636
static PUSBListNode* rootNode = NULL;
3737

38-
char _iSerialNum[2*MAX_MODULES] = {0};
38+
static char _iSerialNum[5*MAX_MODULES] = {0};
3939

4040
int PUSB_GetInterface(u8* interfaceNum)
4141
{
@@ -62,10 +62,11 @@ int PUSB_GetDescriptor(int8_t t)
6262
char* PUSB_GetShortName()
6363
{
6464
char* ret = 0;
65+
memset(_iSerialNum, 0, sizeof(_iSerialNum));
6566
PUSBListNode* node = rootNode;
6667
for (u8 i=0; i<modules_count; i++) {
6768
ret = node->cb->getShortName();
68-
memcpy(&_iSerialNum[i*2], ret, 2);
69+
memcpy(&_iSerialNum[strlen(_iSerialNum)], ret, strlen(ret));
6970
node = node->next;
7071
}
7172
return _iSerialNum;

Diff for: hardware/arduino/avr/libraries/HID/HID.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ int HID_GetDescriptor(int8_t t)
8181

8282
char* HID_GetShortName()
8383
{
84-
static char* name = "HI";
84+
static char name[5];
85+
char num[3];
86+
memcpy(name, "HI", 2);
87+
itoa(sizeof_hidReportDescriptor, num, 10);
88+
memcpy(&name[2], num, 3);
8589
return name;
8690
}
8791

0 commit comments

Comments
 (0)