Pulled in the latest SystemK (with new BLE). (#1)

The new spec is here: [KTag Beacon Specification v0.11](https://ktag.clubk.club/Technology/BLE/KTag%20Beacon%20Specification%20v0.11.pdf)

Co-authored-by: Joe Kearney <joe@clubk.club>
Reviewed-on: #1
This commit is contained in:
Joe Kearney 2025-06-08 22:21:17 +00:00
parent dac4af8d25
commit e8dda3f16a
18 changed files with 274 additions and 47 deletions

View file

@ -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)