3 Commits

10 changed files with 19 additions and 10 deletions

View File

@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to the [UHK Versioning](VERSIONING.md) conventions. and this project adheres to the [UHK Versioning](VERSIONING.md) conventions.
## [8.2.3] - 2018-05-15
Device Protocol: 4.3.0 | Module Protocol: 4.0.0 | User Config: 4.0.1 | Hardware Config: 1.0.0
- Don't switch keymaps instead of playing macros.
- Make saving the user configuration faster by only writing the part of the EEPROM which actually contains the user configuration.
## [8.2.2] - 2018-05-09 ## [8.2.2] - 2018-05-09
Device Protocol: 4.3.0 | Module Protocol: 4.0.0 | User Config: 4.0.**1** | Hardware Config: 1.0.0 Device Protocol: 4.3.0 | Module Protocol: 4.0.0 | User Config: 4.0.**1** | Hardware Config: 1.0.0

View File

@@ -6,6 +6,7 @@ static uint8_t hardwareConfig[HARDWARE_CONFIG_SIZE];
static uint8_t ATTR_DATA2 stagingUserConfig[USER_CONFIG_SIZE]; static uint8_t ATTR_DATA2 stagingUserConfig[USER_CONFIG_SIZE];
static uint8_t validatedUserConfig[USER_CONFIG_SIZE]; static uint8_t validatedUserConfig[USER_CONFIG_SIZE];
uint16_t ValidatedUserConfigLength;
config_buffer_t HardwareConfigBuffer = { hardwareConfig }; config_buffer_t HardwareConfigBuffer = { hardwareConfig };
config_buffer_t StagingUserConfigBuffer = { stagingUserConfig }; config_buffer_t StagingUserConfigBuffer = { stagingUserConfig };
config_buffer_t ValidatedUserConfigBuffer = { validatedUserConfig }; config_buffer_t ValidatedUserConfigBuffer = { validatedUserConfig };

View File

@@ -17,6 +17,7 @@
// Variables: // Variables:
extern bool ParserRunDry; extern bool ParserRunDry;
extern uint16_t ValidatedUserConfigLength;
extern config_buffer_t HardwareConfigBuffer; extern config_buffer_t HardwareConfigBuffer;
extern config_buffer_t StagingUserConfigBuffer; extern config_buffer_t StagingUserConfigBuffer;
extern config_buffer_t ValidatedUserConfigBuffer; extern config_buffer_t ValidatedUserConfigBuffer;

View File

@@ -51,7 +51,6 @@ parser_error_t ParseConfig(config_buffer_t *buffer)
const char *deviceName = ReadString(buffer, &len); const char *deviceName = ReadString(buffer, &len);
uint16_t doubleTapSwitchLayerTimeout = ReadUInt16(buffer); uint16_t doubleTapSwitchLayerTimeout = ReadUInt16(buffer);
(void)userConfigLength;
(void)dataModelMajorVersion; (void)dataModelMajorVersion;
(void)dataModelMinorVersion; (void)dataModelMinorVersion;
(void)dataModelPatchVersion; (void)dataModelPatchVersion;
@@ -141,6 +140,8 @@ parser_error_t ParseConfig(config_buffer_t *buffer)
// Update LED brightnesses and reinitialize LED drivers // Update LED brightnesses and reinitialize LED drivers
ValidatedUserConfigLength = userConfigLength;
IconsAndLayerTextsBrightness = iconsAndLayerTextsBrightness; IconsAndLayerTextsBrightness = iconsAndLayerTextsBrightness;
AlphanumericSegmentsBrightness = alphanumericSegmentsBrightness; AlphanumericSegmentsBrightness = alphanumericSegmentsBrightness;
KeyBacklightBrightness = keyBacklightBrightness; KeyBacklightBrightness = keyBacklightBrightness;

View File

@@ -75,7 +75,7 @@ static parser_error_t parsePlayMacroAction(key_action_t *keyAction, config_buffe
if (macroIndex >= tempMacroCount) { if (macroIndex >= tempMacroCount) {
return ParserError_InvalidSerializedPlayMacroAction; return ParserError_InvalidSerializedPlayMacroAction;
} }
keyAction->type = KeyActionType_SwitchKeymap; keyAction->type = KeyActionType_PlayMacro;
keyAction->playMacro.macroId = macroIndex; keyAction->playMacro.macroId = macroIndex;
return ParserError_Success; return ParserError_Success;
} }
@@ -196,4 +196,3 @@ parser_error_t ParseKeymap(config_buffer_t *buffer, uint8_t keymapIdx, uint8_t k
} }
return ParserError_Success; return ParserError_Success;
} }

