Skip to content

Commit

Permalink
ESP32: add RegulatoryLocation and LocationCapability value init
Browse files Browse the repository at this point in the history
  • Loading branch information
Jerry-ESP committed Nov 11, 2022
1 parent 599ad3b commit 0dab361
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 0 deletions.
48 changes: 48 additions & 0 deletions src/platform/ESP32/ConfigurationManagerImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,20 @@ CHIP_ERROR ConfigurationManagerImpl::Init()

// TODO: Initialize the global GroupKeyStore object here (#1266)

if (!ESP32Config::ConfigValueExists(ESP32Config::kConfigKey_RegulatoryLocation))
{
uint32_t location = to_underlying(chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType::kIndoor);
err = WriteConfigValue(ESP32Config::kConfigKey_RegulatoryLocation, location);
SuccessOrExit(err);
}

if (!ESP32Config::ConfigValueExists(ESP32Config::kConfigKey_LocationCapability))
{
uint32_t location = to_underlying(chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType::kIndoor);
err = WriteConfigValue(ESP32Config::kConfigKey_LocationCapability, location);
SuccessOrExit(err);
}

err = CHIP_NO_ERROR;

exit:
Expand Down Expand Up @@ -201,6 +215,40 @@ CHIP_ERROR ConfigurationManagerImpl::GetSoftwareVersion(uint32_t & softwareVer)
return CHIP_NO_ERROR;
}

CHIP_ERROR ConfigurationManagerImpl::GetRegulatoryLocation(uint8_t & location)
{
#if CHIP_DISABLE_PLATFORM_KVS
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
#else // CHIP_DISABLE_PLATFORM_KVS
uint32_t value = 0;

CHIP_ERROR err = ReadConfigValue(ESP32Config::kConfigKey_RegulatoryLocation, value);

if (err == CHIP_NO_ERROR)
{
VerifyOrReturnError(value <= UINT8_MAX, CHIP_ERROR_INVALID_INTEGER_VALUE);
location = static_cast<uint8_t>(value);
}

return err;
#endif // CHIP_DISABLE_PLATFORM_KVS
}

CHIP_ERROR ConfigurationManagerImpl::GetLocationCapability(uint8_t & location)
{
uint32_t value = 0;

CHIP_ERROR err = ReadConfigValue(ESP32Config::kConfigKey_LocationCapability, value);

if (err == CHIP_NO_ERROR)
{
VerifyOrReturnError(value <= UINT8_MAX, CHIP_ERROR_INVALID_INTEGER_VALUE);
location = static_cast<uint8_t>(value);
}

return err;
}

CHIP_ERROR ConfigurationManagerImpl::GetPrimaryWiFiMACAddress(uint8_t * buf)
{
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI
Expand Down
2 changes: 2 additions & 0 deletions src/platform/ESP32/ConfigurationManagerImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ class ConfigurationManagerImpl : public Internal::GenericConfigurationManagerImp
CHIP_ERROR StoreTotalOperationalHours(uint32_t totalOperationalHours) override;
CHIP_ERROR GetSoftwareVersionString(char * buf, size_t bufSize);
CHIP_ERROR GetSoftwareVersion(uint32_t & softwareVer) override;
CHIP_ERROR GetRegulatoryLocation(uint8_t & location) override;
CHIP_ERROR GetLocationCapability(uint8_t & location) override;
static ConfigurationManagerImpl & GetDefaultInstance();

private:
Expand Down
1 change: 1 addition & 0 deletions src/platform/ESP32/ESP32Config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ const ESP32Config::Key ESP32Config::kConfigKey_LastUsedEpochKeyId = { kConfigNam
const ESP32Config::Key ESP32Config::kConfigKey_FailSafeArmed = { kConfigNamespace_ChipConfig, "fail-safe-armed" };
const ESP32Config::Key ESP32Config::kConfigKey_WiFiStationSecType = { kConfigNamespace_ChipConfig, "sta-sec-type" };
const ESP32Config::Key ESP32Config::kConfigKey_RegulatoryLocation = { kConfigNamespace_ChipConfig, "reg-location" };
const ESP32Config::Key ESP32Config::kConfigKey_LocationCapability = { kConfigNamespace_ChipConfig, "loc-capability"};
const ESP32Config::Key ESP32Config::kConfigKey_CountryCode = { kConfigNamespace_ChipConfig, "country-code" };
const ESP32Config::Key ESP32Config::kConfigKey_UniqueId = { kConfigNamespace_ChipConfig, "unique-id" };

Expand Down
1 change: 1 addition & 0 deletions src/platform/ESP32/ESP32Config.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ class ESP32Config
static const Key kConfigKey_FailSafeArmed;
static const Key kConfigKey_WiFiStationSecType;
static const Key kConfigKey_RegulatoryLocation;
static const Key kConfigKey_LocationCapability;
static const Key kConfigKey_CountryCode;
static const Key kConfigKey_UniqueId;

Expand Down

0 comments on commit 0dab361

Please sign in to comment.