Skip to content

Commit

Permalink
[platform] make setup constants configurable in gn
Browse files Browse the repository at this point in the history
Now you can use:
```
./gn_build.sh --pincode=87654321 --discriminator=1024
```
to specify the setup constants.
  • Loading branch information
gjc13 committed Aug 25, 2020
1 parent cc2423a commit ef61f77
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 2 deletions.
5 changes: 5 additions & 0 deletions examples/lock-app/efr32/include/CHIPProjectConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,13 @@
#define CHIP_DEVICE_CONFIG_ENABLE_TEST_DEVICE_IDENTITY 34

// Use a default pairing code if one hasn't been provisioned in flash.
#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 12345678
#endif

#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
#endif

// For convenience, Chip Security Test Mode can be enabled and the
// requirement for authentication in various protocols can be disabled.
Expand Down
5 changes: 5 additions & 0 deletions examples/lock-app/nrfconnect/main/include/CHIPProjectConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,12 @@
#define CHIP_PROJECT_CONFIG_H

// Use a default pairing code if one hasn't been provisioned in flash.
#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 12345678
#endif

#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
#endif

#endif // CHIP_PROJECT_CONFIG_H
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,13 @@
#define CHIP_DEVICE_CONFIG_ENABLE_TEST_DEVICE_IDENTITY 34

// Use a default pairing code if one hasn't been provisioned in flash.
#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 12345678
#endif

#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
#endif

/**
* CHIP_DEVICE_CONFIG_USE_TEST_SERIAL_NUMBER
Expand Down
19 changes: 19 additions & 0 deletions gn_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,25 @@ else
echo "Hint: Set \$EFR32_SDK_ROOT to enable building for EFR32"
fi

opts=$(getopt --longoptions "pincode:,discriminator:" -n "$0" --options "" -- "$@")
eval set --"$opts"

while [[ $# -gt 0 ]]; do
case "$1" in
--pincode)
extra_args+=" chip_device_config_use_test_setup_pin_code=$2"
shift 2
;;
--discriminator)
extra_args+=" chip_device_config_use_test_setup_discriminator=$2"
shift 2
;;
*)
break
;;
esac
done

echo

_chip_banner "Build: GN configure"
Expand Down
13 changes: 13 additions & 0 deletions src/platform/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@ if (chip_device_platform != "none" && chip_device_platform != "external") {

# Time the firmware was built.
chip_device_config_firmware_build_time = ""

# Test setup pincode
chip_device_config_use_test_setup_pin_code = ""

# Test setup discriminator
chip_device_config_use_test_setup_discriminator = ""
}

config("platform_config") {
Expand All @@ -58,6 +64,13 @@ if (chip_device_platform != "none" && chip_device_platform != "external") {
defines += [ "CHIP_DEVICE_CONFIG_FIRMWARE_BUILD_TIME=\"${chip_device_config_firmware_build_time}\"" ]
}

if (chip_device_config_use_test_setup_pin_code != "") {
defines += [ "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${chip_device_config_use_test_setup_pin_code}" ]
}
if (chip_device_config_use_test_setup_discriminator != "") {
defines += [ "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${chip_device_config_use_test_setup_discriminator}" ]
}

if (chip_device_platform == "darwin") {
frameworks = [
"CoreFoundation.framework",
Expand Down
7 changes: 5 additions & 2 deletions src/platform/nRF5/BLEManagerImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#if CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE

#include <ble/CHIPBleServiceData.h>
#include <platform/ConfigurationManager.h>
#include <platform/internal/BLEManager.h>

#include <support/CodeUtils.h>
Expand Down Expand Up @@ -253,8 +254,10 @@ CHIP_ERROR BLEManagerImpl::_SetDeviceName(const char * devName)
}
else
{
// FIXME: the name should be derived from factory data
snprintf(devNameBuf, sizeof(devNameBuf), "%s%04" PRIX32, CHIP_DEVICE_CONFIG_BLE_DEVICE_NAME_PREFIX, (uint32_t) 0);
uint32_t discriminator = 0;

ConfigurationMgr().GetSetupDiscriminator(discriminator);
snprintf(devNameBuf, sizeof(devNameBuf), "%s%04" PRIX32, CHIP_DEVICE_CONFIG_BLE_DEVICE_NAME_PREFIX, discriminator);
devNameBuf[kMaxDeviceNameLength] = 0;
}

Expand Down

0 comments on commit ef61f77

Please sign in to comment.