48 lines
1.2 KiB
C
48 lines
1.2 KiB
C
#ifndef __SLAVE_DRIVER_UHK_MODULE_H__
|
|
#define __SLAVE_DRIVER_UHK_MODULE_H__
|
|
|
|
// Includes:
|
|
|
|
#include "fsl_common.h"
|
|
#include "crc16.h"
|
|
|
|
// Macros:
|
|
|
|
#define UHK_MODULE_MAX_COUNT 3
|
|
#define KEY_STATE_SIZE (LEFT_KEYBOARD_HALF_KEY_COUNT/8 + 1)
|
|
#define KEY_STATE_BUFFER_SIZE (KEY_STATE_SIZE + CRC16_HASH_LENGTH)
|
|
|
|
// Typedefs:
|
|
|
|
typedef enum {
|
|
UhkModuleId_LeftKeyboardHalf,
|
|
UhkModuleId_LeftAddon,
|
|
UhkModuleId_RightAddon,
|
|
} uhk_module_id_t;
|
|
|
|
typedef enum {
|
|
UhkModulePhase_SendKeystatesRequestCommand,
|
|
UhkModulePhase_ReceiveKeystates,
|
|
UhkModulePhase_SendPwmBrightnessCommand,
|
|
UhkModulePhase_SendTestLedCommand,
|
|
UhkModulePhase_SendDisableKeyMatrixScanState,
|
|
UhkModulePhase_SendLedPwmBrightness,
|
|
UhkModulePhase_DisableLedSdb,
|
|
} uhk_module_phase_t;
|
|
|
|
typedef struct {
|
|
uint8_t ledPwmBrightness;
|
|
bool isTestLedOn;
|
|
} uhk_module_state_t;
|
|
|
|
// Variables:
|
|
|
|
extern uhk_module_state_t UhkModuleStates[UHK_MODULE_MAX_COUNT];
|
|
|
|
// Functions:
|
|
|
|
extern void UhkModuleSlaveDriver_Init(uint8_t uhkModuleId);
|
|
extern void UhkModuleSlaveDriver_Update(uint8_t uhkModuleId);
|
|
|
|
#endif
|