diff --git a/left/src/slave_protocol_handler.c b/left/src/slave_protocol_handler.c index 9cc71de..e8719ea 100644 --- a/left/src/slave_protocol_handler.c +++ b/left/src/slave_protocol_handler.c @@ -33,9 +33,8 @@ void SlaveProtocolHandler(void) uint8_t commandId = SlaveRxBuffer[0]; switch (commandId) { case SlaveCommand_GetKeyStates: - SlaveTxSize = KEYBOARD_MATRIX_COLS_NUM*KEYBOARD_MATRIX_ROWS_NUM; - BoolBytesToBits(keyMatrix.keyStates, SlaveTxBuffer, SlaveTxSize); -// memcpy(SlaveTxBuffer, keyMatrix.keyStates, SlaveTxSize); + SlaveTxSize = KEY_STATE_BUFFER_SIZE; + BoolBytesToBits(keyMatrix.keyStates, SlaveTxBuffer, LEFT_KEYBOARD_HALF_KEY_COUNT); break; case SlaveCommand_SetTestLed: SlaveTxSize = 0; diff --git a/left/src/slave_protocol_handler.h b/left/src/slave_protocol_handler.h index b773c23..d62519f 100644 --- a/left/src/slave_protocol_handler.h +++ b/left/src/slave_protocol_handler.h @@ -13,6 +13,9 @@ #define PROTOCOL_RESPONSE_SUCCESS 0 #define PROTOCOL_RESPONSE_GENERIC_ERROR 1 + #define LEFT_KEYBOARD_HALF_KEY_COUNT (KEYBOARD_MATRIX_COLS_NUM*KEYBOARD_MATRIX_ROWS_NUM) + #define KEY_STATE_BUFFER_SIZE (LEFT_KEYBOARD_HALF_KEY_COUNT/8 + 1) + // Variables: uint8_t SlaveRxBuffer[SLAVE_RX_BUFFER_SIZE];