From 1efc32e9a1a6ab099733e42abfba8936376f9c36 Mon Sep 17 00:00:00 2001 From: Joe Kearney Date: Sat, 15 Feb 2025 17:10:37 -0600 Subject: [PATCH 1/6] WIP: New BLE --- 2020TPCApp1.cydsn/2020TPCApp1.cyprj | 14 ++++++++++++++ 2020TPCApp1.cydsn/NVM/NVM_Settings.c | 14 ++++++++++++++ 2020TPCApp1.cydsn/SystemK | 2 +- 2020TPCAppNoDFU.cydsn/2020TPCAppNoDFU.cyprj | 14 ++++++++++++++ 2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c | 14 ++++++++++++++ 2020TPCAppNoDFU.cydsn/SystemK | 2 +- 6 files changed, 58 insertions(+), 2 deletions(-) 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/NVM/NVM_Settings.c b/2020TPCApp1.cydsn/NVM/NVM_Settings.c index 4585506..8bde0ba 100644 --- a/2020TPCApp1.cydsn/NVM/NVM_Settings.c +++ b/2020TPCApp1.cydsn/NVM/NVM_Settings.c @@ -111,6 +111,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"; + + name = 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..58f379d 160000 --- a/2020TPCApp1.cydsn/SystemK +++ b/2020TPCApp1.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 4fe072f2d3280b19aa53e197bd22ec44b174ff88 +Subproject commit 58f379dc1871b06a7cde07e5e2b77e93f5aebaeb 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/NVM/NVM_Settings.c b/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c index 4585506..8bde0ba 100644 --- a/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c +++ b/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c @@ -111,6 +111,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"; + + name = 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..58f379d 160000 --- a/2020TPCAppNoDFU.cydsn/SystemK +++ b/2020TPCAppNoDFU.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 4fe072f2d3280b19aa53e197bd22ec44b174ff88 +Subproject commit 58f379dc1871b06a7cde07e5e2b77e93f5aebaeb -- 2.47.2 From 8eb3ed2996652a481dc054d3feac009771dacd85 Mon Sep 17 00:00:00 2001 From: Joe Kearney Date: Sat, 15 Feb 2025 20:12:40 -0600 Subject: [PATCH 2/6] WIP: BLE events --- 2020TPCApp1.cydsn/SystemK | 2 +- 2020TPCAppNoDFU.cydsn/SystemK | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/2020TPCApp1.cydsn/SystemK b/2020TPCApp1.cydsn/SystemK index 58f379d..82ec410 160000 --- a/2020TPCApp1.cydsn/SystemK +++ b/2020TPCApp1.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 58f379dc1871b06a7cde07e5e2b77e93f5aebaeb +Subproject commit 82ec410264cd43e5dbd1778a1dc51ebf36f2f0b5 diff --git a/2020TPCAppNoDFU.cydsn/SystemK b/2020TPCAppNoDFU.cydsn/SystemK index 58f379d..82ec410 160000 --- a/2020TPCAppNoDFU.cydsn/SystemK +++ b/2020TPCAppNoDFU.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 58f379dc1871b06a7cde07e5e2b77e93f5aebaeb +Subproject commit 82ec410264cd43e5dbd1778a1dc51ebf36f2f0b5 -- 2.47.2 From 7bf8f47e90ea2cb4830c1d931ee95d2734d4b040 Mon Sep 17 00:00:00 2001 From: Joe Kearney Date: Sat, 1 Mar 2025 09:07:56 -0600 Subject: [PATCH 3/6] New settings to support the new state machine. --- 2020TPC Nonvolatile Memory.xlsx | Bin 7818 -> 8802 bytes .../NVM/NVM_ExternalEEPROMEntries.c | 25 ++++++++---- .../NVM/NVM_ExternalEEPROMEntries.h | 29 +++++++++++++- .../NVM/NVM_OnChipEEPROMEntries.c | 5 ++- .../NVM/NVM_OnChipEEPROMEntries.h | 2 +- 2020TPCApp1.cydsn/NVM/NVM_Settings.c | 36 +++++++++++++++++- 2020TPCApp1.cydsn/SystemK | 2 +- .../NVM/NVM_ExternalEEPROMEntries.c | 25 ++++++++---- .../NVM/NVM_ExternalEEPROMEntries.h | 29 +++++++++++++- .../NVM/NVM_OnChipEEPROMEntries.c | 5 ++- .../NVM/NVM_OnChipEEPROMEntries.h | 2 +- 2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c | 36 +++++++++++++++++- 2020TPCAppNoDFU.cydsn/SystemK | 2 +- autocode.py | 31 +++++++-------- 14 files changed, 184 insertions(+), 45 deletions(-) diff --git a/2020TPC Nonvolatile Memory.xlsx b/2020TPC Nonvolatile Memory.xlsx index 9daca867b3a320f694d926d0a6ae2f9672a2a1de..5434466af476da6465c0a5a3c08889ea2cc2eee6 100644 GIT binary patch delta 7760 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 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 8bde0ba..f7959aa 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; @@ -82,7 +98,15 @@ SystemKResult_T SETTINGS_get_uint32_t(SystemKSettingID_T id, uint32_t * value) switch (id) { 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: @@ -100,7 +124,15 @@ SystemKResult_T SETTINGS_set_uint32_t(SystemKSettingID_T id, uint32_t value) switch (id) { case SYSTEMK_SETTING_T_START_GAME_in_ms: - result = SYSTEMK_RESULT_NOT_IMPLEMENTED; + 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: diff --git a/2020TPCApp1.cydsn/SystemK b/2020TPCApp1.cydsn/SystemK index 82ec410..47822bb 160000 --- a/2020TPCApp1.cydsn/SystemK +++ b/2020TPCApp1.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 82ec410264cd43e5dbd1778a1dc51ebf36f2f0b5 +Subproject commit 47822bbdec20eda1a4c21871c7b4fe17c36bb731 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 8bde0ba..f7959aa 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; @@ -82,7 +98,15 @@ SystemKResult_T SETTINGS_get_uint32_t(SystemKSettingID_T id, uint32_t * value) switch (id) { 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: @@ -100,7 +124,15 @@ SystemKResult_T SETTINGS_set_uint32_t(SystemKSettingID_T id, uint32_t value) switch (id) { case SYSTEMK_SETTING_T_START_GAME_in_ms: - result = SYSTEMK_RESULT_NOT_IMPLEMENTED; + 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: diff --git a/2020TPCAppNoDFU.cydsn/SystemK b/2020TPCAppNoDFU.cydsn/SystemK index 82ec410..47822bb 160000 --- a/2020TPCAppNoDFU.cydsn/SystemK +++ b/2020TPCAppNoDFU.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 82ec410264cd43e5dbd1778a1dc51ebf36f2f0b5 +Subproject commit 47822bbdec20eda1a4c21871c7b4fe17c36bb731 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 + -- 2.47.2 From 509d2204cde2b67fe7981e712205ed26800b1dd7 Mon Sep 17 00:00:00 2001 From: Joe Kearney Date: Sat, 1 Mar 2025 16:58:57 -0600 Subject: [PATCH 4/6] Changes after testing. --- 2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c | 2 +- 2020TPCApp1.cydsn/NVM/NVM_Settings.c | 10 +++++++++- 2020TPCApp1.cydsn/SystemK | 2 +- 2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c | 2 +- 2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c | 10 +++++++++- 2020TPCAppNoDFU.cydsn/SystemK | 2 +- 6 files changed, 22 insertions(+), 6 deletions(-) diff --git a/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c b/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c index 0636c1d..5f9a494 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"); diff --git a/2020TPCApp1.cydsn/NVM/NVM_Settings.c b/2020TPCApp1.cydsn/NVM/NVM_Settings.c index f7959aa..964db30 100644 --- a/2020TPCApp1.cydsn/NVM/NVM_Settings.c +++ b/2020TPCApp1.cydsn/NVM/NVM_Settings.c @@ -97,6 +97,10 @@ 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 = NVM_T_START_GAME_IN_MS; break; @@ -123,6 +127,10 @@ SystemKResult_T SETTINGS_set_uint32_t(SystemKSettingID_T id, uint32_t value) switch (id) { + 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; @@ -147,7 +155,7 @@ SystemKResult_T SETTINGS_get_device_name(char* name) { static char device_name[] = "Another 2020TPC"; - name = device_name; + strncpy(name, device_name, sizeof(device_name)); return SYSTEMK_RESULT_SUCCESS; } diff --git a/2020TPCApp1.cydsn/SystemK b/2020TPCApp1.cydsn/SystemK index 47822bb..cd33c35 160000 --- a/2020TPCApp1.cydsn/SystemK +++ b/2020TPCApp1.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 47822bbdec20eda1a4c21871c7b4fe17c36bb731 +Subproject commit cd33c3597481af67082b7db56bdab45ebd403ef6 diff --git a/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c b/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c index 0636c1d..5f9a494 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"); diff --git a/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c b/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c index f7959aa..964db30 100644 --- a/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c +++ b/2020TPCAppNoDFU.cydsn/NVM/NVM_Settings.c @@ -97,6 +97,10 @@ 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 = NVM_T_START_GAME_IN_MS; break; @@ -123,6 +127,10 @@ SystemKResult_T SETTINGS_set_uint32_t(SystemKSettingID_T id, uint32_t value) switch (id) { + 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; @@ -147,7 +155,7 @@ SystemKResult_T SETTINGS_get_device_name(char* name) { static char device_name[] = "Another 2020TPC"; - name = device_name; + strncpy(name, device_name, sizeof(device_name)); return SYSTEMK_RESULT_SUCCESS; } diff --git a/2020TPCAppNoDFU.cydsn/SystemK b/2020TPCAppNoDFU.cydsn/SystemK index 47822bb..cd33c35 160000 --- a/2020TPCAppNoDFU.cydsn/SystemK +++ b/2020TPCAppNoDFU.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 47822bbdec20eda1a4c21871c7b4fe17c36bb731 +Subproject commit cd33c3597481af67082b7db56bdab45ebd403ef6 -- 2.47.2 From d002ee11701785939d94c91bf52a91d099c7b0c8 Mon Sep 17 00:00:00 2001 From: Joe Kearney Date: Sat, 1 Mar 2025 19:07:03 -0600 Subject: [PATCH 5/6] Fixes after testing on the ESP32. --- 2020TPCApp1.cydsn/SystemK | 2 +- 2020TPCAppNoDFU.cydsn/SystemK | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/2020TPCApp1.cydsn/SystemK b/2020TPCApp1.cydsn/SystemK index 47822bb..c11206e 160000 --- a/2020TPCApp1.cydsn/SystemK +++ b/2020TPCApp1.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 47822bbdec20eda1a4c21871c7b4fe17c36bb731 +Subproject commit c11206e6255fef994c826fb446a234132571af4f diff --git a/2020TPCAppNoDFU.cydsn/SystemK b/2020TPCAppNoDFU.cydsn/SystemK index 47822bb..c11206e 160000 --- a/2020TPCAppNoDFU.cydsn/SystemK +++ b/2020TPCAppNoDFU.cydsn/SystemK @@ -1 +1 @@ -Subproject commit 47822bbdec20eda1a4c21871c7b4fe17c36bb731 +Subproject commit c11206e6255fef994c826fb446a234132571af4f -- 2.47.2 From 2bc9796f9e10f54f4b9d45d3c3fbfe1a93e26a04 Mon Sep 17 00:00:00 2001 From: Joe Kearney Date: Sun, 8 Jun 2025 17:18:28 -0500 Subject: [PATCH 6/6] Incorporating the latest SystemK. --- 2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c | 8 ++++++++ 2020TPCApp1.cydsn/SystemK | 2 +- 2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c | 8 ++++++++ 2020TPCAppNoDFU.cydsn/SystemK | 2 +- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c b/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c index 5f9a494..bb57994 100644 --- a/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c +++ b/2020TPCApp1.cydsn/COMM/BLE/COMM_BLE.c @@ -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/SystemK b/2020TPCApp1.cydsn/SystemK index c11206e..bfcdf4c 160000 --- a/2020TPCApp1.cydsn/SystemK +++ b/2020TPCApp1.cydsn/SystemK @@ -1 +1 @@ -Subproject commit c11206e6255fef994c826fb446a234132571af4f +Subproject commit bfcdf4c354ae6c96165e11e2fd6d52d0c8ab91eb diff --git a/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c b/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c index 5f9a494..bb57994 100644 --- a/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c +++ b/2020TPCAppNoDFU.cydsn/COMM/BLE/COMM_BLE.c @@ -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/SystemK b/2020TPCAppNoDFU.cydsn/SystemK index c11206e..bfcdf4c 160000 --- a/2020TPCAppNoDFU.cydsn/SystemK +++ b/2020TPCAppNoDFU.cydsn/SystemK @@ -1 +1 @@ -Subproject commit c11206e6255fef994c826fb446a234132571af4f +Subproject commit bfcdf4c354ae6c96165e11e2fd6d52d0c8ab91eb -- 2.47.2