У меня есть «таинственный ящик», о котором я очень мало знаюМне нужно, чтобы Leonardo работал с коробкой, пока она находится в настройке BIOS.Я загрузил проект USBSerPassThruLine с GitHub (https://github.com/gdsports/usb-metamorph/tree/master/USBSerPassThruLine), и, похоже, он работает со всеми настройками BIOS, известными человечеству, за исключением моего специального окна.
Каждое нажатие клавиши сопровождается неявным SHIFT. Поэтому, если явызову Keyboard.press ('a') я получаю 'A'. Или для Keyboard.press ('3') я получаю '#'.
Я пытался быть как можно более прямым с моим собственным простымНажмите ():
void sendReport(KeyReport* keys)
{
HID().SendReport(2,keys,sizeof(KeyReport));
}
KeyReport rawdata;
size_t press()
{
uint8_t i;
memset(&rawdata, 0, sizeof(KeyReport));
//#define KEY_MOD_LCTRL 0x01
//#define KEY_MOD_LSHIFT 0x02
//#define KEY_MOD_LALT 0x04
//#define KEY_MOD_LMETA 0x08
//#define KEY_MOD_RCTRL 0x10
//#define KEY_MOD_RSHIFT 0x20
//#define KEY_MOD_RALT 0x40
//#define KEY_MOD_RMETA 0x80
// rawdata.modifiers = KEY_MOD_RSHIFT;
for (i=0; i<6; i++) {
rawdata.keys[i] = KEY_1+i;
}
sendReport(&rawdata);
}
Все безрезультатно.
Я все еще получаю: '! @ # $% ^' (вместо '123456')
Любые идеи?
Кстати, задушевная штука в том, что эта настройка BIOS работает с любой USB-клавиатурой, которую я подключаю к коробке. Есть какой-то более старый стандарт, который может использовать эта коробка?