diff --git a/right/src/config_parser/config_globals.c b/right/src/config_parser/config_globals.c index aa05e3a..ddc36d2 100644 --- a/right/src/config_parser/config_globals.c +++ b/right/src/config_parser/config_globals.c @@ -11,6 +11,8 @@ config_buffer_t HardwareConfigBuffer = { hardwareConfig }; config_buffer_t StagingUserConfigBuffer = { stagingUserConfig }; config_buffer_t ValidatedUserConfigBuffer = { validatedUserConfig }; +hardware_config_t *HardwareConfig = (hardware_config_t*)hardwareConfig; + bool ParserRunDry; bool IsConfigBufferIdValid(config_buffer_id_t configBufferId) diff --git a/right/src/config_parser/config_globals.h b/right/src/config_parser/config_globals.h index bac7455..a7efe3d 100644 --- a/right/src/config_parser/config_globals.h +++ b/right/src/config_parser/config_globals.h @@ -6,6 +6,10 @@ #include "fsl_common.h" #include "basic_types.h" +// Macros: + + #define HARDWARE_CONFIG_SIGNATURE_LENGTH 3 + // Typedefs: typedef enum { @@ -14,6 +18,19 @@ ConfigBufferId_ValidatedUserConfig, } config_buffer_id_t; + typedef struct { + uint8_t signatureLength; + char signature[HARDWARE_CONFIG_SIGNATURE_LENGTH]; + uint8_t majorVersion; + uint8_t minorVersion; + uint8_t patchVersion; + uint8_t brandId; + uint8_t deviceId; + uint32_t uniqueId; + bool isVendorModeOn; + bool isIso; + } hardware_config_t; + // Variables: extern bool ParserRunDry; @@ -21,8 +38,9 @@ extern config_buffer_t HardwareConfigBuffer; extern config_buffer_t StagingUserConfigBuffer; extern config_buffer_t ValidatedUserConfigBuffer; + extern hardware_config_t *HardwareConfig; - // Functions: +// Functions: bool IsConfigBufferIdValid(config_buffer_id_t configBufferId); config_buffer_t* ConfigBufferIdToConfigBuffer(config_buffer_id_t configBufferId); diff --git a/right/src/main.c b/right/src/main.c index 12772f2..6101268 100644 --- a/right/src/main.c +++ b/right/src/main.c @@ -9,6 +9,7 @@ #include "key_scanner.h" #include "usb_commands/usb_command_apply_config.h" #include "peripherals/reset_button.h" +#include "config_parser/config_globals.h" #include "usb_report_updater.h" static bool IsEepromInitialized = false; @@ -29,7 +30,10 @@ int main(void) InitClock(); InitPeripherals(); - if (!RESET_BUTTON_IS_PRESSED) { + if (RESET_BUTTON_IS_PRESSED) { + HardwareConfig->signatureLength = HARDWARE_CONFIG_SIGNATURE_LENGTH; + strncpy(HardwareConfig->signature, "FTY", HARDWARE_CONFIG_SIGNATURE_LENGTH); + } else { EEPROM_LaunchTransfer(EepromOperation_Read, ConfigBufferId_HardwareConfig, hardwareConfigurationReadFinished); }