diff --git a/right/src/test_mode.h b/right/src/test_mode.h deleted file mode 100644 index be57a37..0000000 --- a/right/src/test_mode.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __TEST_MODE_H__ -#define __TEST_MODE_H__ - -// Functions: - - void TestMode_Activate(void); - -#endif diff --git a/right/src/test_mode.c b/right/src/test_switches.c similarity index 62% rename from right/src/test_mode.c rename to right/src/test_switches.c index 8871ec1..f5958ad 100644 --- a/right/src/test_mode.c +++ b/right/src/test_switches.c @@ -1,110 +1,112 @@ -#include "test_mode.h" +#include "test_switches.h" #include "led_display.h" #include "key_action.h" #include "keymap.h" +bool TestSwitches = false; + static const key_action_t TestKeymap[1][2][MAX_KEY_COUNT_PER_MODULE] = { // Base layer { // Right keyboard half { // Row 1 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_7_AND_AMPERSAND }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_8_AND_ASTERISK }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_EQUAL_AND_PLUS }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_BACKSPACE }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_7_AND_AMPERSAND } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_8_AND_ASTERISK } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_EQUAL_AND_PLUS } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_BACKSPACE } }, // Row 2 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_U }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_I }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_O }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_P }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_BACKSLASH_AND_PIPE }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_Y }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_U } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_I } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_O } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_P } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_BACKSLASH_AND_PIPE } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_Y } }, // Row 3 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_J }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_K }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_L }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_SEMICOLON_AND_COLON }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_PLUS }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_H }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_J } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_K } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_L } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_SEMICOLON_AND_COLON } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_PLUS } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_H } }, // Row 4 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_N }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_M }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_RIGHT_SHIFT }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_N } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_M } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_RIGHT_SHIFT } }, { .type = KeyActionType_None }, // Row 5 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_ASTERISK }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_7_AND_HOME }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_ASTERISK } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_7_AND_HOME } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT } }, }, // Left keyboard half { // Row 1 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_1_AND_EXCLAMATION }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_2_AND_AT }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_3_AND_HASHMARK }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_4_AND_DOLLAR }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_5_AND_PERCENTAGE }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_6_AND_CARET }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_1_AND_EXCLAMATION } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_2_AND_AT } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_3_AND_HASHMARK } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_4_AND_DOLLAR } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_5_AND_PERCENTAGE } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_6_AND_CARET } }, // Row 2 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_ESCAPE }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_Q }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_W }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_E }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_R }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_ESCAPE } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_Q } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_W } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_E } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_R } }, { .type = KeyActionType_None }, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_T }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_T } }, // Row 3 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_MINUS }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_A }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_S }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_D }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_F }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_MINUS } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_A } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_S } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_D } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_F } }, { .type = KeyActionType_None }, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_G }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_G } }, // Row 4 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_LEFT_SHIFT }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_Z }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_X }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_C }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_V }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_B }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_LEFT_SHIFT } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_Z } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_X } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_C } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_V } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_B } }, // Row 5 - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_1_AND_END }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_SLASH }}, - { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_5 }}, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_1_AND_END } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_SLASH } }, + { .type = KeyActionType_Keystroke, .keystroke = { .scancode = HID_KEYBOARD_SC_KEYPAD_5 } }, { .type = KeyActionType_None }, } } }; -void TestMode_Activate(void) +void TestSwitches_Activate(void) { memcpy(&CurrentKeymap, &TestKeymap, sizeof TestKeymap); LedDisplay_SetText(3, "TES"); diff --git a/right/src/test_switches.h b/right/src/test_switches.h new file mode 100644 index 0000000..20b9743 --- /dev/null +++ b/right/src/test_switches.h @@ -0,0 +1,16 @@ +#ifndef __TEST_MODE_H__ +#define __TEST_MODE_H__ + +// Includes: + + #include + +// Functions: + + void TestSwitches_Activate(void); + +// Variables: + + extern bool TestSwitches; + +#endif diff --git a/right/src/usb_commands/usb_command_get_variable.c b/right/src/usb_commands/usb_command_get_variable.c new file mode 100644 index 0000000..68df5b8 --- /dev/null +++ b/right/src/usb_commands/usb_command_get_variable.c @@ -0,0 +1,25 @@ +#include "usb_protocol_handler.h" +#include "usb_commands/usb_command_get_variable.h" +#include "key_matrix.h" +#include "test_switches.h" +#include "usb_report_updater.h" + +void UsbCommand_GetVariable(void) +{ + usb_variable_id_t variableId = GetUsbRxBufferUint8(1); + + switch (variableId) { + case UsbVariable_TestSwitches: + SetUsbTxBufferUint8(1, TestSwitches); + break; + case UsbVariable_TestUsbStack: + SetUsbTxBufferUint8(1, TestUsbStack); + break; + case UsbVariable_DebounceTimePress: + SetUsbTxBufferUint8(1, DebounceTimePress); + break; + case UsbVariable_DebounceTimeRelease: + SetUsbTxBufferUint8(1, DebounceTimeRelease); + break; + } +} diff --git a/right/src/usb_commands/usb_command_get_variable.h b/right/src/usb_commands/usb_command_get_variable.h new file mode 100644 index 0000000..5e5992a --- /dev/null +++ b/right/src/usb_commands/usb_command_get_variable.h @@ -0,0 +1,8 @@ +#ifndef __USB_COMMAND_GET_VARIABLE_H__ +#define __USB_COMMAND_GET_VARIABLE_H__ + +// Functions: + + void UsbCommand_GetVariable(void); + +#endif diff --git a/right/src/usb_commands/usb_command_set_variable.c b/right/src/usb_commands/usb_command_set_variable.c new file mode 100644 index 0000000..ab31554 --- /dev/null +++ b/right/src/usb_commands/usb_command_set_variable.c @@ -0,0 +1,28 @@ +#include "usb_protocol_handler.h" +#include "usb_commands/usb_command_set_variable.h" +#include "key_matrix.h" +#include "test_switches.h" +#include "usb_report_updater.h" + +void UsbCommand_SetVariable(void) +{ + usb_variable_id_t variableId = GetUsbRxBufferUint8(1); + + switch (variableId) { + case UsbVariable_TestSwitches: + if (GetUsbRxBufferUint8(2)) { + TestSwitches = true; + TestSwitches_Activate(); + } + break; + case UsbVariable_TestUsbStack: + TestUsbStack = GetUsbRxBufferUint8(2); + break; + case UsbVariable_DebounceTimePress: + DebounceTimePress = GetUsbRxBufferUint8(2); + break; + case UsbVariable_DebounceTimeRelease: + DebounceTimeRelease = GetUsbRxBufferUint8(2); + break; + } +} diff --git a/right/src/usb_commands/usb_command_set_variable.h b/right/src/usb_commands/usb_command_set_variable.h new file mode 100644 index 0000000..e9b6121 --- /dev/null +++ b/right/src/usb_commands/usb_command_set_variable.h @@ -0,0 +1,8 @@ +#ifndef __USB_COMMAND_SET_VARIABLE_H__ +#define __USB_COMMAND_SET_VARIABLE_H__ + +// Functions: + + void UsbCommand_SetVariable(void); + +#endif diff --git a/right/src/usb_commands/usb_command_switch_keymap.c b/right/src/usb_commands/usb_command_switch_keymap.c index a213b6c..f8e8475 100644 --- a/right/src/usb_commands/usb_command_switch_keymap.c +++ b/right/src/usb_commands/usb_command_switch_keymap.c @@ -1,7 +1,6 @@ #include "usb_protocol_handler.h" #include "usb_commands/usb_command_switch_keymap.h" #include "keymap.h" -#include "test_mode.h" void UsbCommand_SwitchKeymap(void) { @@ -10,8 +9,6 @@ void UsbCommand_SwitchKeymap(void) if (keymapLength > KEYMAP_ABBREVIATION_LENGTH) { SetUsbTxBufferUint8(0, UsbStatusCode_SwitchKeymap_InvalidAbbreviationLength); - } else if (keymapLength == 1 && keymapAbbrev[0] == 1) { - TestMode_Activate(); } if (!SwitchKeymapByAbbreviation(keymapLength, keymapAbbrev)) { diff --git a/right/src/usb_protocol_handler.c b/right/src/usb_protocol_handler.c index 20b23ed..80da518 100644 --- a/right/src/usb_protocol_handler.c +++ b/right/src/usb_protocol_handler.c @@ -17,6 +17,8 @@ #include "usb_commands/usb_command_get_slave_i2c_errors.h" #include "usb_commands/usb_command_set_i2c_baud_rate.h" #include "usb_commands/usb_command_switch_keymap.h" +#include "usb_commands/usb_command_get_variable.h" +#include "usb_commands/usb_command_set_variable.h" void UsbProtocolHandler(void) { @@ -77,6 +79,12 @@ void UsbProtocolHandler(void) case UsbCommandId_SwitchKeymap: UsbCommand_SwitchKeymap(); break; + case UsbCommandId_GetVariable: + UsbCommand_GetVariable(); + break; + case UsbCommandId_SetVariable: + UsbCommand_SetVariable(); + break; default: SetUsbTxBufferUint8(0, UsbStatusCode_InvalidCommand); break; diff --git a/right/src/usb_protocol_handler.h b/right/src/usb_protocol_handler.h index 7f48f29..48cc983 100644 --- a/right/src/usb_protocol_handler.h +++ b/right/src/usb_protocol_handler.h @@ -34,8 +34,17 @@ UsbCommandId_GetSlaveI2cErrors = 0x0f, UsbCommandId_SetI2cBaudRate = 0x10, UsbCommandId_SwitchKeymap = 0x11, + UsbCommandId_GetVariable = 0x12, + UsbCommandId_SetVariable = 0x13, } usb_command_id_t; + typedef enum { + UsbVariable_TestSwitches, + UsbVariable_TestUsbStack, + UsbVariable_DebounceTimePress, + UsbVariable_DebounceTimeRelease + } usb_variable_id_t; + typedef enum { UsbStatusCode_Success = 0, UsbStatusCode_InvalidCommand = 1, diff --git a/right/src/usb_report_updater.c b/right/src/usb_report_updater.c index 5ebc64f..dd7d15d 100644 --- a/right/src/usb_report_updater.c +++ b/right/src/usb_report_updater.c @@ -24,6 +24,7 @@ uint16_t DoubleTapSwitchLayerTimeout = 150; static uint16_t DoubleTapSwitchLayerReleaseTimeout = 100; static bool activeMouseStates[ACTIVE_MOUSE_STATES_COUNT]; +bool TestUsbStack = false; volatile uint8_t UsbReportUpdateSemaphore = 0; @@ -322,18 +323,17 @@ static void updateActiveUsbReports(void) bool layerGotReleased = previousLayer != LayerId_Base && activeLayer == LayerId_Base; LedDisplay_SetLayer(activeLayer); -#if 0 // Used to toggle key presses at the maximum rate - this was used to reproduce: https://github.com/UltimateHackingKeyboard/firmware/issues/122 - static bool simulateKeypresses = false; + static bool isEven = false; static bool isEvenMedia = false; static uint32_t mediaCounter = 0; key_state_t *testKeyState = &KeyStates[SlotId_LeftKeyboardHalf][0]; if (!testKeyState->previous && testKeyState->current && activeLayer == LayerId_Fn) { - simulateKeypresses = !simulateKeypresses; + TestUsbStack = !TestUsbStack; } - if (simulateKeypresses) { + if (TestUsbStack) { isEven = !isEven; ActiveUsbBasicKeyboardReport->scancodes[basicScancodeIndex++] = isEven ? HID_KEYBOARD_SC_A : HID_KEYBOARD_SC_BACKSPACE; if (++mediaCounter % 200 == 0) { @@ -342,7 +342,6 @@ static void updateActiveUsbReports(void) } MouseMoveState.xOut = isEven ? -1 : 1; } -#endif for (uint8_t slotId=0; slotId