Make the left half send only as many bytes of key state information as required.

This commit is contained in:
László Monda
2017-05-31 02:24:55 +02:00
parent 2172b58a00
commit 57319489d2
2 changed files with 5 additions and 3 deletions

View File

@@ -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;

View File

@@ -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];