Arduino Trinket / Attiny85 USB: можно прочитать состояние ВСЕХ клавиш?

Например, клавиатура USB является общим устройством в системе. Возможно несколько клавиатур, и они разделяют состояния num, scroll и capslock. Когда вы нажимаете capslock на клавиатуре # 1, клавиатура # 2 обнаружит это состояние.

Для эмулируемого устройства клавиатуры USB (с использованием библиотеки Trinket) вы можете проверить эти значения с помощью:

typedef struct { bool caps,num,scroll; } TKeyboardLEDState;
.....
TKeyboardLEDState usbGetKeyboardLedState()
{
uint8_t iState = TrinketHidCombo.getLEDstate();
TKeyboardLEDState tResult;

tResult.caps = (iState & (1<< KB_LED_CAPS));
tResult.num = (iState & (1<< KB_LED_NUM));
tResult.scroll = (iState & (1<< KB_LED_SCROLL));

return tResult;
}
.......

void loop()
{
TKeyboardLEDState recKeybLEDstate = usbGetKeyboardLedState();

if( recKeybLEDstate.caps )
{
// do something
}
}

Вопрос:

Поэтому мне интересно, могу ли я сделать это с ЛЮБЫМ ключом или это совершенно невозможно? Если нет, то почему нет? Если да, как я могу это сделать?

0

Решение

Когда вы нажимаете capslock на клавиатуре # 1, клавиатура # 2 обнаружит это состояние.

Это потому, что текущее состояние светодиода передается на все клавиатуры ОС. Но передается только состояние светодиода, а не состояние ключа.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector