Usage of custom Factory Data Provider#
FactoryDataProviderImpl
is the default factory data provider. It is an
extension of FactoryDataProvider
K32W common class, which implements the
following interfaces:
CommissionableDataProvider
DeviceAttestationCredentialsProvider
DeviceInstanceInfoProvider
A user can use FactoryDataProvider::SearchForId
API to extract information
about custom factory data ids.
What shall be done to enable usage of a custom factory provider in the reference app:
Set
use_custom_factory_provider=1
. This option is only available when factory data is used (nxp_use_factory_data=true
). An assert will be raised if the condition is not met.Modify the
BUILD.gn
of the application to take into account the new files where the custom factory provider is implemented:if (nxp_use_factory_data && use_custom_factory_provider == 1) { sources += [ "${k32w0_platform_dir}/common/CustomFactoryDataProvider.h", "${k32w0_platform_dir}/common/CustomFactoryDataProvider.cpp", ] defines = [ "CHIP_DEVICE_CONFIG_USE_CUSTOM_PROVIDER=1", ] }
Note that new flags were introduced:
CHIP_DEVICE_CONFIG_USE_CUSTOM_PROVIDER
: add custom factory data related code in reference app.
Please refer to CustomFactoryDataProvider
for a minimal example of leveraging
the standard factory data provider to parse custom factory data information.
Real applications could use the public API of FactoryDataProvider
directly.