View File

@@ -94,14 +94,14 @@ void EEPROM_Init(void)
I2C_MasterTransferCreateHandle(I2C_EEPROM_BUS_BASEADDR, &i2cHandle, i2cCallback, NULL); I2C_MasterTransferCreateHandle(I2C_EEPROM_BUS_BASEADDR, &i2cHandle, i2cCallback, NULL);
} }
status_t EEPROM_LaunchTransfer(eeprom_operation_t operation, config_buffer_id_t config_buffer_id, void (*successCallback)) status_t EEPROM_LaunchTransfer(eeprom_operation_t operation, config_buffer_id_t configBufferId, void (*successCallback))
{ {
if (IsEepromBusy) { if (IsEepromBusy) {
return kStatus_I2C_Busy; return kStatus_I2C_Busy;
} }
CurrentEepromOperation = operation; CurrentEepromOperation = operation;
CurrentConfigBufferId = config_buffer_id; CurrentConfigBufferId = configBufferId;
SuccessCallback = successCallback; SuccessCallback = successCallback;
bool isHardwareConfig = CurrentConfigBufferId == ConfigBufferId_HardwareConfig; bool isHardwareConfig = CurrentConfigBufferId == ConfigBufferId_HardwareConfig;
@@ -117,7 +117,8 @@ status_t EEPROM_LaunchTransfer(eeprom_operation_t operation, config_buffer_id_t
case EepromOperation_Write: case EepromOperation_Write:
sourceBuffer = ConfigBufferIdToConfigBuffer(CurrentConfigBufferId)->buffer; sourceBuffer = ConfigBufferIdToConfigBuffer(CurrentConfigBufferId)->buffer;
sourceOffset = 0; sourceOffset = 0;
sourceLength = isHardwareConfig ? HARDWARE_CONFIG_SIZE : USER_CONFIG_SIZE; uint16_t userConfigSize = ValidatedUserConfigLength && configBufferId == ConfigBufferId_ValidatedUserConfig ? ValidatedUserConfigLength : USER_CONFIG_SIZE;
sourceLength = isHardwareConfig ? HARDWARE_CONFIG_SIZE : userConfigSize;
LastEepromTransferStatus = writePage(); LastEepromTransferStatus = writePage();
break; break;
} }

View File

@@ -19,7 +19,6 @@
KeyActionType_SwitchLayer, KeyActionType_SwitchLayer,
KeyActionType_SwitchKeymap, KeyActionType_SwitchKeymap,
KeyActionType_PlayMacro, KeyActionType_PlayMacro,
KeyActionType_Test,
} key_action_type_t; } key_action_type_t;
typedef enum { typedef enum {

View File

@@ -15,7 +15,7 @@
"commander": "^2.11.0", "commander": "^2.11.0",
"shelljs": "^0.7.8" "shelljs": "^0.7.8"
}, },
"firmwareVersion": "8.2.2", "firmwareVersion": "8.2.3",
"deviceProtocolVersion": "4.3.0", "deviceProtocolVersion": "4.3.0",
"moduleProtocolVersion": "4.0.0", "moduleProtocolVersion": "4.0.0",
"userConfigVersion": "4.0.0", "userConfigVersion": "4.0.0",

View File

@@ -20,7 +20,7 @@
#define FIRMWARE_MAJOR_VERSION 8 #define FIRMWARE_MAJOR_VERSION 8
#define FIRMWARE_MINOR_VERSION 2 #define FIRMWARE_MINOR_VERSION 2
#define FIRMWARE_PATCH_VERSION 2 #define FIRMWARE_PATCH_VERSION 3
#define DEVICE_PROTOCOL_MAJOR_VERSION 4 #define DEVICE_PROTOCOL_MAJOR_VERSION 4
#define DEVICE_PROTOCOL_MINOR_VERSION 3 #define DEVICE_PROTOCOL_MINOR_VERSION 3