diff --git a/2020TPC Nonvolatile Memory.xlsx b/2020TPC Nonvolatile Memory.xlsx index 9daca86..5434466 100644 Binary files a/2020TPC Nonvolatile Memory.xlsx and b/2020TPC Nonvolatile Memory.xlsx differ diff --git a/2020TPCApp1.cydsn/2020TPCApp1.cyprj b/2020TPCApp1.cydsn/2020TPCApp1.cyprj index ad3dfe6..cc78e20 100644 --- a/2020TPCApp1.cydsn/2020TPCApp1.cyprj +++ b/2020TPCApp1.cydsn/2020TPCApp1.cyprj @@ -1654,6 +1654,20 @@ + + + + + + + + + + + + + + diff --git a/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c b/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c index 0636c1d..bb57994 100644 --- a/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c +++ b/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c @@ -241,7 +241,7 @@ void COMM_BLE_Task(void * pvParameters) } break; - case COMM_BLE_SCANNING_AND_ADVERTISING: + case COMM_BLE_SCANNING_AND_ADVERTISING: { TRACE_BLE_STATE_ENTRY("COMM_BLE_SCANNING_AND_ADVERTISING"); @@ -332,6 +332,14 @@ SystemKResult_T BLE_ScanAndAdvertise(void) return SYSTEMK_RESULT_SUCCESS; } +SystemKResult_T BLE_StopAdvertising(void) +{ + COMM_BLE_Command_T command = { .ID = COMM_BLE_STOP_ADVERTISING, .Data = (void *)0x00 }; + xQueueSend(COMM_BLE_CommandQueue, &command, 0); + + return SYSTEMK_RESULT_SUCCESS; +} + void COMM_BLE_RequestState(COMM_BLE_StateID_T state) { Next_State = state; diff --git a/2020TPCApp1.cydsn/NVM/NVM_ExternalEEPROMEntries.c b/2020TPCApp1.cydsn/NVM/NVM_ExternalEEPROMEntries.c index 832da53..7deaf9b 100644 --- a/2020TPCApp1.cydsn/NVM/NVM_ExternalEEPROMEntries.c +++ b/2020TPCApp1.cydsn/NVM/NVM_ExternalEEPROMEntries.c @@ -6,14 +6,15 @@ * /_/ |_|/_/ \__,_/\__, / /____/\____/\__,_/_/ \___/\___/ \____/\____/\__,_/\___/ * /____/ * - * 🃞 THIS FILE IS PART OF THE KTAG SOURCE CODE. Visit https://ktag.clubk.club/ for more. 🃞 + * This file is part of the KTag project, a DIY laser tag game with customizable features and wide interoperability. + * 🛡️ 🃞 * */ /** \file * \brief [Autogenerated] This file defines the External EEPROM entries. * - * \note AUTOGENERATED: This file was generated automatically on Friday, April 28, 2023 at 11:31:31 AM. + * \note AUTOGENERATED: This file was generated automatically on Saturday, March 1, 2025 at 08:52:44 AM. * DO NOT MODIFY THIS FILE MANUALLY! */ @@ -102,18 +103,28 @@ static const NVM_Game_Settings_T DEFAULT_Game_Settings = { //! Selected weapon. .Weapon_ID = LASER_X_ID, - //! Player identification (is this used?) + //! Player identification. .Player_ID = 0, //! Selected team. .Team_ID = 1, + //! Maximum health. + .Max_Health = 100, + //! Number of special weapons regained upon reentry to the game. + .N_Special_Weapons_On_Reentry = 1, + //! Time in milliseconds between instigating a game and when the countdown begins. + .T_Start_Game_in_ms = 30000, + //! Duration of the game in milliseconds. + .T_Game_Length_in_ms = 600000, + //! Color representing the player, rather than the team. + .Secondary_Color = 0, }; NVM_EEPROMEntry_T NVM_Game_Settings = { //! Size == sizeof(NVM_Game_Settings_T) - .Size = 3, + .Size = 17, .EE_Address = 22, - .EE_CRC_Address = 25, + .EE_CRC_Address = 39, .Value = (uint8_t *)&RAM_Game_Settings, .Default = (uint8_t *)&DEFAULT_Game_Settings, .State = NVM_STATE_UNINITIALIZED @@ -130,8 +141,8 @@ NVM_EEPROMEntry_T NVM_Hourmeter = { //! Size == sizeof(NVM_Hourmeter_T) .Size = 2, - .EE_Address = 27, - .EE_CRC_Address = 29, + .EE_Address = 41, + .EE_CRC_Address = 43, .Value = (uint8_t *)&RAM_Hourmeter, .Default = (uint8_t *)&DEFAULT_Hourmeter, .State = NVM_STATE_UNINITIALIZED diff --git a/2020TPCApp1.cydsn/NVM/NVM_ExternalEEPROMEntries.h b/2020TPCApp1.cydsn/NVM/NVM_ExternalEEPROMEntries.h index 61d7103..c2e757f 100644 --- a/2020TPCApp1.cydsn/NVM/NVM_ExternalEEPROMEntries.h +++ b/2020TPCApp1.cydsn/NVM/NVM_ExternalEEPROMEntries.h @@ -13,7 +13,7 @@ /** \file * \brief [Autogenerated] This file declares the External EEPROM entries. * - * \note AUTOGENERATED: This file was generated automatically on Friday, April 28, 2023 at 11:31:31 AM. + * \note AUTOGENERATED: This file was generated automatically on Saturday, March 1, 2025 at 08:52:44 AM. * DO NOT MODIFY THIS FILE MANUALLY! */ @@ -60,10 +60,20 @@ typedef struct __attribute__((packed)) { //! Selected weapon. uint8_t Weapon_ID; - //! Player identification (is this used?) + //! Player identification. uint8_t Player_ID; //! Selected team. uint8_t Team_ID; + //! Maximum health. + uint8_t Max_Health; + //! Number of special weapons regained upon reentry to the game. + uint8_t N_Special_Weapons_On_Reentry; + //! Time in milliseconds between instigating a game and when the countdown begins. + uint32_t T_Start_Game_in_ms; + //! Duration of the game in milliseconds. + uint32_t T_Game_Length_in_ms; + //! Color representing the player, rather than the team. + uint32_t Secondary_Color; } NVM_Game_Settings_T; typedef struct __attribute__((packed)) @@ -123,6 +133,21 @@ extern const uint8_t NVM_N_EXTERNAL_EEPROM_ENTRIES; #define NVM_TEAM_ID (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->Team_ID) #define NVM_TEAM_ID_ENTRY_PTR (&NVM_Game_Settings) +#define NVM_MAX_HEALTH (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->Max_Health) +#define NVM_MAX_HEALTH_ENTRY_PTR (&NVM_Game_Settings) + +#define NVM_N_SPECIAL_WEAPONS_ON_REENTRY (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->N_Special_Weapons_On_Reentry) +#define NVM_N_SPECIAL_WEAPONS_ON_REENTRY_ENTRY_PTR (&NVM_Game_Settings) + +#define NVM_T_START_GAME_IN_MS (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->T_Start_Game_in_ms) +#define NVM_T_START_GAME_IN_MS_ENTRY_PTR (&NVM_Game_Settings) + +#define NVM_T_GAME_LENGTH_IN_MS (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->T_Game_Length_in_ms) +#define NVM_T_GAME_LENGTH_IN_MS_ENTRY_PTR (&NVM_Game_Settings) + +#define NVM_SECONDARY_COLOR (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->Secondary_Color) +#define NVM_SECONDARY_COLOR_ENTRY_PTR (&NVM_Game_Settings) + #define NVM_HOURMETER_STARTUPS (((NVM_Hourmeter_T*)NVM_Hourmeter.Value)->Hourmeter_Startups) #define NVM_HOURMETER_STARTUPS_ENTRY_PTR (&NVM_Hourmeter) diff --git a/2020TPCApp1.cydsn/NVM/NVM_OnChipEEPROMEntries.c b/2020TPCApp1.cydsn/NVM/NVM_OnChipEEPROMEntries.c index 08b72a4..65bd556 100644 --- a/2020TPCApp1.cydsn/NVM/NVM_OnChipEEPROMEntries.c +++ b/2020TPCApp1.cydsn/NVM/NVM_OnChipEEPROMEntries.c @@ -6,14 +6,15 @@ * /_/ |_|/_/ \__,_/\__, / /____/\____/\__,_/_/ \___/\___/ \____/\____/\__,_/\___/ * /____/ * - * 🃞 THIS FILE IS PART OF THE KTAG SOURCE CODE. Visit https://ktag.clubk.club/ for more. 🃞 + * This file is part of the KTag project, a DIY laser tag game with customizable features and wide interoperability. + * 🛡️ 🃞 * */ /** \file * \brief [Autogenerated] This file defines the OnChip EEPROM entries. * - * \note AUTOGENERATED: This file was generated automatically on Friday, April 28, 2023 at 11:31:31 AM. + * \note AUTOGENERATED: This file was generated automatically on Saturday, March 1, 2025 at 08:52:44 AM. * DO NOT MODIFY THIS FILE MANUALLY! */ diff --git a/2020TPCApp1.cydsn/NVM/NVM_OnChipEEPROMEntries.h b/2020TPCApp1.cydsn/NVM/NVM_OnChipEEPROMEntries.h index 507737a..e9a6a48 100644 --- a/2020TPCApp1.cydsn/NVM/NVM_OnChipEEPROMEntries.h +++ b/2020TPCApp1.cydsn/NVM/NVM_OnChipEEPROMEntries.h @@ -13,7 +13,7 @@ /** \file * \brief [Autogenerated] This file declares the OnChip EEPROM entries. * - * \note AUTOGENERATED: This file was generated automatically on Friday, April 28, 2023 at 11:31:31 AM. + * \note AUTOGENERATED: This file was generated automatically on Saturday, March 1, 2025 at 08:52:44 AM. * DO NOT MODIFY THIS FILE MANUALLY! */ diff --git a/2020TPCApp1.cydsn/NVM/NVM_Settings.c b/2020TPCApp1.cydsn/NVM/NVM_Settings.c index 4585506..964db30 100644 --- a/2020TPCApp1.cydsn/NVM/NVM_Settings.c +++ b/2020TPCApp1.cydsn/NVM/NVM_Settings.c @@ -33,6 +33,14 @@ SystemKResult_T SETTINGS_get_uint8_t(SystemKSettingID_T id, uint8_t * value) *value = NVM_WEAPON_ID; break; + case SYSTEMK_SETTING_MAX_HEALTH: + *value = NVM_MAX_HEALTH; + break; + + case SYSTEMK_SETTING_N_SPECIAL_WEAPONS_ON_REENTRY: + *value = NVM_N_SPECIAL_WEAPONS_ON_REENTRY; + break; + default: result = SYSTEMK_RESULT_WRONG_DATATYPE; break; @@ -67,6 +75,14 @@ SystemKResult_T SETTINGS_set_uint8_t(SystemKSettingID_T id, uint8_t value) NVM_WEAPON_ID = value; break; + case SYSTEMK_SETTING_MAX_HEALTH: + NVM_MAX_HEALTH = value; + break; + + case SYSTEMK_SETTING_N_SPECIAL_WEAPONS_ON_REENTRY: + NVM_N_SPECIAL_WEAPONS_ON_REENTRY = value; + break; + default: result = SYSTEMK_RESULT_WRONG_DATATYPE; break; @@ -81,8 +97,20 @@ SystemKResult_T SETTINGS_get_uint32_t(SystemKSettingID_T id, uint32_t * value) switch (id) { + case SYSTEMK_SETTING_DEVICE_TYPE: + *value = 1; // 2020TPC + break; + case SYSTEMK_SETTING_T_START_GAME_in_ms: - *value = CONFIG_KTAG_T_DEFAULT_START_GAME_in_ms; + *value = NVM_T_START_GAME_IN_MS; + break; + + case SYSTEMK_SETTING_T_GAME_LENGTH_in_ms: + *value = NVM_T_GAME_LENGTH_IN_MS; + break; + + case SYSTEMK_SETTING_SECONDARY_COLOR: + *value = NVM_SECONDARY_COLOR; break; default: @@ -99,9 +127,21 @@ SystemKResult_T SETTINGS_set_uint32_t(SystemKSettingID_T id, uint32_t value) switch (id) { - case SYSTEMK_SETTING_T_START_GAME_in_ms: + case SYSTEMK_SETTING_DEVICE_TYPE: result = SYSTEMK_RESULT_NOT_IMPLEMENTED; break; + + case SYSTEMK_SETTING_T_START_GAME_in_ms: + NVM_T_START_GAME_IN_MS = value; + break; + + case SYSTEMK_SETTING_T_GAME_LENGTH_in_ms: + NVM_T_GAME_LENGTH_IN_MS = value; + break; + + case SYSTEMK_SETTING_SECONDARY_COLOR: + NVM_SECONDARY_COLOR = value; + break; default: result = SYSTEMK_RESULT_WRONG_DATATYPE; @@ -111,6 +151,20 @@ SystemKResult_T SETTINGS_set_uint32_t(SystemKSettingID_T id, uint32_t value) return result; } +SystemKResult_T SETTINGS_get_device_name(char* name) +{ + static char device_name[] = "Another 2020TPC"; + + strncpy(name, device_name, sizeof(device_name)); + + return SYSTEMK_RESULT_SUCCESS; +} + +SystemKResult_T SETTINGS_set_device_name(char* name) +{ + return SYSTEMK_RESULT_NOT_IMPLEMENTED; +} + SystemKResult_T SETTINGS_Save(void) { #if (CONFIG__HAS_EXTERNAL_NVM) diff --git a/2020TPCApp1.cydsn/SystemK b/2020TPCApp1.cydsn/SystemK index 4fe072f..bfcdf4c 160000 --- a/2020TPCApp1.cydsn/SystemK +++ b/2020TPCApp1.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 4fe072f2d3280b19aa53e197bd22ec44b174ff88 +Subproject commit bfcdf4c354ae6c96165e11e2fd6d52d0c8ab91eb diff --git a/2020TPCAppNoDFU.cydsn/2020TPCAppNoDFU.cyprj b/2020TPCAppNoDFU.cydsn/2020TPCAppNoDFU.cyprj index 236c4e2..e090c8a 100644 --- a/2020TPCAppNoDFU.cydsn/2020TPCAppNoDFU.cyprj +++ b/2020TPCAppNoDFU.cydsn/2020TPCAppNoDFU.cyprj @@ -1839,6 +1839,20 @@ + + + + + + + + + + + + + + diff --git a/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c b/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c index 0636c1d..bb57994 100644 --- a/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c +++ b/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c @@ -241,7 +241,7 @@ void COMM_BLE_Task(void * pvParameters) } break; - case COMM_BLE_SCANNING_AND_ADVERTISING: + case COMM_BLE_SCANNING_AND_ADVERTISING: { TRACE_BLE_STATE_ENTRY("COMM_BLE_SCANNING_AND_ADVERTISING"); @@ -332,6 +332,14 @@ SystemKResult_T BLE_ScanAndAdvertise(void) return SYSTEMK_RESULT_SUCCESS; } +SystemKResult_T BLE_StopAdvertising(void) +{ + COMM_BLE_Command_T command = { .ID = COMM_BLE_STOP_ADVERTISING, .Data = (void *)0x00 }; + xQueueSend(COMM_BLE_CommandQueue, &command, 0); + + return SYSTEMK_RESULT_SUCCESS; +} + void COMM_BLE_RequestState(COMM_BLE_StateID_T state) { Next_State = state; diff --git a/2020TPCAppNoDFU.cydsn/NVM/NVM_ExternalEEPROMEntries.c b/2020TPCAppNoDFU.cydsn/NVM/NVM_ExternalEEPROMEntries.c index 832da53..7deaf9b 100644 --- a/2020TPCAppNoDFU.cydsn/NVM/NVM_ExternalEEPROMEntries.c +++ b/2020TPCAppNoDFU.cydsn/NVM/NVM_ExternalEEPROMEntries.c @@ -6,14 +6,15 @@ * /_/ |_|/_/ \__,_/\__, / /____/\____/\__,_/_/ \___/\___/ \____/\____/\__,_/\___/ * /____/ * - * 🃞 THIS FILE IS PART OF THE KTAG SOURCE CODE. Visit https://ktag.clubk.club/ for more. 🃞 + * This file is part of the KTag project, a DIY laser tag game with customizable features and wide interoperability. + * 🛡️ 🃞 * */ /** \file * \brief [Autogenerated] This file defines the External EEPROM entries. * - * \note AUTOGENERATED: This file was generated automatically on Friday, April 28, 2023 at 11:31:31 AM. + * \note AUTOGENERATED: This file was generated automatically on Saturday, March 1, 2025 at 08:52:44 AM. * DO NOT MODIFY THIS FILE MANUALLY! */ @@ -102,18 +103,28 @@ static const NVM_Game_Settings_T DEFAULT_Game_Settings = { //! Selected weapon. .Weapon_ID = LASER_X_ID, - //! Player identification (is this used?) + //! Player identification. .Player_ID = 0, //! Selected team. .Team_ID = 1, + //! Maximum health. + .Max_Health = 100, + //! Number of special weapons regained upon reentry to the game. + .N_Special_Weapons_On_Reentry = 1, + //! Time in milliseconds between instigating a game and when the countdown begins. + .T_Start_Game_in_ms = 30000, + //! Duration of the game in milliseconds. + .T_Game_Length_in_ms = 600000, + //! Color representing the player, rather than the team. + .Secondary_Color = 0, }; NVM_EEPROMEntry_T NVM_Game_Settings = { //! Size == sizeof(NVM_Game_Settings_T) - .Size = 3, + .Size = 17, .EE_Address = 22, - .EE_CRC_Address = 25, + .EE_CRC_Address = 39, .Value = (uint8_t *)&RAM_Game_Settings, .Default = (uint8_t *)&DEFAULT_Game_Settings, .State = NVM_STATE_UNINITIALIZED @@ -130,8 +141,8 @@ NVM_EEPROMEntry_T NVM_Hourmeter = { //! Size == sizeof(NVM_Hourmeter_T) .Size = 2, - .EE_Address = 27, - .EE_CRC_Address = 29, + .EE_Address = 41, + .EE_CRC_Address = 43, .Value = (uint8_t *)&RAM_Hourmeter, .Default = (uint8_t *)&DEFAULT_Hourmeter, .State = NVM_STATE_UNINITIALIZED diff --git a/2020TPCAppNoDFU.cydsn/NVM/NVM_ExternalEEPROMEntries.h b/2020TPCAppNoDFU.cydsn/NVM/NVM_ExternalEEPROMEntries.h index 61d7103..c2e757f 100644 --- a/2020TPCAppNoDFU.cydsn/NVM/NVM_ExternalEEPROMEntries.h +++ b/2020TPCAppNoDFU.cydsn/NVM/NVM_ExternalEEPROMEntries.h @@ -13,7 +13,7 @@ /** \file * \brief [Autogenerated] This file declares the External EEPROM entries. * - * \note AUTOGENERATED: This file was generated automatically on Friday, April 28, 2023 at 11:31:31 AM. + * \note AUTOGENERATED: This file was generated automatically on Saturday, March 1, 2025 at 08:52:44 AM. * DO NOT MODIFY THIS FILE MANUALLY! */ @@ -60,10 +60,20 @@ typedef struct __attribute__((packed)) { //! Selected weapon. uint8_t Weapon_ID; - //! Player identification (is this used?) + //! Player identification. uint8_t Player_ID; //! Selected team. uint8_t Team_ID; + //! Maximum health. + uint8_t Max_Health; + //! Number of special weapons regained upon reentry to the game. + uint8_t N_Special_Weapons_On_Reentry; + //! Time in milliseconds between instigating a game and when the countdown begins. + uint32_t T_Start_Game_in_ms; + //! Duration of the game in milliseconds. + uint32_t T_Game_Length_in_ms; + //! Color representing the player, rather than the team. + uint32_t Secondary_Color; } NVM_Game_Settings_T; typedef struct __attribute__((packed)) @@ -123,6 +133,21 @@ extern const uint8_t NVM_N_EXTERNAL_EEPROM_ENTRIES; #define NVM_TEAM_ID (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->Team_ID) #define NVM_TEAM_ID_ENTRY_PTR (&NVM_Game_Settings) +#define NVM_MAX_HEALTH (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->Max_Health) +#define NVM_MAX_HEALTH_ENTRY_PTR (&NVM_Game_Settings) + +#define NVM_N_SPECIAL_WEAPONS_ON_REENTRY (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->N_Special_Weapons_On_Reentry) +#define NVM_N_SPECIAL_WEAPONS_ON_REENTRY_ENTRY_PTR (&NVM_Game_Settings) + +#define NVM_T_START_GAME_IN_MS (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->T_Start_Game_in_ms) +#define NVM_T_START_GAME_IN_MS_ENTRY_PTR (&NVM_Game_Settings) + +#define NVM_T_GAME_LENGTH_IN_MS (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->T_Game_Length_in_ms) +#define NVM_T_GAME_LENGTH_IN_MS_ENTRY_PTR (&NVM_Game_Settings) + +#define NVM_SECONDARY_COLOR (((NVM_Game_Settings_T*)NVM_Game_Settings.Value)->Secondary_Color) +#define NVM_SECONDARY_COLOR_ENTRY_PTR (&NVM_Game_Settings) + #define NVM_HOURMETER_STARTUPS (((NVM_Hourmeter_T*)NVM_Hourmeter.Value)->Hourmeter_Startups) #define NVM_HOURMETER_STARTUPS_ENTRY_PTR (&NVM_Hourmeter) diff --git a/2020TPCAppNoDFU.cydsn/NVM/NVM_OnChipEEPROMEntries.c b/2020TPCAppNoDFU.cydsn/NVM/NVM_OnChipEEPROMEntries.c index 08b72a4..65bd556 100644 --- a/2020TPCAppNoDFU.cydsn/NVM/NVM_OnChipEEPROMEntries.c +++ b/2020TPCAppNoDFU.cydsn/NVM/NVM_OnChipEEPROMEntries.c @@ -6,14 +6,15 @@ * /_/ |_|/_/ \__,_/\__, / /____/\____/\__,_/_/ \___/\___/ \____/\____/\__,_/\___/ * /____/ * - * 🃞 THIS FILE IS PART OF THE KTAG SOURCE CODE. Visit https://ktag.clubk.club/ for more. 🃞 + * This file is part of the KTag project, a DIY laser tag game with customizable features and wide interoperability. + * 🛡️ 🃞 * */ /** \file * \brief [Autogenerated] This file defines the OnChip EEPROM entries. * - * \note AUTOGENERATED: This file was generated automatically on Friday, April 28, 2023 at 11:31:31 AM. + * \note AUTOGENERATED: This file was generated automatically on Saturday, March 1, 2025 at 08:52:44 AM. * DO NOT MODIFY THIS FILE MANUALLY! */ diff --git a/2020TPCAppNoDFU.cydsn/NVM/NVM_OnChipEEPROMEntries.h b/2020TPCAppNoDFU.cydsn/NVM/NVM_OnChipEEPROMEntries.h index 507737a..e9a6a48 100644 --- a/2020TPCAppNoDFU.cydsn/NVM/NVM_OnChipEEPROMEntries.h +++ b/2020TPCAppNoDFU.cydsn/NVM/NVM_OnChipEEPROMEntries.h @@ -13,7 +13,7 @@ /** \file * \brief [Autogenerated] This file declares the OnChip EEPROM entries. * - * \note AUTOGENERATED: This file was generated automatically on Friday, April 28, 2023 at 11:31:31 AM. + * \note AUTOGENERATED: This file was generated automatically on Saturday, March 1, 2025 at 08:52:44 AM. * DO NOT MODIFY THIS FILE MANUALLY! */ diff --git a/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c b/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c index 4585506..964db30 100644 --- a/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c +++ b/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c @@ -33,6 +33,14 @@ SystemKResult_T SETTINGS_get_uint8_t(SystemKSettingID_T id, uint8_t * value) *value = NVM_WEAPON_ID; break; + case SYSTEMK_SETTING_MAX_HEALTH: + *value = NVM_MAX_HEALTH; + break; + + case SYSTEMK_SETTING_N_SPECIAL_WEAPONS_ON_REENTRY: + *value = NVM_N_SPECIAL_WEAPONS_ON_REENTRY; + break; + default: result = SYSTEMK_RESULT_WRONG_DATATYPE; break; @@ -67,6 +75,14 @@ SystemKResult_T SETTINGS_set_uint8_t(SystemKSettingID_T id, uint8_t value) NVM_WEAPON_ID = value; break; + case SYSTEMK_SETTING_MAX_HEALTH: + NVM_MAX_HEALTH = value; + break; + + case SYSTEMK_SETTING_N_SPECIAL_WEAPONS_ON_REENTRY: + NVM_N_SPECIAL_WEAPONS_ON_REENTRY = value; + break; + default: result = SYSTEMK_RESULT_WRONG_DATATYPE; break; @@ -81,8 +97,20 @@ SystemKResult_T SETTINGS_get_uint32_t(SystemKSettingID_T id, uint32_t * value) switch (id) { + case SYSTEMK_SETTING_DEVICE_TYPE: + *value = 1; // 2020TPC + break; + case SYSTEMK_SETTING_T_START_GAME_in_ms: - *value = CONFIG_KTAG_T_DEFAULT_START_GAME_in_ms; + *value = NVM_T_START_GAME_IN_MS; + break; + + case SYSTEMK_SETTING_T_GAME_LENGTH_in_ms: + *value = NVM_T_GAME_LENGTH_IN_MS; + break; + + case SYSTEMK_SETTING_SECONDARY_COLOR: + *value = NVM_SECONDARY_COLOR; break; default: @@ -99,9 +127,21 @@ SystemKResult_T SETTINGS_set_uint32_t(SystemKSettingID_T id, uint32_t value) switch (id) { - case SYSTEMK_SETTING_T_START_GAME_in_ms: + case SYSTEMK_SETTING_DEVICE_TYPE: result = SYSTEMK_RESULT_NOT_IMPLEMENTED; break; + + case SYSTEMK_SETTING_T_START_GAME_in_ms: + NVM_T_START_GAME_IN_MS = value; + break; + + case SYSTEMK_SETTING_T_GAME_LENGTH_in_ms: + NVM_T_GAME_LENGTH_IN_MS = value; + break; + + case SYSTEMK_SETTING_SECONDARY_COLOR: + NVM_SECONDARY_COLOR = value; + break; default: result = SYSTEMK_RESULT_WRONG_DATATYPE; @@ -111,6 +151,20 @@ SystemKResult_T SETTINGS_set_uint32_t(SystemKSettingID_T id, uint32_t value) return result; } +SystemKResult_T SETTINGS_get_device_name(char* name) +{ + static char device_name[] = "Another 2020TPC"; + + strncpy(name, device_name, sizeof(device_name)); + + return SYSTEMK_RESULT_SUCCESS; +} + +SystemKResult_T SETTINGS_set_device_name(char* name) +{ + return SYSTEMK_RESULT_NOT_IMPLEMENTED; +} + SystemKResult_T SETTINGS_Save(void) { #if (CONFIG__HAS_EXTERNAL_NVM) diff --git a/2020TPCAppNoDFU.cydsn/SystemK b/2020TPCAppNoDFU.cydsn/SystemK index 4fe072f..bfcdf4c 160000 --- a/2020TPCAppNoDFU.cydsn/SystemK +++ b/2020TPCAppNoDFU.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 4fe072f2d3280b19aa53e197bd22ec44b174ff88 +Subproject commit bfcdf4c354ae6c96165e11e2fd6d52d0c8ab91eb diff --git a/autocode.py b/autocode.py index 85580f3..43247a3 100644 --- a/autocode.py +++ b/autocode.py @@ -18,7 +18,7 @@ import openpyxl APP_NAME = "KTag Autocode Generator" __author__ = "Joe Kearney" -__version__ = "00.02" +__version__ = "00.03" NVM_SPREADSHEET_FILENAME = "2020TPC Nonvolatile Memory.xlsx" SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__)) @@ -164,17 +164,17 @@ def generate_NVM_autocode(): with codecs.open('NVM_' + location + 'EEPROMEntries.h', 'w', "utf-8") as f: f.write("/*\n") f.write( - " * __ ________ _____ ______ __ \n") + r" * __ ________ _____ ______ __ " + "\n") f.write( - " * / //_/_ __/___ _____ _ / ___/____ __ _______________ / ____/___ ____/ /__ \n") + r" * / //_/_ __/___ _____ _ / ___/____ __ _______________ / ____/___ ____/ /__ " + "\n") f.write( - " * / ,< / / / __ `/ __ `/ \__ \/ __ \/ / / / ___/ ___/ _ \ / / / __ \/ __ / _ \ \n") + r" * / ,< / / / __ `/ __ `/ \__ \/ __ \/ / / / ___/ ___/ _ \ / / / __ \/ __ / _ \ " + "\n") f.write( - " * / /| | / / / /_/ / /_/ / ___/ / /_/ / /_/ / / / /__/ __/ / /___/ /_/ / /_/ / __/ \n") + r" * / /| | / / / /_/ / /_/ / ___/ / /_/ / /_/ / / / /__/ __/ / /___/ /_/ / /_/ / __/ " + "\n") f.write( - " * /_/ |_|/_/ \__,_/\__, / /____/\____/\__,_/_/ \___/\___/ \____/\____/\__,_/\___/ \n") + r" * /_/ |_|/_/ \__,_/\__, / /____/\____/\__,_/_/ \___/\___/ \____/\____/\__,_/\___/ " + "\n") f.write( - " * /____/ \n") + r" * /____/ " + "\n") f.write(" *\n") f.write( " * 🃞 THIS FILE IS PART OF THE KTAG SOURCE CODE. Visit https://ktag.clubk.club/ for more. 🃞\n") @@ -259,20 +259,21 @@ def generate_NVM_autocode(): with codecs.open('NVM_' + location + 'EEPROMEntries.c', 'w', "utf-8") as f: f.write("/*\n") f.write( - " * __ ________ _____ ______ __ \n") + r" * __ ________ _____ ______ __ " + "\n") f.write( - " * / //_/_ __/___ _____ _ / ___/____ __ _______________ / ____/___ ____/ /__ \n") + r" * / //_/_ __/___ _____ _ / ___/____ __ _______________ / ____/___ ____/ /__ " + "\n") f.write( - " * / ,< / / / __ `/ __ `/ \__ \/ __ \/ / / / ___/ ___/ _ \ / / / __ \/ __ / _ \ \n") + r" * / ,< / / / __ `/ __ `/ \__ \/ __ \/ / / / ___/ ___/ _ \ / / / __ \/ __ / _ \ " + "\n") f.write( - " * / /| | / / / /_/ / /_/ / ___/ / /_/ / /_/ / / / /__/ __/ / /___/ /_/ / /_/ / __/ \n") + r" * / /| | / / / /_/ / /_/ / ___/ / /_/ / /_/ / / / /__/ __/ / /___/ /_/ / /_/ / __/ " + "\n") f.write( - " * /_/ |_|/_/ \__,_/\__, / /____/\____/\__,_/_/ \___/\___/ \____/\____/\__,_/\___/ \n") + r" * /_/ |_|/_/ \__,_/\__, / /____/\____/\__,_/_/ \___/\___/ \____/\____/\__,_/\___/ " + "\n") f.write( - " * /____/ \n") + r" * /____/ " + "\n") f.write(" *\n") + f.write(" * This file is part of the KTag project, a DIY laser tag game with customizable features and wide interoperability.\n") f.write( - " * 🃞 THIS FILE IS PART OF THE KTAG SOURCE CODE. Visit https://ktag.clubk.club/ for more. 🃞\n") + " * 🛡️ 🃞\n") f.write(" *\n") f.write(" */\n") @@ -294,7 +295,7 @@ def generate_NVM_autocode(): f.write('\n') f.write('/* EEPROM Entries */\n') f.write('\n') - f.write('/** \defgroup NVM_' + location.upper() + + f.write(r'/** \defgroup NVM_' + location.upper() + '_EEPROM NVM ' + location + ' EEPROM\n') f.write(' *\n') f.write(' * The ' + location +