add wdm update in wdm
test instructions:
./boostrap
setup btvirt:
sudo ./build/x86_64-unknown-linux-gnu/third_party/bluez/repo/emulator/btvirt -L -l2
peripheral:
sudo ./output/x86_64-unknown-linux-gnu/bin/mock-device --enable-bluez-peripheral --peripheral-name N0003 --peripheral-address 00:AA:01:00:00:23 --wdm-resp-mutual-sub --test-case 11 --total-count 0 --wdm-update-timing NoSub
central:
weave-device-mgr > ble-adapter-select 00:AA:01:01:00:24
weave-device-mgr > ble-scan-connect -t 120 00:AA:01:00:00:23
weave-device-mgr > connect -b -p TEST
weave-device-mgr > update-trait 20 0 1 "{2: 1, 10: {1: 'en-US'}}"
weave-device-mgr > view-trait 20 0 1
weave-device-mgr > send-custom-command test blol
diff --git a/Makefile.in b/Makefile.in
index dab8519..3effa25 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,17 @@
#
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -103,26 +113,6 @@
host_triplet = @host@
target_triplet = @target@
subdir = .
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/configure $(am__configure_deps) \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs \
- $(dist_doc_DATA) \
- third_party/nlbuild-autotools/repo/third_party/autoconf/ar-lib \
- third_party/nlbuild-autotools/repo/third_party/autoconf/compile \
- third_party/nlbuild-autotools/repo/third_party/autoconf/config.guess \
- third_party/nlbuild-autotools/repo/third_party/autoconf/config.sub \
- third_party/nlbuild-autotools/repo/third_party/autoconf/depcomp \
- third_party/nlbuild-autotools/repo/third_party/autoconf/install-sh \
- third_party/nlbuild-autotools/repo/third_party/autoconf/missing \
- third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs \
- third_party/nlbuild-autotools/repo/third_party/autoconf/py-compile \
- third_party/nlbuild-autotools/repo/third_party/autoconf/ltmain.sh \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/compile \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/config.guess \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/config.sub \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/install-sh \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/ltmain.sh \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/third_party/nlbuild-autotools/repo/autoconf/m4/ax_check_compiler.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/autoconf/m4/nl_enable_coverage.m4 \
@@ -141,18 +131,20 @@
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_cxx_compile_stdcxx_11.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_jni_include_dir.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_pthread.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/libtool.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltoptions.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltsugar.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltversion.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/lt~obsolete.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/pkg.m4 \
+ $(top_srcdir)/build/autoconf/m4/libtool.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltoptions.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltsugar.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltversion.m4 \
+ $(top_srcdir)/build/autoconf/m4/lt~obsolete.m4 \
$(top_srcdir)/build/autoconf/m4/nl_check_project_config_includes.m4 \
$(top_srcdir)/build/autoconf/m4/nl_enable_long_tests.m4 \
$(top_srcdir)/build/autoconf/m4/nl_with_lwip.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(dist_doc_DATA) $(am__DIST_COMMON)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(SHELL) \
@@ -223,7 +215,7 @@
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- cscope distdir dist dist-all distcheck
+ cscope distdir distdir-am dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
@@ -245,6 +237,23 @@
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/compile \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/config.guess \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/config.sub \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/install-sh \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/ltmain.sh \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/missing \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs \
+ third_party/nlbuild-autotools/repo/third_party/autoconf/ar-lib \
+ third_party/nlbuild-autotools/repo/third_party/autoconf/compile \
+ third_party/nlbuild-autotools/repo/third_party/autoconf/config.guess \
+ third_party/nlbuild-autotools/repo/third_party/autoconf/config.sub \
+ third_party/nlbuild-autotools/repo/third_party/autoconf/install-sh \
+ third_party/nlbuild-autotools/repo/third_party/autoconf/ltmain.sh \
+ third_party/nlbuild-autotools/repo/third_party/autoconf/missing \
+ third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs \
+ third_party/nlbuild-autotools/repo/third_party/autoconf/py-compile
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@@ -375,6 +384,7 @@
LNDIR = @LNDIR@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LWIP_CPPFLAGS = @LWIP_CPPFLAGS@
LWIP_LDFLAGS = @LWIP_LDFLAGS@
LWIP_LIBS = @LWIP_LIBS@
@@ -534,6 +544,7 @@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@@ -680,15 +691,14 @@
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -836,7 +846,10 @@
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -904,7 +917,7 @@
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
$(am__post_remove_distdir)
dist-bzip2: distdir
@@ -920,17 +933,17 @@
$(am__post_remove_distdir)
dist-tarZ: distdir
- @echo WARNING: "Support for shar distribution archives is" \
- "deprecated." >&2
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
dist-shar: distdir
- @echo WARNING: "Support for distribution archives compressed with" \
- "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
$(am__post_remove_distdir)
dist-zip: distdir
@@ -948,7 +961,7 @@
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lz*) \
@@ -958,23 +971,23 @@
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
- mkdir $(distdir)/_build $(distdir)/_inst
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build \
- && ../configure \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
- --srcdir=.. --prefix="$$dc_install_base" \
+ --srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
@@ -1161,6 +1174,8 @@
ps ps-am tags tags-am uninstall uninstall-am \
uninstall-dist_docDATA
+.PRECIOUS: Makefile
+
include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
diff --git a/src/device-manager/DeviceManager.am b/src/device-manager/DeviceManager.am
index 2109338..9070c7e 100644
--- a/src/device-manager/DeviceManager.am
+++ b/src/device-manager/DeviceManager.am
@@ -34,6 +34,8 @@
nl_DeviceManager_sources += \
@top_builddir@/src/device-manager/WeaveDeviceManager.cpp \
+ @top_builddir@/src/device-manager/GenericTraitDataSink.cpp \
+ @top_builddir@/src/device-manager/LocaleSettingsTrait.cpp \
$(NULL)
if CONFIG_NETWORK_LAYER_BLE
diff --git a/src/device-manager/GenericTraitDataSink.cpp b/src/device-manager/GenericTraitDataSink.cpp
new file mode 100644
index 0000000..1d789e1
--- /dev/null
+++ b/src/device-manager/GenericTraitDataSink.cpp
@@ -0,0 +1,216 @@
+/*
+ *
+ * Copyright (c) 2019 Google LLC.
+ * All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file
+ * Generic trait data sinks.
+ */
+
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS
+#endif
+
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS
+#endif
+
+#include <stdint.h>
+#include <inttypes.h>
+
+// Note that the choice of namespace alias must be made up front for each and every compile unit
+// This is because many include paths could set the default alias to unintended target.
+
+#include <Weave/Profiles/data-management/Current/WdmManagedNamespace.h>
+#include <Weave/Support/CodeUtils.h>
+#include "GenericTraitDataSink.h"
+
+using namespace ::nl::Weave;
+using namespace ::nl::Weave::TLV;
+using namespace ::nl::Weave::Profiles::DataManagement;
+using namespace Schema::Weave::Common;
+
+GenericTraitDataSink::GenericTraitDataSink(const nl::Weave::Profiles::DataManagement::TraitSchemaEngine * aEngine)
+ : TraitUpdatableDataSink(aEngine)
+{
+}
+
+GenericTraitDataSink::~GenericTraitDataSink()
+{
+ for (auto itr = mpathLeafTlvMap.begin(); itr != mpathLeafTlvMap.end(); ++itr)
+ {
+ if (NULL != itr->second)
+ {
+ PacketBuffer::Free(itr->second);
+ mpathLeafTlvMap.erase(itr->first);
+ }
+ }
+}
+
+WEAVE_ERROR
+GenericTraitDataSink::SetLeaf(PropertyPathHandle aLeafHandle, char *buf)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ nl::Weave::TLV::TLVWriter writer;
+ nl::Weave::TLV::TLVReader reader;
+ PacketBuffer *msgBuf = PacketBuffer::New();
+ VerifyOrExit(NULL != msgBuf, err = WEAVE_ERROR_NO_MEMORY);
+ writer.Init(msgBuf);
+ WeaveLogDetail(DataManagement, "test1");
+ err = writer.PutString(AnonymousTag, buf);
+ SuccessOrExit(err);
+ err = writer.Finalize();
+ SuccessOrExit(err);
+
+ WeaveLogDetail(DataManagement, "test2: %s", buf);
+ mpathLeafTlvMap[aLeafHandle] = msgBuf;
+
+ SuccessOrExit(err);
+ WeaveLogDetail(DataManagement, "test3");
+
+ reader.Init(msgBuf);
+ err = reader.Next();
+ SuccessOrExit(err);
+ WeaveLogDetail(DataManagement, "test4");
+ DebugPrettyPrint(reader);
+
+ msgBuf = NULL;
+exit:
+ if (NULL != msgBuf)
+ {
+ PacketBuffer::Free(msgBuf);
+ msgBuf = NULL;
+ }
+
+ return err;
+}
+
+WEAVE_ERROR
+GenericTraitDataSink::SetLeafData(PropertyPathHandle aLeafHandle, TLVReader &aReader)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+
+ nl::Weave::TLV::TLVWriter writer;
+ PacketBuffer *msgBuf = PacketBuffer::New();
+ VerifyOrExit(NULL != msgBuf, err = WEAVE_ERROR_NO_MEMORY);
+ writer.Init(msgBuf);
+ err = writer.CopyElement(AnonymousTag, aReader);
+ SuccessOrExit(err);
+ err = writer.Finalize();
+ SuccessOrExit(err);
+ mpathLeafTlvMap[aLeafHandle] = msgBuf;
+ msgBuf = NULL;
+ SuccessOrExit(err);
+
+exit:
+ if (NULL != msgBuf)
+ {
+ PacketBuffer::Free(msgBuf);
+ msgBuf = NULL;
+ }
+ return err;
+}
+
+WEAVE_ERROR
+GenericTraitDataSink::GetLeafData(PropertyPathHandle aLeafHandle, char *buf)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ nl::Weave::TLV::TLVReader reader;
+ PacketBuffer *msgBuf = NULL;
+ std::map<PropertyPathHandle, PacketBuffer *>::iterator it = mpathLeafTlvMap.find(aLeafHandle);
+ WeaveLogDetail(DataManagement, "get1");
+ VerifyOrExit(it != mpathLeafTlvMap.end(), err = WEAVE_ERROR_INCORRECT_STATE);
+
+ WeaveLogDetail(DataManagement, "get2");
+ msgBuf = mpathLeafTlvMap[aLeafHandle];
+ mpathLeafTlvMap.erase(aLeafHandle);
+ WeaveLogDetail(DataManagement, "get3");
+ reader.Init(msgBuf);
+ err = reader.Next();
+ SuccessOrExit(err);
+ WeaveLogDetail(DataManagement, "get4");
+ err = reader.GetString(buf, sizeof(buf));
+ SuccessOrExit(err);
+ WeaveLogDetail(DataManagement, "get5");
+exit:
+ if (NULL != msgBuf)
+ {
+ PacketBuffer::Free(msgBuf);
+ msgBuf = NULL;
+ }
+ WeaveLogFunctError(err);
+
+ return err;
+}
+
+WEAVE_ERROR
+GenericTraitDataSink::GetLeafData(PropertyPathHandle aLeafHandle, uint64_t aTagToWrite, TLVWriter &aWriter)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ nl::Weave::TLV::TLVReader reader;
+ PacketBuffer *msgBuf = NULL;
+ char next_locale[24];
+ std::map<PropertyPathHandle, PacketBuffer *>::iterator it = mpathLeafTlvMap.find(aLeafHandle);
+ WeaveLogDetail(DataManagement, "testget1");
+
+ VerifyOrExit(it != mpathLeafTlvMap.end(), err = WEAVE_ERROR_INCORRECT_STATE);
+
+ WeaveLogDetail(DataManagement, "testget2");
+ msgBuf = mpathLeafTlvMap[aLeafHandle];
+ //mpathLeafTlvMap.erase(aLeafHandle);
+ WeaveLogDetail(DataManagement, "testget3");
+ reader.Init(msgBuf);
+ err = reader.Next();
+ DebugPrettyPrint(reader);
+ WeaveLogDetail(DataManagement, "testget4");
+ SuccessOrExit(err);
+
+ err = aWriter.CopyElement(aTagToWrite, reader);
+ SuccessOrExit(err);
+ WeaveLogDetail(DataManagement, "testget6");
+exit:
+ if (NULL != msgBuf)
+ {
+ PacketBuffer::Free(msgBuf);
+ msgBuf = NULL;
+ }
+ WeaveLogFunctError(err);
+
+ return err;
+}
+
+WEAVE_ERROR GenericTraitDataSink::GetNextDictionaryItemKey(PropertyPathHandle aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
+{
+ return WEAVE_END_OF_INPUT;
+}
+
+void GenericTraitDataSink::TLVPrettyPrinter(const char *aFormat, ...)
+{
+ va_list args;
+
+ va_start(args, aFormat);
+
+ // There is no proper Weave logging routine for us to use here
+ vprintf(aFormat, args);
+
+ va_end(args);
+}
+
+WEAVE_ERROR GenericTraitDataSink::DebugPrettyPrint(nl::Weave::TLV::TLVReader & aReader)
+{
+ return nl::Weave::TLV::Debug::Dump(aReader, TLVPrettyPrinter);
+}
diff --git a/src/device-manager/GenericTraitDataSink.h b/src/device-manager/GenericTraitDataSink.h
new file mode 100644
index 0000000..f8b5428
--- /dev/null
+++ b/src/device-manager/GenericTraitDataSink.h
@@ -0,0 +1,61 @@
+/*
+ *
+ * Copyright (c) 2019 Google, LLC.
+ * All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file
+ * Sample mock trait data sinks that implement the simple and complex mock traits.
+ *
+ */
+
+#ifndef MOCK_TRAIT_SINKS_H_
+#define MOCK_TRAIT_SINKS_H_
+#define MAX_ARRAY_LEN 10
+#define MAX_ARRAY_SIZE sizeof(char) * MAX_ARRAY_LEN
+#define MAX_LOCALE_SIZE sizeof(char) * 24
+
+#include <SystemLayer/SystemPacketBuffer.h>
+
+// We want and assume the default managed namespace is Current and that is, explicitly, the managed namespace this code desires.
+#include <Weave/Profiles/data-management/DataManagement.h>
+#include <Weave/Profiles/data-management/SubscriptionClient.h>
+
+#include <map>
+using ::nl::Weave::System::PacketBuffer;
+using namespace ::nl::Weave::Profiles::DataManagement_Current;
+
+class GenericTraitDataSink : public nl::Weave::Profiles::DataManagement::TraitUpdatableDataSink
+{
+public:
+ GenericTraitDataSink(const nl::Weave::Profiles::DataManagement::TraitSchemaEngine * aEngine);
+ ~GenericTraitDataSink();
+ void ResetDataSink(void) { ClearVersion(); };
+ WEAVE_ERROR SetLeaf(PropertyPathHandle aLeafHandle, char *buf);
+ WEAVE_ERROR GetLeafData(PropertyPathHandle aLeafHandle, char *buf);
+
+private:
+ WEAVE_ERROR SetLeafData(nl::Weave::Profiles::DataManagement::PropertyPathHandle aLeafHandle, nl::Weave::TLV::TLVReader &aReader) __OVERRIDE;
+ WEAVE_ERROR GetLeafData(nl::Weave::Profiles::DataManagement::PropertyPathHandle aLeafHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter &aWriter) __OVERRIDE;
+ WEAVE_ERROR GetNextDictionaryItemKey(nl::Weave::Profiles::DataManagement::PropertyPathHandle aDictionaryHandle, uintptr_t &aContext, nl::Weave::Profiles::DataManagement::PropertyDictionaryKey &aKey) __OVERRIDE;
+
+ static void TLVPrettyPrinter(const char *aFormat, ...);
+ static WEAVE_ERROR DebugPrettyPrint(nl::Weave::TLV::TLVReader & aReader);
+
+ std::map<PropertyPathHandle, PacketBuffer *> mpathLeafTlvMap;
+};
+
+#endif // MOCK_TRAIT_SINKS_H_
diff --git a/src/device-manager/LocaleSettingsTrait.cpp b/src/device-manager/LocaleSettingsTrait.cpp
new file mode 100644
index 0000000..14a72f6
--- /dev/null
+++ b/src/device-manager/LocaleSettingsTrait.cpp
@@ -0,0 +1,67 @@
+/*
+ *
+ * Copyright (c) 2017 Nest Labs, Inc.
+ * All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file
+ * THIS FILE IS GENERATED. DO NOT MODIFY.
+ *
+ * SOURCE PROTO: weave/trait/locale/locale_settings_trait.proto
+ *
+ */
+
+#include "LocaleSettingsTrait.h"
+
+using namespace nl::Weave::Profiles::DataManagement;
+
+namespace nl {
+ namespace Weave {
+ namespace DeviceManager {
+ namespace LocaleSettingsTrait {
+ TraitSchemaEngine::PropertyInfo gSchemaMap[] = {
+ /* ParentHandle ContextTag */
+ {kPropertyHandle_Root, 1}
+ };
+
+ TraitSchemaEngine TraitSchema = {
+ {
+ kWeaveProfileId,
+ gSchemaMap,
+ sizeof(gSchemaMap) / sizeof(gSchemaMap[0]),
+ 1,
+#if (TDM_EXTENSION_SUPPORT) || (TDM_VERSIONING_SUPPORT)
+ 2,
+#endif
+#if (TDM_DICTIONARY_SUPPORT)
+ NULL,
+#endif
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+#if (TDM_EXTENSION_SUPPORT)
+ NULL,
+#endif
+#if (TDM_VERSIONING_SUPPORT)
+ NULL,
+#endif
+ }
+ };
+
+ }; // LocaleSettingsTrait
+ }; // DeviceManager
+ }; // Weave
+}; // nl
diff --git a/src/device-manager/LocaleSettingsTrait.h b/src/device-manager/LocaleSettingsTrait.h
new file mode 100644
index 0000000..4e3f198
--- /dev/null
+++ b/src/device-manager/LocaleSettingsTrait.h
@@ -0,0 +1,85 @@
+/*
+ *
+ * Copyright (c) 2016-2017 Nest Labs, Inc.
+ * All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file
+ * THIS FILE IS GENERATED. DO NOT MODIFY.
+ *
+ * SOURCE PROTO: weave/trait/locale/locale_settings_trait.proto
+ *
+ */
+
+#ifndef _LOCALE_SETTINGS_TRAIT_H
+#define _LOCALE_SETTINGS_TRAIT_H
+
+// We want and assume the default managed namespace is Current and that is, explicitly, the managed namespace this code desires.
+#include <Weave/Profiles/data-management/TraitData.h>
+
+namespace nl {
+ namespace Weave {
+ namespace DeviceManager {
+ namespace LocaleSettingsTrait {
+ extern nl::Weave::Profiles::DataManagement::TraitSchemaEngine TraitSchema;
+
+ enum {
+ kWeaveProfileId = 0x00000014
+ };
+
+ enum {
+ kPropertyHandle_Root = 1,
+ /*
+ * Root =
+ * {
+ * active_locale = 1 (string),
+ */
+ kPropertyHandle_active_locale = 2,
+
+ /*
+ * }
+ *
+ */
+ };
+ //
+// Commands
+//
+
+ enum {
+ kCommandARequestId = 0x1,
+ kCommandBRequestId = 0x2,
+ };
+
+ enum CommandARequestParameters {
+ kCommandARequestParameter_A = 1,
+ kCommandARequestParameter_B = 2,
+ };
+
+ enum CommandBRequestParameters {
+ kCommandBRequestParameter_A = 1,
+ kCommandBRequestParameter_B = 2,
+ };
+
+ enum CommandBResponseParameters {
+ kCommandBResponseParameter_A = 1,
+ kCommandBResponseParameter_B = 2,
+ };
+ }; // LocaleSettingsTrait
+ } // DeviceManager
+ } // Weave
+} // nl
+
+#endif // _LOCALE_SETTINGS_TRAIT_H
\ No newline at end of file
diff --git a/src/device-manager/WeaveDeviceManager.cpp b/src/device-manager/WeaveDeviceManager.cpp
index d76336a..a4a1f39 100644
--- a/src/device-manager/WeaveDeviceManager.cpp
+++ b/src/device-manager/WeaveDeviceManager.cpp
@@ -32,6 +32,8 @@
#include <errno.h>
#include <time.h>
+#include <Weave/Profiles/data-management/Current/WdmManagedNamespace.h>
+
#include <Weave/Core/WeaveCore.h>
#include <Weave/Support/Base64.h>
#include <Weave/Support/CodeUtils.h>
@@ -42,6 +44,7 @@
#include <Weave/Profiles/network-provisioning/NetworkProvisioning.h>
#include <Weave/Profiles/service-provisioning/ServiceProvisioning.h>
#include <Weave/Profiles/fabric-provisioning/FabricProvisioning.h>
+#include <Weave/Profiles/data-management/DataManagement.h>
#include <Weave/Profiles/device-description/DeviceDescription.h>
#include <Weave/Profiles/device-control/DeviceControl.h>
#include <Weave/Profiles/vendor/nestlabs/device-description/NestProductIdentifiers.hpp>
@@ -58,12 +61,44 @@
#include <Weave/Profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.h>
namespace nl {
+ namespace Weave {
+ namespace Profiles {
+ namespace WeaveMakeManagedNamespaceIdentifier(DataManagement, kWeaveManagedNamespaceDesignation_Current) {
+
+ SubscriptionEngine * SubscriptionEngine::GetInstance()
+ {
+ static nl::Weave::Profiles::DataManagement::SubscriptionEngine gWdmSubscriptionEngine;
+ return &gWdmSubscriptionEngine;
+ }
+
+ namespace Platform {
+ // For unit tests, a dummy critical section is sufficient.
+ void CriticalSectionEnter()
+ {
+ return;
+ }
+
+ void CriticalSectionExit()
+ {
+ return;
+ }
+
+ } // Platform
+
+ } // WeaveMakeManagedNamespaceIdentifier(DataManagement, kWeaveManagedNamespaceDesignation_Current)
+ } // Profiles
+} // Weave
+} // nl
+
+namespace nl {
namespace Weave {
namespace DeviceManager {
using namespace nl::Weave::Encoding;
using namespace nl::Weave::Profiles;
+using namespace nl::Weave::Profiles::DataManagement;
using namespace nl::Weave::Profiles::DeviceDescription;
+using namespace nl::Weave::Profiles::Locale;
using namespace nl::Weave::Profiles::NetworkProvisioning;
using namespace nl::Weave::Profiles::Security;
using namespace nl::Weave::Profiles::ServiceProvisioning;
@@ -73,10 +108,13 @@
using namespace nl::Weave::Profiles::Vendor::Nestlabs::Thermostat;
using namespace nl::Weave::TLV;
+const nl::Weave::ExchangeContext::Timeout kResponseTimeoutMsec = 15000;
+
static bool IsProductWildcard(uint16_t productId);
static const uint32_t ENUMERATED_NODES_LIST_INITIAL_SIZE = 256;
+
WeaveDeviceManager *WeaveDeviceManager::sListeningDeviceMgr = NULL;
WeaveDeviceManager::WeaveDeviceManager()
@@ -142,7 +180,6 @@
mEnumeratedNodes = NULL;
mEnumeratedNodesLen = 0;
mEnumeratedNodesMaxLen = 0;
-
// By default, rendezvous messages are sent to the IPv6 link-local, all-nodes multicast address.
mRendezvousAddr = IPAddress::MakeIPv6WellKnownMulticast(kIPv6MulticastScope_Link, kIPV6MulticastGroup_AllNodes);
@@ -5056,6 +5093,746 @@
return WEAVE_NO_ERROR;
}
+WeaveDeviceManager::WDMDMClient::WDMDMClient() :
+ mpGenericTraitDataSink(NULL),
+ mpDeviceMgr(NULL),
+ mpBinding(NULL),
+ mSinkCatalog(ResourceIdentifier(ResourceIdentifier::SELF_NODE_ID),
+ mSinkCatalogStore, sizeof(mSinkCatalogStore) / sizeof(mSinkCatalogStore[0]))
+{
+ mPathList.Init(mStorage, ArraySize(mStorage));
+}
+
+WeaveDeviceManager::WDMDMClient::~WDMDMClient(void)
+{
+ mpDeviceMgr = NULL;
+ mpBinding = NULL;
+ mDeviceId = kNodeIdNotSpecified ;
+}
+
+void WeaveDeviceManager::WDMDMClient::EngineEventCallback (void * const aAppState,
+ SubscriptionEngine::EventID aEvent,
+ const SubscriptionEngine::InEventParam & aInParam, SubscriptionEngine::OutEventParam & aOutParam)
+{
+ switch (aEvent)
+ {
+ default:
+ SubscriptionEngine::DefaultEventHandler(aEvent, aInParam, aOutParam);
+ break;
+ }
+}
+
+WEAVE_ERROR WeaveDeviceManager::WDMDMClient::Setup(WeaveDeviceManager *apDeviceMgr, WeaveExchangeManager *apExchangeMgr, uint64_t aDeviceId, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ mpDeviceMgr = apDeviceMgr;
+ mDeviceId = aDeviceId;
+ mSubscriptionClient = NULL;
+ mpExchangeMgr = apExchangeMgr;
+ mpEcCommand = NULL;
+ mCmdState = kCmdState_Idle;
+
+ VerifyOrExit(mpGenericTraitDataSink == NULL, err = WEAVE_ERROR_INCORRECT_STATE);
+ mpGenericTraitDataSink = new GenericTraitDataSink(&LocaleSettingsTrait::TraitSchema);
+ VerifyOrExit(mpGenericTraitDataSink != NULL, err = WEAVE_ERROR_NO_MEMORY);
+
+ mSinkCatalog.Add(0, mpGenericTraitDataSink, mTraitHandleSet[0]);
+
+ mSinkCatalog.Locate(aProfileId, aInstanceId, mTraitPaths[0].mTraitDataHandle);
+
+ mTraitPaths[0].mPropertyPathHandle = aPropertyPathHandle;
+
+ err = SubscriptionEngine::GetInstance()->Init(mpExchangeMgr, this, EngineEventCallback);
+ SuccessOrExit(err);
+
+ if (NULL == mpBinding)
+ {
+ mpBinding = mpExchangeMgr->NewBinding(BindingEventCallback, this);
+ VerifyOrExit(NULL != mpBinding, err = WEAVE_ERROR_NO_MEMORY);
+ if (mpBinding->CanBePrepared())
+ {
+ err = mpBinding->RequestPrepare();
+ SuccessOrExit(err);
+ }
+ }
+
+exit:
+ return err;
+}
+
+void WeaveDeviceManager::WDMDMClient::TearDown()
+{
+ mpDeviceMgr = NULL;
+ mDeviceId = NULL;
+
+ if (NULL == mpBinding)
+ {
+ mpBinding->Release();
+ mpBinding = NULL;
+ }
+
+ if (mpGenericTraitDataSink != NULL)
+ {
+ delete mpGenericTraitDataSink;
+ mpGenericTraitDataSink = NULL;
+ }
+}
+
+void WeaveDeviceManager::WDMDMClient::BindingEventCallback (void * const apAppState, const nl::Weave::Binding::EventType aEvent,
+ const nl::Weave::Binding::InEventParam & aInParam, nl::Weave::Binding::OutEventParam & aOutParam)
+{
+
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+
+ WeaveLogDetail(DeviceManager, "%s: Event(%d)", __func__, aEvent);
+
+ WDMDMClient * const pWDMDMClient = reinterpret_cast<WDMDMClient *>(apAppState);
+
+ switch (aEvent)
+ {
+ case nl::Weave::Binding::kEvent_PrepareRequested:
+ WeaveLogDetail(DeviceManager, "kEvent_PrepareRequested");
+ err = pWDMDMClient->PrepareBinding(pWDMDMClient->mpDeviceMgr->mDeviceCon);
+ SuccessOrExit(err);
+ break;
+
+ case nl::Weave::Binding::kEvent_PrepareFailed:
+ err = aInParam.PrepareFailed.Reason;
+ WeaveLogDetail(DeviceManager, "kEvent_PrepareFailed: reason");
+ break;
+
+ case nl::Weave::Binding::kEvent_BindingFailed:
+ err = aInParam.BindingFailed.Reason;
+ WeaveLogDetail(DeviceManager, "kEvent_BindingFailed: reason");
+ break;
+
+ case nl::Weave::Binding::kEvent_BindingReady:
+ WeaveLogDetail(DeviceManager, "kEvent_BindingReady");
+
+ WeaveLogProgress(DeviceManager, "%s", __PRETTY_FUNCTION__);
+
+ break;
+
+ case nl::Weave::Binding::kEvent_DefaultCheck:
+ WeaveLogDetail(DeviceManager, "kEvent_DefaultCheck");
+
+ default:
+ nl::Weave::Binding::DefaultEventHandler(apAppState, aEvent, aInParam, aOutParam);
+ }
+
+exit:
+ if (err != WEAVE_NO_ERROR)
+ {
+ WeaveLogDetail(DeviceManager, "error in BindingEventCallback");
+ if (NULL != pWDMDMClient->mpBinding)
+ {
+ pWDMDMClient->mpBinding->Release();
+ pWDMDMClient->mpBinding = NULL;
+ }
+ }
+}
+
+WEAVE_ERROR WeaveDeviceManager::WDMDMClient::PrepareBinding(WeaveConnection *apDeviceCon)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+
+ if (apDeviceCon != NULL)
+ {
+ Binding::Configuration bindingConfig = mpBinding->BeginConfiguration()
+ .Target_NodeId(mDeviceId)
+ .Security_None()
+ .Transport_ExistingConnection(apDeviceCon)
+ .Exchange_ResponseTimeoutMsec(kResponseTimeoutMsec);
+ err = bindingConfig.PrepareBinding();
+ }
+ else
+ {
+ WeaveLogDetail(DeviceManager, "apDeviceCon is NULL");
+ err = WEAVE_ERROR_INCORRECT_STATE;
+ }
+
+ return err;
+}
+
+void WeaveDeviceManager::WDMDMClient::ClientEventCallback (void * const aAppState, SubscriptionClient::EventID aEvent,
+ const SubscriptionClient::InEventParam & aInParam, SubscriptionClient::OutEventParam & aOutParam)
+{
+ WDMDMClient * const pWDMDMClient = reinterpret_cast<WDMDMClient *>(aAppState);
+
+ switch (aEvent)
+ {
+ case SubscriptionClient::kEvent_OnExchangeStart:
+ WeaveLogDetail(DeviceManager, "Client->kEvent_OnExchangeStart");
+ break;
+ case SubscriptionClient::kEvent_OnSubscribeRequestPrepareNeeded:
+ WeaveLogDetail(DeviceManager, "Client->kEvent_OnSubscribeRequestPrepareNeeded");
+
+ aOutParam.mSubscribeRequestPrepareNeeded.mPathList = pWDMDMClient->mTraitPaths;
+ aOutParam.mSubscribeRequestPrepareNeeded.mPathListSize = 1;
+ aOutParam.mSubscribeRequestPrepareNeeded.mNeedAllEvents = false;
+ aOutParam.mSubscribeRequestPrepareNeeded.mLastObservedEventList = NULL;
+ aOutParam.mSubscribeRequestPrepareNeeded.mLastObservedEventListSize = 0;
+ aOutParam.mSubscribeRequestPrepareNeeded.mTimeoutSecMin = 30;
+ aOutParam.mSubscribeRequestPrepareNeeded.mTimeoutSecMax = 3600;
+ break;
+
+ case SubscriptionClient::kEvent_OnSubscriptionEstablished:
+ WeaveLogDetail(DeviceManager, "Client->kEvent_OnSubscriptionEstablished");
+
+ if (pWDMDMClient)
+ {
+ pWDMDMClient->mSubscriptionClient->AbortSubscription();
+
+ WeaveLogProgress(DeviceManager, "%s", __PRETTY_FUNCTION__);
+
+ pWDMDMClient->RetrieveSinkTraitData();
+ //pWDMDMClient->TearDown();
+ }
+ break;
+ case SubscriptionClient::kEvent_OnNotificationRequest:
+ WeaveLogDetail(DeviceManager, "Client->kEvent_OnNotificationRequest");
+ break;
+ case SubscriptionClient::kEvent_OnNotificationProcessed:
+ WeaveLogDetail(DeviceManager, "Client->kEvent_OnNotificationProcessed");
+ break;
+ case SubscriptionClient::kEvent_OnSubscriptionTerminated:
+ WeaveLogDetail(DeviceManager, "Client->kEvent_OnSubscriptionTerminated. Reason: %u, peer = 0x%" PRIX64 "\n",
+ aInParam.mSubscriptionTerminated.mReason,
+ aInParam.mSubscriptionTerminated.mClient->GetPeerNodeId());
+ if (pWDMDMClient)
+ {
+ pWDMDMClient->mSubscriptionClient->AbortSubscription();
+ pWDMDMClient->mpDeviceMgr->ClearOpState();
+ pWDMDMClient->mpDeviceMgr->mOnComplete.General(pWDMDMClient->mpDeviceMgr, pWDMDMClient->mpDeviceMgr->mAppReqState);
+ //pWDMDMClient->TearDown();
+ }
+ break;
+ case SubscriptionClient::kEvent_OnUpdateComplete:
+ if ((aInParam.mUpdateComplete.mReason == WEAVE_NO_ERROR) && (nl::Weave::Profiles::Common::kStatus_Success == aInParam.mUpdateComplete.mStatusCode))
+ {
+ WeaveLogDetail(DeviceManager, "Update: path result: success");
+ }
+ else
+ {
+ WeaveLogDetail(DataManagement, "Update: path failed: %s, %s, tdh %" PRIu16", will %sretry",
+ ErrorStr(aInParam.mUpdateComplete.mReason),
+ nl::StatusReportStr(aInParam.mUpdateComplete.mStatusProfileId, aInParam.mUpdateComplete.mStatusCode),
+ aInParam.mUpdateComplete.mTraitDataHandle,
+ aInParam.mUpdateComplete.mWillRetry ? "" : "not ");
+ }
+ if (pWDMDMClient)
+ {
+ pWDMDMClient->mpDeviceMgr->ClearOpState();
+ pWDMDMClient->mpDeviceMgr->mOnComplete.General(pWDMDMClient->mpDeviceMgr, pWDMDMClient->mpDeviceMgr->mAppReqState);
+ //pWDMDMClient->TearDown();
+ }
+ break;
+ case SubscriptionClient::kEvent_OnNoMorePendingUpdates:
+ WeaveLogDetail(DeviceManager, "Update: no more pending updates");
+ break;
+
+ default:
+ SubscriptionClient::DefaultEventHandler(aEvent, aInParam, aOutParam);
+ break;
+ }
+}
+
+WEAVE_ERROR WeaveDeviceManager::WDMDMClient::InitDMClient(WeaveDeviceManager *apDeviceMgr, WeaveExchangeManager *apExchangeMgr, uint64_t aDeviceId, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+
+ Setup(apDeviceMgr, apExchangeMgr, aDeviceId, aProfileId, aInstanceId, aPropertyPathHandle);
+ //WeaveLogProgress(DeviceManager, "%s", __PRETTY_FUNCTION__);
+
+ if (mSubscriptionClient == NULL)
+ {
+ err = SubscriptionEngine::GetInstance()->NewClient(&mSubscriptionClient,
+ mpBinding,
+ this,
+ ClientEventCallback,
+ &mSinkCatalog,
+ kResponseTimeoutMsec * 2); // max num of msec between subscribe request and subscribe response
+ SuccessOrExit(err);
+ }
+
+ mSubscriptionClient->EnableResubscribe(NULL);
+
+ mPathList.Clear();
+exit:
+ return WEAVE_NO_ERROR;
+}
+
+WEAVE_ERROR WeaveDeviceManager::WDMDMClient::TriggerCustomCommand(const char *apName, const char *apCustomCommand)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ PacketBuffer *msgBuf = PacketBuffer::New();
+ static uint32_t commandType = 1;
+ static uint32_t signatureType = 0; // static dummy signature. Values: 0 == None, 1 -- Weave Signature, 2 -- Group Key Signature
+
+ VerifyOrExit((NULL != mpBinding) && (kCmdState_Idle == mCmdState) && (NULL == mpEcCommand), err = WEAVE_ERROR_INCORRECT_STATE);
+ VerifyOrExit(NULL != msgBuf, err = WEAVE_ERROR_NO_MEMORY);
+
+ err = mpBinding->NewExchangeContext(mpEcCommand);
+ SuccessOrExit(err);
+
+ mpEcCommand->AppState = this;
+ mpEcCommand->OnMessageReceived = OnMessageReceivedForCustomCommand;
+ mpEcCommand->OnResponseTimeout = NULL;
+ mpEcCommand->OnSendError = NULL;
+ mpEcCommand->OnAckRcvd = NULL;
+
+ {
+ nl::Weave::TLV::TLVWriter writer;
+ CustomCommand::Builder request;
+ uint64_t nowMicroSecs, deadline;
+
+ writer.Init(msgBuf);
+ err = request.Init(&writer);
+ SuccessOrExit(err);
+
+ Path::Builder & path = request.CreatePathBuilder();
+
+ path.ProfileID(LocaleSettingsTrait::kWeaveProfileId).InstanceID(0).EndOfPath();
+
+ SuccessOrExit(path.GetError());
+
+ // Command Type
+ request.CommandType(commandType);
+
+ // It's safe to bail out after a series of operation, for
+ // SubscriptionRequest::Builder would internally turn to NOP after error is logged
+ SuccessOrExit(err = request.GetError());
+
+ /*
+ err = System::Layer::GetClock_RealTime(nowMicroSecs);
+ SuccessOrExit(err);
+ WeaveLogDetail(DataManagement, "TriggerCustomCommand6");
+ deadline = nowMicroSecs + 6000;
+ request.ExpiryTimeMicroSecond((int64_t)deadline);
+ SuccessOrExit(err = request.GetError());
+ */
+ // Add arguments here
+ {
+ nl::Weave::TLV::TLVType dummyType = nl::Weave::TLV::kTLVType_NotSpecified;
+ err = writer.StartContainer(nl::Weave::TLV::ContextTag(CustomCommand::kCsTag_Argument),
+ nl::Weave::TLV::kTLVType_Structure, dummyType);
+ SuccessOrExit(err);
+
+ err = writer.PutString(nl::Weave::TLV::ContextTag(1), apName);
+ SuccessOrExit(err);
+
+ err = writer.PutString(nl::Weave::TLV::ContextTag(2), apCustomCommand);
+ SuccessOrExit(err);
+
+ err = writer.EndContainer(dummyType);
+ SuccessOrExit(err);
+ }
+
+ request.EndOfCustomCommand();
+ SuccessOrExit(err = request.GetError());
+
+ err = writer.Finalize();
+ SuccessOrExit(err);
+
+ err = mpEcCommand->SendMessage(nl::Weave::Profiles::kWeaveProfile_WDM, kMsgType_CustomCommandRequest,
+ msgBuf, nl::Weave::ExchangeContext::kSendFlag_ExpectResponse);
+ msgBuf = NULL;
+ SuccessOrExit(err);
+ }
+
+ err = mpExchangeMgr->MessageLayer->SystemLayer->StartTimer(5000, HandleCustomCommandTimeout, this);
+ SuccessOrExit(err);
+ mCmdState = kCmdState_Requesting;
+
+exit:
+ WeaveLogFunctError(err);
+ if (NULL != msgBuf)
+ {
+ PacketBuffer::Free(msgBuf);
+ msgBuf = NULL;
+ }
+
+ if (WEAVE_NO_ERROR != err)
+ {
+ Command_End(true);
+ }
+ return WEAVE_NO_ERROR;
+}
+
+void WeaveDeviceManager::WDMDMClient::OnMessageReceivedForCustomCommand (nl::Weave::ExchangeContext *aEC, const nl::Inet::IPPacketInfo *aPktInfo,
+ const nl::Weave::WeaveMessageInfo *aMsgInfo, uint32_t aProfileId,
+ uint8_t aMsgType, PacketBuffer *aPayload)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ WDMDMClient * const pWDMDMClient = reinterpret_cast<WDMDMClient *>(aEC->AppState);
+ nl::Weave::Profiles::StatusReporting::StatusReport status;
+ enum
+ {
+ kMsgIdentified_Unknown = 0,
+ kMsgIdentified_StatusReport = 1,
+ kMsgIdentified_Response = 2,
+ kMsgIdentified_InProgress = 3,
+ } messageType = kMsgIdentified_Unknown;
+
+ WeaveLogDetail(DataManagement, "Responder %s: state: %d", __func__, pWDMDMClient->mCmdState);
+
+ VerifyOrExit(aEC == pWDMDMClient->mpEcCommand, err = WEAVE_ERROR_INCORRECT_STATE);
+ VerifyOrExit(kCmdState_Idle != pWDMDMClient->mCmdState, err = WEAVE_ERROR_INCORRECT_STATE);
+
+ if ((nl::Weave::Profiles::kWeaveProfile_Common == aProfileId) && (nl::Weave::Profiles::Common::kMsgType_StatusReport == aMsgType))
+ {
+ // Note that payload is not freed in this call to parse
+ err = nl::Weave::Profiles::StatusReporting::StatusReport::parse(aPayload, status);
+ SuccessOrExit(err);
+ messageType = kMsgIdentified_StatusReport;
+ WeaveLogError(DataManagement, "Received Status Report 0x%" PRIX32 " : 0x%" PRIX16, status.mProfileId, status.mStatusCode);
+ }
+ else if ((nl::Weave::Profiles::kWeaveProfile_WDM == aProfileId) && (kMsgType_CustomCommandResponse == aMsgType))
+ {
+ // command response, implies the request succeeded to some degree
+ messageType = kMsgIdentified_Response;
+ }
+ else if ((nl::Weave::Profiles::kWeaveProfile_WDM == aProfileId) && (kMsgType_InProgress == aMsgType))
+ {
+ messageType = kMsgIdentified_InProgress;
+ }
+ else
+ {
+ messageType = kMsgIdentified_Unknown;
+ }
+
+ switch (pWDMDMClient->mCmdState)
+ {
+ case kCmdState_Requesting:
+ if (kMsgIdentified_InProgress == messageType)
+ {
+ // in progress, indicates the other side has received the request and is working on it
+ // note we could have different time out settings after receiving this in progress message.
+ // it's up to each individual trait.
+ WeaveLogDetail(DataManagement, "Received In Progress message. Waiting for a response");
+ // there is no payload in "in progress" message, so there is nothing to parse
+ pWDMDMClient->mCmdState = kCmdState_Operating;
+ // do not close this EC when we leave this function
+ aEC = NULL;
+ break;
+ }
+ // fall through intentional
+ case kCmdState_Operating:
+ if (kMsgIdentified_Response == messageType)
+ {
+ // command response, implies the request succeeded to some degree
+ WeaveLogDetail(DataManagement, "Response message, end");
+
+ nl::Weave::TLV::TLVReader reader;
+ reader.Init(aPayload);
+
+ err = reader.Next();
+ SuccessOrExit(err);
+
+ CustomCommandResponse::Parser response;
+ err = response.Init(reader);
+ SuccessOrExit(err);
+
+#if WEAVE_CONFIG_DATA_MANAGEMENT_ENABLE_SCHEMA_CHECK
+ // this function only print out all recognized properties in the response
+ // check the parser class to see what else is available
+ err = response.CheckSchemaValidity();
+ SuccessOrExit(err);
+#endif // WEAVE_CONFIG_DATA_MANAGEMENT_ENABLE_SCHEMA_CHECK
+ }
+ else
+ {
+ if (kMsgIdentified_StatusReport == messageType)
+ {
+ // status report, implies the request failed
+ WeaveLogDetail(DataManagement, "Status Report, end");
+ }
+ else
+ {
+ // unexpected message
+ WeaveLogDetail(DataManagement, "Unexpected message, end");
+ }
+ }
+ // reset state and close the exchange
+ pWDMDMClient->Command_End();
+ // aEC has been closed/aborted as part of Command_End
+ aEC = NULL;
+ break;
+ default:
+ // this is probably dead code
+ ExitNow(err = WEAVE_ERROR_INCORRECT_STATE);
+ }
+
+exit:
+ WeaveLogFunctError(err);
+
+ if (WEAVE_NO_ERROR != err)
+ {
+ pWDMDMClient->Command_End(true);
+ // aEC has been closed/aborted as part of Command_End
+ aEC = NULL;
+ }
+
+ if (NULL != aEC)
+ {
+ aEC->Abort();
+ aEC = NULL;
+ }
+
+ if (NULL != aPayload)
+ {
+ PacketBuffer::Free(aPayload);
+ aPayload = NULL;
+ }
+}
+
+void WeaveDeviceManager::WDMDMClient::HandleCustomCommandTimeout(nl::Weave::System::Layer* aSystemLayer, void *aAppState, ::nl::Weave::System::Error aErr)
+{
+ WDMDMClient * const pWDMDMClient = reinterpret_cast<WDMDMClient *>(aAppState);
+ pWDMDMClient->Command_End(true);
+}
+
+void WeaveDeviceManager::WDMDMClient::Command_End(const bool aAbort)
+{
+ (void)mpExchangeMgr->MessageLayer->SystemLayer->CancelTimer(HandleCustomCommandTimeout, this);
+
+ mCmdState = kCmdState_Idle;
+ if (NULL != mpEcCommand)
+ {
+ // this might be needed, for the test infrastructure re-init this object multiple times
+ // ExchangeContext::Close would gracefully close this exchange, while ExchangeContext::Abort
+ // would forcefully reclaim all resources
+ if (aAbort)
+ {
+ mpEcCommand->Abort();
+ }
+ else
+ {
+ mpEcCommand->Close();
+ }
+ mpEcCommand = NULL;
+ }
+
+ if (mpDeviceMgr)
+ {
+ mpDeviceMgr->ClearOpState();
+ mpDeviceMgr->mOnComplete.General(mpDeviceMgr, mpDeviceMgr->mAppReqState);
+ }
+}
+
+void WeaveDeviceManager::WDMDMClient::ClearDataSinkIterator(void *aTraitInstance, TraitDataHandle aHandle, void *aContext)
+{
+ GenericTraitDataSink *traitInstance = static_cast<GenericTraitDataSink *>(aTraitInstance);
+ traitInstance->ResetDataSink();
+}
+
+WEAVE_ERROR WeaveDeviceManager::WDMDMClient::RetrieveSinkTraitData()
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ TraitSchemaEngine::IGetDataDelegate *getDataDelegate;
+ TLVType dummyContainerType;
+ nl::Weave::TLV::TLVWriter writer;
+ uint32_t encodedLen = 0;
+ TraitDataSink *pSink = NULL;
+
+ OpState savedOpState = mpDeviceMgr->mOpState;
+
+ PacketBuffer * msgBuf = PacketBuffer::New();
+ VerifyOrExit(msgBuf != NULL, err = WEAVE_ERROR_NO_MEMORY);
+
+ writer.Init(msgBuf);
+ err = writer.StartContainer(AnonymousTag, kTLVType_Structure, dummyContainerType);
+ SuccessOrExit(err);
+
+ mSinkCatalog.Locate(mTraitPaths[0].mTraitDataHandle, &pSink);
+ getDataDelegate = static_cast<TraitSchemaEngine::IGetDataDelegate *>(pSink);
+ err = pSink->GetSchemaEngine()->RetrieveData(kRootPropertyPathHandle, ContextTag(DataElement::kCsTag_Data), writer, getDataDelegate);
+ SuccessOrExit(err);
+
+ err = writer.EndContainer(dummyContainerType);
+ SuccessOrExit(err);
+
+ err = writer.Finalize();
+ SuccessOrExit(err);
+
+ encodedLen = writer.GetLengthWritten();
+
+#if WEAVE_CONFIG_DATA_MANAGEMENT_ENABLE_SCHEMA_CHECK
+ {
+ nl::Weave::TLV::TLVReader reader;
+ //DataElement::Parser parser;
+ reader.Init(msgBuf);
+ err = reader.Next();
+ VerifyOrExit(err == WEAVE_NO_ERROR, WeaveLogDetail(DataManagement, "Created malformed update, err: %" PRId32, err));
+ //parser.Init(reader);
+ //parser.CheckSchemaValidity();
+ DebugPrettyPrint(reader);
+ }
+#endif //WEAVE_CONFIG_DATA_MANAGEMENT_ENABLE_SCHEMA_CHECK
+
+ mpDeviceMgr->ClearOpState();
+ WeaveLogDetail(DataManagement, "current op is, %d", savedOpState);
+ //VerifyOrExit(savedOpState == kOpState_ViewTrait, err = WEAVE_ERROR_INCORRECT_STATE);
+ //pWDMDMClient->mpDeviceMgr->mOnComplete.General(pWDMDMClient->mpDeviceMgr, pWDMDMClient->mpDeviceMgr->mAppReqState);
+ mpDeviceMgr->mOnComplete.ViewTrait(mpDeviceMgr, mpDeviceMgr->mAppReqState, msgBuf->Start(), msgBuf->DataLength());
+
+exit:
+ WeaveLogFunctError(err);
+ if (err != WEAVE_NO_ERROR)
+ mpDeviceMgr->mOnError(mpDeviceMgr, mpDeviceMgr->mAppReqState, err, NULL);
+ if (msgBuf != NULL)
+ PacketBuffer::Free(msgBuf);
+ return err;
+}
+
+void WeaveDeviceManager::WDMDMClient::TLVPrettyPrinter(const char *aFormat, ...)
+{
+ va_list args;
+
+ va_start(args, aFormat);
+
+ // There is no proper Weave logging routine for us to use here
+ vprintf(aFormat, args);
+
+ va_end(args);
+}
+
+WEAVE_ERROR WeaveDeviceManager::WDMDMClient::DebugPrettyPrint(nl::Weave::TLV::TLVReader & aReader)
+{
+ return nl::Weave::TLV::Debug::Dump(aReader, TLVPrettyPrinter);
+}
+
+WEAVE_ERROR WeaveDeviceManager::WDMDMClient::StoreTLVData(const uint8_t * encodedTlvVal, uint16_t encodedTlvalLen)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+
+ TraitDataSink *pSink = NULL;
+ PropertyPathHandle pathHandle = kNullPropertyPathHandle;
+
+ TLVReader reader;
+
+ pathHandle = mTraitPaths[0].mPropertyPathHandle;
+ mSinkCatalog.Locate(mTraitPaths[0].mTraitDataHandle, &pSink);
+/*
+ static const uint8_t Encoding[] =
+ {
+ nlWeaveTLV_STRUCTURE(nlWeaveTLV_TAG_ANONYMOUS),
+ nlWeaveTLV_UINT64(nlWeaveTLV_TAG_CONTEXT_SPECIFIC(ContextTag(DataElement::kCsTag_Version)), 1),
+ nlWeaveTLV_STRUCTURE(nlWeaveTLV_TAG_CONTEXT_SPECIFIC(ContextTag(DataElement::kCsTag_Data))),
+ nlWeaveTLV_UTF8_STRING_1ByteLength(nlWeaveTLV_TAG_CONTEXT_SPECIFIC(ContextTag(1)), 5),
+ 'e',
+ 'n',
+ '-',
+ 'U',
+ 'S',
+ nlWeaveTLV_END_OF_CONTAINER,
+ nlWeaveTLV_END_OF_CONTAINER,
+ };
+*/
+ reader.Init(encodedTlvVal, encodedTlvalLen);
+ //reader.Init(Encoding, sizeof(Encoding));
+ err = reader.Next();
+ SuccessOrExit(err);
+ DebugPrettyPrint(reader);
+
+ //err = pSink->StoreDataElement(pathHandle, reader, 0, NULL, NULL);
+ err = mpGenericTraitDataSink->SetLeaf(pathHandle, "en-US");
+ SuccessOrExit(err);
+
+ WeaveLogDetail(DataManagement, "<set updated> in 0x%08x", pathHandle);
+ if (pSink->IsUpdatableDataSink())
+ {
+ WeaveLogDetail(DataManagement, "updating");
+ TraitUpdatableDataSink *updatableSink = static_cast<TraitUpdatableDataSink *>(pSink);
+ err = updatableSink->SetUpdated(mSubscriptionClient, pathHandle, false);
+ SuccessOrExit(err);
+ }
+exit:
+ return err;
+}
+
+WEAVE_ERROR WeaveDeviceManager::WDMDMClient::TriggerUpdate(const uint8_t * encodedTlvVal, uint16_t encodedTlvalLen)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+
+ err = StoreTLVData(encodedTlvVal, encodedTlvalLen);
+ SuccessOrExit(err);
+
+ err = mSubscriptionClient->FlushUpdate();
+ SuccessOrExit(err);
+
+exit:
+ return err;
+}
+
+WEAVE_ERROR WeaveDeviceManager::WDMDMClient::RunShortLivedSubscription()
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+
+ mSinkCatalog.Iterate(WeaveDeviceManager::WDMDMClient::ClearDataSinkIterator, NULL);
+
+ mSubscriptionClient->InitiateSubscription();
+
+ return err;
+}
+
+WEAVE_ERROR WeaveDeviceManager::UpdateTrait(void* appReqState, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle, const uint8_t * encodedTlvVal, uint16_t encodedTlvalLen, CompleteFunct onComplete, ErrorFunct onError)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ uint64_t deviceId = kNodeIdNotSpecified;
+
+ mAppReqState = appReqState;
+ mOnComplete.General = onComplete;
+ mOnError = onError;
+ mOpState = kOpState_UpdateTrait;
+
+ GetDeviceId(deviceId);
+
+ err = mWDMDMClient.InitDMClient(this, mExchangeMgr, deviceId, aProfileId, aInstanceId, aPropertyPathHandle);
+ SuccessOrExit(err);
+
+ err = mWDMDMClient.TriggerUpdate(encodedTlvVal, encodedTlvalLen);
+ SuccessOrExit(err);
+
+exit:
+ return err;
+}
+
+WEAVE_ERROR WeaveDeviceManager::ViewTrait(void* appReqState, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle, ViewTraitCompleteFunct onComplete, ErrorFunct onError)
+{
+ uint64_t deviceId = kNodeIdNotSpecified;
+ GetDeviceId(deviceId);
+
+ mAppReqState = appReqState;
+ mOnComplete.ViewTrait = onComplete;
+ mOnError = onError;
+ mOpState = kOpState_ViewTrait;
+
+ mWDMDMClient.InitDMClient(this, mExchangeMgr, deviceId, aProfileId, aInstanceId, aPropertyPathHandle);
+ mWDMDMClient.RunShortLivedSubscription();
+ return WEAVE_NO_ERROR;
+}
+
+WEAVE_ERROR WeaveDeviceManager::SendCustomCommand(void* appReqState, const char *apName, const char *apCustomCommand, CompleteFunct onComplete, ErrorFunct onError)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ PacketBuffer *msgBuf = PacketBuffer::New();
+ static uint32_t commandType = 1;
+ static uint32_t signatureType = 0; // static dummy signature. Values: 0 == None, 1 -- Weave Signature, 2 -- Group Key Signature
+ uint64_t deviceId = kNodeIdNotSpecified;
+
+ mAppReqState = appReqState;
+ mOnComplete.General = onComplete;
+ mOnError = onError;
+ mOpState = kOpState_SendCustomCommand;
+
+ GetDeviceId(deviceId);
+
+ mWDMDMClient.InitDMClient(this, mExchangeMgr, deviceId, 0x00000014, 0, kRootPropertyPathHandle);
+ mWDMDMClient.TriggerCustomCommand(apName, apCustomCommand);
+ return WEAVE_NO_ERROR;
+}
+
bool IsProductWildcard(uint16_t productId)
{
return (productId >= kProductWildcardId_RangeStart && productId <= kProductWildcardId_RangeEnd);
diff --git a/src/device-manager/WeaveDeviceManager.h b/src/device-manager/WeaveDeviceManager.h
index 9633d87..d62d163 100644
--- a/src/device-manager/WeaveDeviceManager.h
+++ b/src/device-manager/WeaveDeviceManager.h
@@ -27,11 +27,15 @@
#ifndef __WEAVEDEVICEMANAGER_H
#define __WEAVEDEVICEMANAGER_H
+#include <Weave/Profiles/data-management/Current/WdmManagedNamespace.h>
+
#include <Weave/Support/NLDLLUtil.h>
#include <Weave/Core/WeaveCore.h>
#include <Weave/Core/WeaveTLV.h>
#include <Weave/Profiles/common/WeaveMessage.h>
+#include <Weave/Profiles/data-management/DataManagement.h>
#include <Weave/Profiles/device-description/DeviceDescription.h>
+#include <Weave/Profiles/locale/LocaleProfile.hpp>
#include <Weave/Profiles/network-provisioning/NetworkProvisioning.h>
#include <Weave/Profiles/network-provisioning/NetworkInfo.h>
#include <Weave/Profiles/security/WeaveSecurity.h>
@@ -43,11 +47,15 @@
#include <Weave/Profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.h>
#include <Weave/Profiles/vendor/nestlabs/thermostat/NestThermostatWeaveConstants.h>
+#include <Weave/DeviceManager/GenericTraitDataSink.h>
+#include <Weave/DeviceManager/LocaleSettingsTrait.h>
+
namespace nl {
namespace Weave {
namespace DeviceManager {
using namespace nl::Weave::Profiles;
+using namespace nl::Weave::Profiles::DataManagement;
using namespace nl::Weave::Profiles::DeviceDescription;
using namespace nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing;
using namespace nl::Weave::Profiles::NetworkProvisioning;
@@ -88,6 +96,7 @@
typedef void (*PairTokenCompleteFunct)(WeaveDeviceManager *deviceMgr, void *appReqState, const uint8_t *tokenPairingBundle, uint32_t tokenPairingBunldeLen);
typedef void (*UnpairTokenCompleteFunct)(WeaveDeviceManager *deviceMgr, void *appReqState);
typedef void (*GetCameraAuthDataCompleteFunct)(WeaveDeviceManager *deviceMgr, void *appReqState, const char *macAddress, const char *authData);
+typedef void (*ViewTraitCompleteFunct)(WeaveDeviceManager *deviceMgr, void *appReqState, const uint8_t *traitTlvData, uint32_t traitTlvDataLen);
};
class NL_DLL_EXPORT WeaveDeviceManager : private Security::CASE::WeaveCASEAuthDelegate
@@ -100,7 +109,6 @@
} State; // [READ-ONLY] Current state
WeaveDeviceManager();
-
void *AppState;
WEAVE_ERROR Init(WeaveExchangeManager *exchangeMsg, WeaveSecurityManager *securityMgr);
@@ -234,6 +242,11 @@
WEAVE_ERROR StartSystemTest(void* appReqState, uint32_t profileId, uint32_t testId, CompleteFunct onComplete, ErrorFunct onError);
WEAVE_ERROR StopSystemTest(void* appReqState, CompleteFunct onComplete, ErrorFunct onError);
+ // ----- Data Management -----
+ WEAVE_ERROR UpdateTrait(void* appReqState, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle, const uint8_t *encodedTlvVal, uint16_t encodedTlvalLen, CompleteFunct onComplete, ErrorFunct onError);
+ WEAVE_ERROR ViewTrait(void* appReqState, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle, ViewTraitCompleteFunct onComplete, ErrorFunct onError);
+ WEAVE_ERROR SendCustomCommand(void* appReqState, const char *apName, const char *apCustomCommand, CompleteFunct onComplete, ErrorFunct onError);
+
// ---- Token Pairing ----
WEAVE_ERROR PairToken(const uint8_t *pairingToken, uint32_t pairingTokenLen, void* appReqState, PairTokenCompleteFunct onComplete, ErrorFunct onError);
WEAVE_ERROR UnpairToken(void* appReqState, UnpairTokenCompleteFunct onComplete, ErrorFunct onError);
@@ -297,7 +310,10 @@
kOpState_UnpairToken = 41,
kOpState_GetCameraAuthData = 42,
kOpState_EnumerateDevices = 43,
- kOpState_RemotePassiveRendezvousTimedOut = 44
+ kOpState_RemotePassiveRendezvousTimedOut = 44,
+ kOpState_UpdateTrait = 45,
+ kOpState_ViewTrait = 46,
+ kOpState_SendCustomCommand = 47,
};
enum ConnectionState
@@ -346,6 +362,80 @@
kCertDecodeBufferSize = 1024
};
+ class WDMDMClient
+ {
+ public:
+ WDMDMClient(void);
+
+ ~WDMDMClient(void);
+
+ WEAVE_ERROR InitDMClient(WeaveDeviceManager *apDeviceMgr, WeaveExchangeManager *apExchangeMgr, uint64_t aDeviceId, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle);
+
+ WEAVE_ERROR TriggerUpdate(const uint8_t * encodedTlvVal, uint16_t encodedTlvalLen);
+
+ WEAVE_ERROR RunShortLivedSubscription();
+
+ WEAVE_ERROR TriggerCustomCommand (const char *apName, const char *apCustomCommand);
+
+ private:
+ enum CustomCommandState
+ {
+ kCmdState_Idle = 0, ///< No active command
+ kCmdState_Requesting = 1, ///< Command has been sent but we haven't heard anything back
+ kCmdState_Operating = 2, ///< We have received In-Progress message but are still waiting for response
+ };
+
+ static void EngineEventCallback (void * const aAppState,
+ SubscriptionEngine::EventID aEvent,
+ const SubscriptionEngine::InEventParam & aInParam, SubscriptionEngine::OutEventParam & aOutParam);
+ WEAVE_ERROR Setup(WeaveDeviceManager *apDeviceMgr, WeaveExchangeManager *apExchangeMgr, uint64_t aDeviceId, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle);
+
+ void TearDown();
+
+ WEAVE_ERROR PrepareBinding(WeaveConnection *apDeviceCon);
+
+ static void BindingEventCallback(void * const apAppState, const nl::Weave::Binding::EventType aEvent,
+ const nl::Weave::Binding::InEventParam & aInParam,
+ nl::Weave::Binding::OutEventParam & aOutParam);
+
+ static void ClientEventCallback (void * const aAppState, SubscriptionClient::EventID aEvent,
+ const SubscriptionClient::InEventParam & aInParam, SubscriptionClient::OutEventParam & aOutParam);
+
+ WEAVE_ERROR RetrieveSinkTraitData();
+
+ WEAVE_ERROR StoreTLVData(const uint8_t * encodedTlvVal, uint16_t encodedTlvalLen);
+
+ void Command_End (const bool aAbort = false);
+
+ static void OnMessageReceivedForCustomCommand (nl::Weave::ExchangeContext *aEC, const nl::Inet::IPPacketInfo *aPktInfo,
+ const nl::Weave::WeaveMessageInfo *aMsgInfo, uint32_t aProfileId,
+ uint8_t aMsgType, PacketBuffer *aPayload);
+
+ static void HandleCustomCommandTimeout(nl::Weave::System::Layer* aSystemLayer, void *aAppState, ::nl::Weave::System::Error aErr);
+
+ static void ClearDataSinkIterator(void *aTraitInstance, TraitDataHandle aHandle, void *aContext);
+
+ static void TLVPrettyPrinter(const char *aFormat, ...);
+
+ static WEAVE_ERROR DebugPrettyPrint(nl::Weave::TLV::TLVReader & aReader);
+
+ GenericTraitDataSink *mpGenericTraitDataSink;
+ TraitPath mTraitPaths[1];
+ TraitDataHandle mTraitHandleSet[1];
+ TraitPathStore mPathList;
+ TraitPathStore::Record mStorage[1];
+ SingleResourceSinkTraitCatalog mSinkCatalog;
+ SingleResourceSinkTraitCatalog::CatalogItem mSinkCatalogStore[1];
+
+ WeaveDeviceManager *mpDeviceMgr;
+ uint64_t mDeviceId;
+ SubscriptionClient * mSubscriptionClient;
+ CustomCommandState mCmdState;
+ Binding * mpBinding;
+ nl::Weave::ExchangeContext * mpEcCommand;
+ WeaveExchangeManager * mpExchangeMgr;
+ };
+
System::Layer* mSystemLayer;
WeaveMessageLayer *mMessageLayer;
WeaveExchangeManager *mExchangeMgr;
@@ -367,6 +457,7 @@
UnpairTokenCompleteFunct UnpairToken;
GetCameraAuthDataCompleteFunct GetCameraAuthData;
DeviceEnumerationResponseFunct DeviceEnumeration;
+ ViewTraitCompleteFunct ViewTrait;
} mOnComplete;
CompleteFunct mOnRemotePassiveRendezvousComplete;
ErrorFunct mOnError;
@@ -422,6 +513,7 @@
uint64_t *mEnumeratedNodes;
uint32_t mEnumeratedNodesLen;
uint32_t mEnumeratedNodesMaxLen;
+ WDMDMClient mWDMDMClient;
// Use by static HandleConnectionReceived callback.
static WeaveDeviceManager *sListeningDeviceMgr;
diff --git a/src/device-manager/python/Makefile.am b/src/device-manager/python/Makefile.am
index e396a29..a6a2629 100644
--- a/src/device-manager/python/Makefile.am
+++ b/src/device-manager/python/Makefile.am
@@ -35,6 +35,7 @@
openweave/WeaveCoreBluetoothMgr.py \
openweave/WeaveBluezMgr.py \
openweave/WeaveBleUtility.py \
+ openweave/WeaveTLV.py \
$(NULL)
# Location into which the "openweave" python package will be installed.
diff --git a/src/device-manager/python/Makefile.in b/src/device-manager/python/Makefile.in
index 1a3a6dc..96e4b7f 100644
--- a/src/device-manager/python/Makefile.in
+++ b/src/device-manager/python/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -41,7 +41,17 @@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -119,12 +129,6 @@
@WEAVE_BUILD_INSTALLABLE_PYTHON_PACKAGE_TRUE@ $(NULL)
subdir = src/device-manager/python
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/depcomp \
- $(openweave_PYTHON) \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/py-compile \
- $(noinst_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/third_party/nlbuild-autotools/repo/autoconf/m4/ax_check_compiler.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/autoconf/m4/nl_enable_coverage.m4 \
@@ -143,18 +147,20 @@
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_cxx_compile_stdcxx_11.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_jni_include_dir.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_pthread.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/libtool.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltoptions.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltsugar.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltversion.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/lt~obsolete.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/pkg.m4 \
+ $(top_srcdir)/build/autoconf/m4/libtool.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltoptions.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltsugar.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltversion.m4 \
+ $(top_srcdir)/build/autoconf/m4/lt~obsolete.m4 \
$(top_srcdir)/build/autoconf/m4/nl_check_project_config_includes.m4 \
$(top_srcdir)/build/autoconf/m4/nl_enable_long_tests.m4 \
$(top_srcdir)/build/autoconf/m4/nl_with_lwip.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(openweave_PYTHON) \
+ $(noinst_HEADERS) $(am__DIST_COMMON)
mkinstalldirs = $(SHELL) \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/include/BuildConfig.h
@@ -225,7 +231,10 @@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include
depcomp = $(SHELL) \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BleApplicationDelegate.Plo \
+ ./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BlePlatformDelegate.Plo \
+ ./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-ScriptBinding.Plo
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
@@ -254,7 +263,7 @@
esac
am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile)
am__pep3147_tweak = \
- sed -e 's|\.py$$||' -e 's|[^/]*$$|__pycache__/&.*.py|'
+ sed -e 's|\.py$$||' -e 's|[^/]*$$|&.*.pyc\n&.*.pyo|'
py_compile = $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/py-compile
HEADERS = $(noinst_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
@@ -276,6 +285,10 @@
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/depcomp \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/py-compile
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -365,6 +378,7 @@
LNDIR = @LNDIR@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LWIP_CPPFLAGS = @LWIP_CPPFLAGS@
LWIP_LDFLAGS = @LWIP_LDFLAGS@
LWIP_LIBS = @LWIP_LIBS@
@@ -524,6 +538,7 @@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@@ -548,6 +563,7 @@
openweave/WeaveCoreBluetoothMgr.py \
openweave/WeaveBluezMgr.py \
openweave/WeaveBleUtility.py \
+ openweave/WeaveTLV.py \
$(NULL)
@@ -613,14 +629,13 @@
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/device-manager/python/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign src/device-manager/python/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -711,9 +726,15 @@
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BleApplicationDelegate.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BlePlatformDelegate.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-ScriptBinding.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BleApplicationDelegate.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BlePlatformDelegate.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-ScriptBinding.Plo@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
.cpp.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -798,20 +819,15 @@
dir='$(DESTDIR)$(openweavedir)'; \
pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \
pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \
- py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \
- echo "$$py_files_pep3147";\
- pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \
- pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \
st=0; \
- for files in \
- "$$py_files" \
- "$$pyc_files" \
- "$$pyo_files" \
- "$$pyc_files_pep3147" \
- "$$pyo_files_pep3147" \
- ; do \
+ for files in "$$py_files" "$$pyc_files" "$$pyo_files"; do \
$(am__uninstall_files_from_dir) || st=$$?; \
done; \
+ dir='$(DESTDIR)$(openweavedir)/__pycache__'; \
+ echo "$$py_files" | $(am__pep3147_tweak) | $(am__base_list) | \
+ while read files; do \
+ $(am__uninstall_files_from_dir) || st=$$?; \
+ done || exit $$?; \
exit $$st
ID: $(am__tagged_files)
@@ -866,7 +882,10 @@
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -934,16 +953,18 @@
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-@WEAVE_BUILD_INSTALLABLE_PYTHON_PACKAGE_FALSE@install-exec-local:
@WEAVE_BUILD_INSTALLABLE_PYTHON_PACKAGE_FALSE@uninstall-local:
@WEAVE_BUILD_INSTALLABLE_PYTHON_PACKAGE_FALSE@clean-local:
+@WEAVE_BUILD_INSTALLABLE_PYTHON_PACKAGE_FALSE@install-exec-local:
clean: clean-am
clean-am: clean-generic clean-libtool clean-local \
clean-openweaveLTLIBRARIES mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BleApplicationDelegate.Plo
+ -rm -f ./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BlePlatformDelegate.Plo
+ -rm -f ./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-ScriptBinding.Plo
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -990,7 +1011,9 @@
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -f ./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BleApplicationDelegate.Plo
+ -rm -f ./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-BlePlatformDelegate.Plo
+ -rm -f ./$(DEPDIR)/_WeaveDeviceMgr_la-WeaveDeviceManager-ScriptBinding.Plo
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -1012,13 +1035,14 @@
.MAKE: install-am install-exec-am install-strip
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-local clean-openweaveLTLIBRARIES \
- cscopelist-am ctags ctags-am distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-binSCRIPTS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-exec-hook \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-libtool clean-local \
+ clean-openweaveLTLIBRARIES cscopelist-am ctags ctags-am \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binSCRIPTS \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-exec-hook \
install-exec-local install-html install-html-am install-info \
install-info-am install-man install-openweaveLTLIBRARIES \
install-openweavePYTHON install-pdf install-pdf-am install-ps \
@@ -1029,6 +1053,8 @@
uninstall-am uninstall-binSCRIPTS uninstall-local \
uninstall-openweaveLTLIBRARIES uninstall-openweavePYTHON
+.PRECIOUS: Makefile
+
include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
diff --git a/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp b/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
index 6c8457a..da6fd2e 100644
--- a/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
+++ b/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
@@ -58,7 +58,7 @@
using namespace nl::Weave;
using namespace nl::Weave::DeviceManager;
using namespace nl::Weave::Profiles::NetworkProvisioning;
-
+using namespace nl::Weave::Profiles::DataManagement;
using DeviceDescription::IdentifyDeviceCriteria;
extern "C" {
@@ -236,6 +236,9 @@
NL_DLL_EXPORT WEAVE_ERROR nl_Weave_DeviceManager_ArmFailSafe(WeaveDeviceManager *devMgr, uint8_t armMode, uint32_t failSafeToken, CompleteFunct onComplete, ErrorFunct onError);
NL_DLL_EXPORT WEAVE_ERROR nl_Weave_DeviceManager_DisarmFailSafe(WeaveDeviceManager *devMgr, CompleteFunct onComplete, ErrorFunct onError);
NL_DLL_EXPORT WEAVE_ERROR nl_Weave_DeviceManager_ResetConfig(WeaveDeviceManager *devMgr, uint16_t resetFlags, CompleteFunct onComplete, ErrorFunct onError);
+ NL_DLL_EXPORT WEAVE_ERROR nl_Weave_DeviceManager_UpdateTrait(WeaveDeviceManager *devMgr, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle, const uint8_t *encodedTlvVal, uint16_t encodedTlvalLen, CompleteFunct onComplete, ErrorFunct onError);
+ NL_DLL_EXPORT WEAVE_ERROR nl_Weave_DeviceManager_ViewTrait(WeaveDeviceManager *devMgr, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle, ViewTraitCompleteFunct onComplete, ErrorFunct onError);
+ NL_DLL_EXPORT WEAVE_ERROR nl_Weave_DeviceManager_SendCustomCommand(WeaveDeviceManager *devMgr, const char *apName, const char *apCustomCommand, CompleteFunct onComplete, ErrorFunct onError);
NL_DLL_EXPORT WEAVE_ERROR nl_Weave_DeviceManager_PairToken(WeaveDeviceManager *devMgr, const uint8_t *pairingToken, uint32_t pairingTokenLen, PairTokenCompleteFunct onComplete, ErrorFunct onError);
NL_DLL_EXPORT WEAVE_ERROR nl_Weave_DeviceManager_UnpairToken(WeaveDeviceManager *devMgr, UnpairTokenCompleteFunct onComplete, ErrorFunct onError);
NL_DLL_EXPORT WEAVE_ERROR nl_Weave_DeviceManager_StartSystemTest(WeaveDeviceManager *devMgr, uint32_t profileId, uint32_t testId, CompleteFunct onComplete, ErrorFunct onError);
@@ -1094,6 +1097,21 @@
return devMgr->ResetConfig(resetFlags, NULL, onComplete, onError);
}
+WEAVE_ERROR nl_Weave_DeviceManager_UpdateTrait(WeaveDeviceManager *devMgr, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle, const uint8_t *encodedTlvVal, uint16_t encodedTlvalLen, CompleteFunct onComplete, ErrorFunct onError)
+{
+ return devMgr->UpdateTrait(NULL, aProfileId, aInstanceId, aPropertyPathHandle, encodedTlvVal, encodedTlvalLen, onComplete, onError);
+}
+
+WEAVE_ERROR nl_Weave_DeviceManager_ViewTrait(WeaveDeviceManager *devMgr, uint64_t aProfileId, uint64_t aInstanceId, PropertyPathHandle aPropertyPathHandle, ViewTraitCompleteFunct onComplete, ErrorFunct onError)
+{
+ return devMgr->ViewTrait(NULL, aProfileId, aInstanceId, aPropertyPathHandle, onComplete, onError);
+}
+
+WEAVE_ERROR nl_Weave_DeviceManager_SendCustomCommand(WeaveDeviceManager *devMgr, const char *apName, const char *apCustomCommand, CompleteFunct onComplete, ErrorFunct onError)
+{
+ return devMgr->SendCustomCommand(NULL, apName, apCustomCommand, onComplete, onError);
+}
+
WEAVE_ERROR nl_Weave_DeviceManager_StartSystemTest(WeaveDeviceManager *devMgr, uint32_t profileId, uint32_t testId, CompleteFunct onComplete, ErrorFunct onError)
{
return devMgr->StartSystemTest(NULL, profileId, testId, onComplete, onError);
diff --git a/src/device-manager/python/openweave/WeaveDeviceMgr.py b/src/device-manager/python/openweave/WeaveDeviceMgr.py
index 2e5feff..08d86d6 100644
--- a/src/device-manager/python/openweave/WeaveDeviceMgr.py
+++ b/src/device-manager/python/openweave/WeaveDeviceMgr.py
@@ -33,8 +33,10 @@
import time
import glob
import platform
+import ast
from threading import Thread, Lock, Event
from ctypes import *
+from WeaveTLV import TLVWriter
__all__ = [ 'WeaveDeviceManager', 'NetworkInfo', 'DeviceManagerException', 'DeviceError', 'DeviceManagerError' ]
@@ -465,6 +467,7 @@
_SubscribeBleCharacteristicFunct = CFUNCTYPE(c_bool, c_void_p, c_void_p, c_void_p, c_bool)
_CloseBleFunct = CFUNCTYPE(c_bool, c_void_p)
_DeviceEnumerationResponseFunct = CFUNCTYPE(None, c_void_p, POINTER(_DeviceDescriptorStruct), c_char_p)
+_ViewTraitCompleteFunct = CFUNCTYPE(None, c_void_p, c_void_p, c_void_p, c_uint32)
# This is a fix for WEAV-429. Jay Logue recommends revisiting this at a later
# date to allow for truely multiple instances so this is temporary.
@@ -1084,6 +1087,35 @@
lambda: _dmLib.nl_Weave_DeviceManager_StopSystemTest(self.devMgr, self.cbHandleComplete, self.cbHandleError)
)
+ def UpdateTrait(self, profileId, instanceId, propertyPathHandle, tlvString):
+ val = ast.literal_eval(tlvString)
+ print val
+ writer = TLVWriter()
+ encodedVal = writer.put(None, val)
+
+ self._CallDevMgrAsync(
+ lambda: _dmLib.nl_Weave_DeviceManager_UpdateTrait(self.devMgr, profileId, instanceId, propertyPathHandle, _ByteArrayToVoidPtr(writer.encoding), len(writer.encoding), self.cbHandleComplete, self.cbHandleError)
+ )
+
+ def ViewTrait(self, profileId, instanceId, propertyPathHandle):
+ def HandleViewTraitComplete(devMgr, reqState, traitTlvDataPtr, traitTlvDataLen):
+ self.callbackRes = _VoidPtrToByteArray(traitTlvDataPtr, traitTlvDataLen)
+ self.completeEvent.set()
+
+ cbHandleViewTraitComplete = _ViewTraitCompleteFunct(HandleViewTraitComplete)
+
+ return self._CallDevMgrAsync(
+ lambda: _dmLib.nl_Weave_DeviceManager_ViewTrait(self.devMgr, profileId, instanceId, propertyPathHandle, cbHandleViewTraitComplete, self.cbHandleError)
+ )
+
+ def SendCustomCommand(self, name, customCommand):
+ if name is None or customCommand is None:
+ raise ValueError('Unexpected NUL character in locale')
+
+ self._CallDevMgrAsync(
+ lambda: _dmLib.nl_Weave_DeviceManager_SendCustomCommand(self.devMgr, name, customCommand, self.cbHandleComplete, self.cbHandleError)
+ )
+
# ----- Private Members -----
def _InitLib(self):
global _dmLib
@@ -1311,6 +1343,15 @@
_dmLib.nl_Weave_DeviceManager_StopSystemTest.argtypes = [ c_void_p, _CompleteFunct, _ErrorFunct ]
_dmLib.nl_Weave_DeviceManager_StopSystemTest.restype = c_uint32
+ _dmLib.nl_Weave_DeviceManager_UpdateTrait.argtypes = [ c_void_p, c_uint64, c_uint64, c_uint64, c_void_p, c_uint32, _CompleteFunct, _ErrorFunct ]
+ _dmLib.nl_Weave_DeviceManager_UpdateTrait.restype = c_uint32
+
+ _dmLib.nl_Weave_DeviceManager_ViewTrait.argtypes = [ c_void_p, c_uint64, c_uint64, c_uint64, _ViewTraitCompleteFunct, _ErrorFunct ]
+ _dmLib.nl_Weave_DeviceManager_ViewTrait.restype = c_uint32
+
+ _dmLib.nl_Weave_DeviceManager_SendCustomCommand.argtypes = [ c_void_p, c_char_p, c_char_p, _CompleteFunct, _ErrorFunct ]
+ _dmLib.nl_Weave_DeviceManager_SendCustomCommand.restype = c_uint32
+
res = _dmLib.nl_Weave_DeviceManager_Init()
if (res != 0):
raise self._ErrorToException(res)
diff --git a/src/device-manager/python/openweave/WeaveTLV.py b/src/device-manager/python/openweave/WeaveTLV.py
new file mode 100644
index 0000000..6cd0637
--- /dev/null
+++ b/src/device-manager/python/openweave/WeaveTLV.py
@@ -0,0 +1,365 @@
+#!/usr/bin/env python3
+
+#
+# Copyright (c) 2019 Google LLC.
+# All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# @file
+# This file contains definitions for working with data encoded in Weave TLV format.
+#
+
+import sys
+import struct
+from collections import Mapping, Sequence, OrderedDict
+
+
+TLVType_SignedInteger = 0x00
+TLVType_UnsignedInteger = 0x04
+TLVType_Boolean = 0x08
+TLVType_FloatingPointNumber = 0x0A
+TLVType_UTF8String = 0x0C
+TLVType_ByteString = 0x10
+TLVType_Null = 0x14
+TLVType_Structure = 0x15
+TLVType_Array = 0x16
+TLVType_Path = 0x17
+
+TLVTagControl_Anonymous = 0x00
+TLVTagControl_ContextSpecific = 0x20
+TLVTagControl_CommonProfile_2Bytes = 0x40
+TLVTagControl_CommonProfile_4Bytes = 0x60
+TLVTagControl_ImplicitProfile_2Bytes = 0x80
+TLVTagControl_ImplicitProfile_4Bytes = 0xA0
+TLVTagControl_FullyQualified_6Bytes = 0xC0
+TLVTagControl_FullyQualified_8Bytes = 0xE0
+
+TLVBoolean_False = TLVType_Boolean
+TLVBoolean_True = TLVType_Boolean + 1
+
+TLVEndOfContainer = 0x18
+
+INT8_MIN = -128
+INT16_MIN = -32768
+INT32_MIN = -2147483648
+INT64_MIN = -9223372036854775808
+
+INT8_MAX = 127
+INT16_MAX = 32767
+INT32_MAX = 2147483647
+INT64_MAX = 9223372036854775807
+
+UINT8_MAX = 255
+UINT16_MAX = 65535
+UINT32_MAX = 4294967295
+UINT64_MAX = 18446744073709551615
+
+class TLVWriter(object):
+
+ def __init__(self, encoding=bytearray(), implicitProfile=None):
+ self._encoding = encoding
+ self._implicitProfile = implicitProfile
+ self._containerStack = []
+
+ @property
+ def encoding(self):
+ '''The object into which encoded TLV data is written.
+
+ By default this is a bytearray object.
+ '''
+ return self._encoding
+
+ @encoding.setter
+ def encoding(self, val):
+ self._encoding = val
+
+ @property
+ def implicitProfile(self):
+ '''The Weave profile id used when encoding implicit profile tags.
+
+ Setting this value will result in an implicit profile tag being encoded
+ whenever the profile of the tag to be encoded matches the specified implicit
+ profile id.
+
+ Setting this value to None (the default) disabled encoding of implicit
+ profile tags.
+ '''
+ return self._implicitProfile
+
+ @implicitProfile.setter
+ def implicitProfile(self, val):
+ self._implicitProfile = val
+
+ def put(self, tag, val):
+ '''Write a value in TLV format with the specified TLV tag.
+
+ val can be a Python object which will be encoded as follows:
+ - Python bools, floats and strings are encoded as their respective TLV types.
+ - Python ints are encoded as unsigned TLV integers if zero or positive; signed TLV
+ integers if negative.
+ - None is encoded as a TLV Null.
+ - bytes and bytearray objects are encoded as TVL byte strings.
+ - Mapping-like objects (e.g. dict) are encoded as TLV structures. The keys of the
+ map object are expected to be tag values, as described below for the tag argument.
+ Map values are encoded recursively, using the same rules as defined for the val
+ argument. The encoding order of elements depends on the type of the map object.
+ Elements within a dict are automatically encoded tag numerical order. Elements
+ within other forms of mapping object (e.g. OrderedDict) are encoded in the
+ object's natural iteration order.
+ - Sequence-like objects (e.g. arrays) are written as TLV arrays. Elements within
+ the array are encoded recursively, using the same rules as defined for the val
+ argument.
+
+ tag can be a small int (0-255), a tuple of two integers, or None.
+ If tag is an integer, it is encoded as a TLV context-specific tag.
+ If tag is a two-integer tuple, it is encoded as a TLV profile-specific tag, with
+ the first integer encoded as the profile id and the second as the tag number.
+ If tag is None, it is encoded as a TLV anonymous tag.
+ '''
+ if val == None:
+ self.putNull(tag)
+ elif isinstance(val, bool):
+ self.putBool(tag, val)
+ elif isinstance(val, int):
+ if val < 0:
+ self.putSignedInt(tag, val)
+ else:
+ self.putUnsignedInt(tag, val)
+ elif isinstance(val, float):
+ self.putFloat(tag, val)
+ elif isinstance(val, str):
+ self.putString(tag, val)
+ elif isinstance(val, bytes) or isinstance(val, bytearray):
+ self.putBytes(tag, val)
+ elif isinstance(val, Mapping):
+ self.startStructure(tag)
+ if type(val) == dict:
+ val = OrderedDict(sorted(val.items(), key=lambda item: tlvTagToSortKey(item[0])))
+ for containedTag, containedVal in val.items():
+ self.put(containedTag, containedVal)
+ self.endContainer()
+ elif isinstance(val, Sequence):
+ self.startArray(tag)
+ for containedVal in val:
+ self.put(None, containedVal)
+ self.endContainer()
+ else:
+ raise ValueError('Attempt to TLV encode unsupported value')
+
+ def putSignedInt(self, tag, val):
+ '''Write a value as a TLV signed integer with the specified TLV tag.'''
+ if val >= INT8_MIN and val <= INT8_MAX:
+ format = '<b'
+ elif val >= INT16_MIN and val <= INT16_MAX:
+ format = '<h'
+ elif val >= INT32_MIN and val <= INT32_MAX:
+ format = '<l'
+ elif val >= INT64_MIN and val <= INT64_MAX:
+ format = '<q'
+ else:
+ raise ValueError('Integer value out of range')
+ val = struct.pack(format, val)
+ controlAndTag = self._encodeControlAndTag(TLVType_SignedInteger, tag, lenOfLenOrVal=len(val))
+ self._encoding.extend(controlAndTag)
+ self._encoding.extend(val)
+
+ def putUnsignedInt(self, tag, val):
+ '''Write a value as a TLV unsigned integer with the specified TLV tag.'''
+ val = self._encodeUnsignedInt(val)
+ controlAndTag = self._encodeControlAndTag(TLVType_UnsignedInteger, tag, lenOfLenOrVal=len(val))
+ self._encoding.extend(controlAndTag)
+ self._encoding.extend(val)
+
+ def putFloat(self, tag, val):
+ '''Write a value as a TLV float with the specified TLV tag.'''
+ val = struct.pack('d', val)
+ controlAndTag = self._encodeControlAndTag(TLVType_FloatingPointNumber, tag, lenOfLenOrVal=len(val))
+ self._encoding.extend(controlAndTag)
+ self._encoding.extend(val)
+
+ def putString(self, tag, val):
+ '''Write a value as a TLV string with the specified TLV tag.'''
+ val = val.encode('utf-8')
+ valLen = self._encodeUnsignedInt(len(val))
+ controlAndTag = self._encodeControlAndTag(TLVType_UTF8String, tag, lenOfLenOrVal=len(valLen))
+ self._encoding.extend(controlAndTag)
+ self._encoding.extend(valLen)
+ self._encoding.extend(val)
+
+ def putBytes(self, tag, val):
+ '''Write a value as a TLV byte string with the specified TLV tag.'''
+ valLen = self._encodeUnsignedInt(len(val))
+ controlAndTag = self._encodeControlAndTag(TLVType_ByteString, tag, lenOfLenOrVal=len(valLen))
+ self._encoding.extend(controlAndTag)
+ self._encoding.extend(valLen)
+ self._encoding.extend(val)
+
+ def putBool(self, tag, val):
+ '''Write a value as a TLV boolean with the specified TLV tag.'''
+ if val:
+ type = TLVBoolean_True
+ else:
+ type = TLVBoolean_False
+ controlAndTag = self._encodeControlAndTag(type, tag)
+ self._encoding.extend(controlAndTag)
+
+ def putNull(self, tag):
+ '''Write a TLV null with the specified TLV tag.'''
+ controlAndTag = self._encodeControlAndTag(TLVType_Null, tag)
+ self._encoding.extend(controlAndTag)
+
+ def startContainer(self, tag, containerType):
+ '''Start writing a TLV container with the specified TLV tag.
+
+ containerType can be one of TLVType_Structure, TLVType_Array or
+ TLVType_Path.
+ '''
+ self._verifyValidContainerType(containerType)
+ controlAndTag = self._encodeControlAndTag(containerType, tag)
+ self._encoding.extend(controlAndTag)
+ self._containerStack.insert(0, containerType)
+
+ def startStructure(self, tag):
+ '''Start writing a TLV structure with the specified TLV tag.'''
+ self.startContainer(tag, containerType=TLVType_Structure)
+
+ def startArray(self, tag):
+ '''Start writing a TLV array with the specified TLV tag.'''
+ self.startContainer(tag, containerType=TLVType_Array)
+
+ def startPath(self, tag):
+ '''Start writing a TLV path with the specified TLV tag.'''
+ self.startContainer(tag, containerType=TLVType_Path)
+
+ def endContainer(self):
+ '''End writing the current TLV container.'''
+ self._containerStack.pop(0)
+ controlAndTag = self._encodeControlAndTag(TLVEndOfContainer, None)
+ self._encoding.extend(controlAndTag)
+
+ def _encodeControlAndTag(self, type, tag, lenOfLenOrVal=0):
+ controlByte = type
+ if lenOfLenOrVal == 2:
+ controlByte |= 1
+ elif lenOfLenOrVal == 4:
+ controlByte |= 2
+ elif lenOfLenOrVal == 8:
+ controlByte |= 3
+ if tag == None:
+ if type != TLVEndOfContainer and len(self._containerStack) != 0 and self._containerStack[0] == TLVType_Structure:
+ raise ValueError('Attempt to encode anonymous tag within TLV structure')
+ controlByte |= TLVTagControl_Anonymous
+ return struct.pack('<B', controlByte)
+ if isinstance(tag, int):
+ if tag < 0 or tag > UINT8_MAX:
+ ValueError('Context-specific TLV tag number out of range')
+ if len(self._containerStack) == 0:
+ raise ValueError('Attempt to encode context-specific TLV tag at top level')
+ if self._containerStack[0] == TLVType_Array:
+ raise ValueError('Attempt to encode context-specific tag within TLV array')
+ controlByte |= TLVTagControl_ContextSpecific
+ return struct.pack('<BB', controlByte, tag)
+ if isinstance(tag, tuple):
+ (profile, tagNum) = tag
+ if not isinstance(tagNum, int):
+ raise ValueError('Invalid object given for TLV tag')
+ if tagNum < 0 or tagNum > UINT32_MAX:
+ raise ValueError('TLV tag number out of range')
+ if profile != None:
+ if not isinstance(profile, int):
+ raise ValueError('Invalid object given for TLV profile id')
+ if profile < 0 or profile > UINT32_MAX:
+ raise ValueError('TLV profile id value out of range')
+ if len(self._containerStack) != 0 and self._containerStack[0] == TLVType_Array:
+ raise ValueError('Attempt to encode profile-specific tag within TLV array')
+ if profile == None or profile == self._implicitProfile:
+ if tagNum <= UINT16_MAX:
+ controlByte |= TLVTagControl_ImplicitProfile_2Bytes
+ return struct.pack('<BH', controlByte, tagNum)
+ else:
+ controlByte |= TLVTagControl_ImplicitProfile_4Bytes
+ return struct.pack('<BL', controlByte, tagNum)
+ elif profile == 0:
+ if tagNum <= UINT16_MAX:
+ controlByte |= TLVTagControl_CommonProfile_2Bytes
+ return struct.pack('<BH', controlByte, tagNum)
+ else:
+ controlByte |= TLVTagControl_CommonProfile_4Bytes
+ return struct.pack('<BL', controlByte, tagNum)
+ else:
+ if tagNum <= UINT16_MAX:
+ controlByte |= TLVTagControl_FullyQualified_6Bytes
+ return struct.pack('<BLH', controlByte, profile, tagNum)
+ else:
+ controlByte |= TLVTagControl_FullyQualified_8Bytes
+ return struct.pack('<BLL', controlByte, profile, tagNum)
+ raise ValueError('Invalid object given for TLV tag')
+
+ @staticmethod
+ def _encodeUnsignedInt(val):
+ if val < 0:
+ raise ValueError('Integer value out of range')
+ if val <= UINT8_MAX:
+ format = '<B'
+ elif val <= UINT16_MAX:
+ format = '<H'
+ elif val <= UINT32_MAX:
+ format = '<L'
+ elif val <= UINT64_MAX:
+ format = '<Q'
+ else:
+ raise ValueError('Integer value out of range')
+ return struct.pack(format, val)
+
+ @staticmethod
+ def _verifyValidContainerType(containerType):
+ if containerType != TLVType_Structure and containerType != TLVType_Array and containerType != TLVType_Path:
+ raise ValueError('Invalid TLV container type')
+
+def tlvTagToSortKey(tag):
+ if tag == None:
+ return -1
+ if isinstance(tag, int):
+ majorOrder = 0;
+ elif isinstance(tag, tuple):
+ (profileId, tag) = tag
+ if profileId == None:
+ majorOrder = 1
+ else:
+ majorOrder = profileId + 2
+ else:
+ raise ValueError('Invalid TLV tag')
+ return (majorOrder << 32) + tag
+
+if __name__ == '__main__':
+ val = dict([
+ (1, 0),
+ (2, 65536),
+ (3, True),
+ (4, None),
+ (5, "Hello!"),
+ (6, bytearray([ 0xDE, 0xAD, 0xBE, 0xEF ])),
+ (7, [
+ "Goodbye!",
+ 71024724507,
+ False
+ ]),
+ ((0x235A0000, 42), "FOO"),
+ ((None, 42), "BAR"),
+ ])
+ writer = TLVWriter()
+ encodedVal = writer.put(None, val)
+ sys.stdout.write(writer.encoding)
diff --git a/src/device-manager/python/weave-device-mgr.py b/src/device-manager/python/weave-device-mgr.py
index 661520b..3a84ab8 100755
--- a/src/device-manager/python/weave-device-mgr.py
+++ b/src/device-manager/python/weave-device-mgr.py
@@ -275,6 +275,9 @@
'ble-read',
'start-system-test',
'stop-system-test',
+ 'update-trait',
+ 'view-trait',
+ 'send-custom-command',
'ble-scan-connect',
'pair-token',
'unpair-token',
@@ -2421,6 +2424,70 @@
print "Stop system test complete"
+ def do_updatetrait(self, line):
+ """
+ update-trait <locale>
+ Set the device's active locale.
+ """
+
+ args = shlex.split(line)
+
+ if (len(args) != 4):
+ print "Usage:"
+ self.do_help('update-trait')
+ return
+
+ try:
+ self.devMgr.UpdateTrait(int(args[0]), int(args[1]), int(args[2]), args[3])
+ except WeaveDeviceMgr.DeviceManagerException, ex:
+ print str(ex)
+ return
+
+ print "Update trait complete"
+
+ def do_viewtrait(self, line):
+ """
+ view-trait <locale>
+ Set the device's active locale.
+ """
+
+ args = shlex.split(line)
+
+ if (len(args) != 3):
+ print "Usage:"
+ self.do_help('view-traits profile-id instance-id propertypathhandle')
+ return
+
+ try:
+ traitTlvData = self.devMgr.ViewTrait(int(args[0]), int(args[1]), int(args[2]))
+ except WeaveDeviceMgr.DeviceManagerException, ex:
+ print str(ex)
+ return
+
+ print "View Traits complete"
+ print "trait tlv data: " + base64.b64encode(buffer(traitTlvData))
+
+ def do_sendcustomcommand(self, line):
+ """
+ sendcustomcommand <locale>
+ Set the device's active locale.
+ """
+
+ args = shlex.split(line)
+
+ if (len(args) != 2):
+ print "Usage:"
+ self.do_help('send-custom-command')
+ return
+
+ try:
+ self.devMgr.SendCustomCommand(args[0], args[1])
+ except WeaveDeviceMgr.DeviceManagerException, ex:
+ print str(ex)
+ return
+
+ print "Send Custom Command"
+
def do_history(self, line):
"""
history
diff --git a/src/include/Makefile.am b/src/include/Makefile.am
index 35cea57..464b98a 100644
--- a/src/include/Makefile.am
+++ b/src/include/Makefile.am
@@ -693,7 +693,6 @@
nl_public_WeaveProfiles_locale_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/locale/LocaleProfile.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/locale/LocaleStatus.hpp \
-$(nl_public_WeaveProfiles_source_dirstem)/locale/LocaleTags.hpp \
$(NULL)
nl_public_WeaveProfiles_network_provisioning_header_sources = \
@@ -959,6 +958,8 @@
nl_public_WeaveDeviceManager_header_sources = \
$(nl_public_WeaveDeviceManager_source_dirstem)/WeaveDeviceManager.h \
+$(nl_public_WeaveDeviceManager_source_dirstem)/GenericTraitDataSink.h \
+$(nl_public_WeaveDeviceManager_source_dirstem)/LocaleSettingsTrait.h \
$(NULL)
nl_public_WeaveDeviceManager_header_paths = $(subst $(nl_public_WeaveDeviceManager_source_dirstem)/,,$(nl_public_WeaveDeviceManager_header_sources))
diff --git a/src/include/Makefile.in b/src/include/Makefile.in
index a49005a..e992a85 100644
--- a/src/include/Makefile.in
+++ b/src/include/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -151,12 +151,12 @@
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_cxx_compile_stdcxx_11.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_jni_include_dir.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_pthread.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/libtool.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltoptions.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltsugar.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltversion.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/lt~obsolete.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/pkg.m4 \
+ $(top_srcdir)/build/autoconf/m4/libtool.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltoptions.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltsugar.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltversion.m4 \
+ $(top_srcdir)/build/autoconf/m4/lt~obsolete.m4 \
$(top_srcdir)/build/autoconf/m4/nl_check_project_config_includes.m4 \
$(top_srcdir)/build/autoconf/m4/nl_enable_long_tests.m4 \
$(top_srcdir)/build/autoconf/m4/nl_with_lwip.m4 \
@@ -504,6 +504,7 @@
LNDIR = @LNDIR@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LWIP_CPPFLAGS = @LWIP_CPPFLAGS@
LWIP_LDFLAGS = @LWIP_LDFLAGS@
LWIP_LIBS = @LWIP_LIBS@
@@ -1159,7 +1160,6 @@
nl_public_WeaveProfiles_locale_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/locale/LocaleProfile.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/locale/LocaleStatus.hpp \
-$(nl_public_WeaveProfiles_source_dirstem)/locale/LocaleTags.hpp \
$(NULL)
nl_public_WeaveProfiles_network_provisioning_header_sources = \
@@ -1356,6 +1356,8 @@
nl_public_WeaveDeviceManager_destination_dirstem = Weave/DeviceManager
nl_public_WeaveDeviceManager_header_sources = \
$(nl_public_WeaveDeviceManager_source_dirstem)/WeaveDeviceManager.h \
+$(nl_public_WeaveDeviceManager_source_dirstem)/GenericTraitDataSink.h \
+$(nl_public_WeaveDeviceManager_source_dirstem)/LocaleSettingsTrait.h \
$(NULL)
nl_public_WeaveDeviceManager_header_paths = $(subst $(nl_public_WeaveDeviceManager_source_dirstem)/,,$(nl_public_WeaveDeviceManager_header_sources))
@@ -1666,8 +1668,8 @@
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -3033,7 +3035,10 @@
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in
index 251ddcb..5bfab0a 100644
--- a/src/lib/Makefile.in
+++ b/src/lib/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -246,7 +246,17 @@
# Manager code altogether.
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -310,14 +320,6 @@
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
-DIST_COMMON = $(srcdir)/../system/SystemLayer.am \
- $(srcdir)/../inet/InetLayer.am $(srcdir)/../ble/BleLayer.am \
- $(srcdir)/core/WeaveCore.am $(srcdir)/support/WeaveSupport.am \
- $(srcdir)/profiles/WeaveProfiles.am $(srcdir)/../warm/Warm.am \
- $(srcdir)/../device-manager/DeviceManager.am \
- $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/depcomp
@WEAVE_WITH_NLFAULTINJECTION_TRUE@am__append_1 = @top_builddir@/src/system/SystemFaultInjection.cpp
@INET_WANT_ENDPOINT_DNS_TRUE@am__append_2 = @top_builddir@/src/inet/DNSResolver.cpp
@INET_WANT_ENDPOINT_RAW_TRUE@am__append_3 = @top_builddir@/src/inet/RawEndPoint.cpp
@@ -388,18 +390,19 @@
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_cxx_compile_stdcxx_11.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_jni_include_dir.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ax_pthread.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/libtool.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltoptions.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltsugar.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/ltversion.m4 \
- $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/lt~obsolete.m4 \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/m4/pkg.m4 \
+ $(top_srcdir)/build/autoconf/m4/libtool.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltoptions.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltsugar.m4 \
+ $(top_srcdir)/build/autoconf/m4/ltversion.m4 \
+ $(top_srcdir)/build/autoconf/m4/lt~obsolete.m4 \
$(top_srcdir)/build/autoconf/m4/nl_check_project_config_includes.m4 \
$(top_srcdir)/build/autoconf/m4/nl_enable_long_tests.m4 \
$(top_srcdir)/build/autoconf/m4/nl_with_lwip.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(SHELL) \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/include/BuildConfig.h
@@ -631,6 +634,8 @@
@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp \
@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp \
@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp \
+ @top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp \
+ @top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp \
@top_builddir@/src/lib/profiles/data-management/Legacy/Binding.cpp \
@top_builddir@/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp \
@top_builddir@/src/lib/profiles/data-management/Legacy/DMClient.cpp \
@@ -840,6 +845,8 @@
@top_builddir@/src/lib/profiles/weave-tunneling/libWeave_a-WeaveTunnelCommon.$(OBJEXT) \
@top_builddir@/src/lib/profiles/weave-tunneling/libWeave_a-WeaveTunnelConnectionMgr.$(OBJEXT) \
@top_builddir@/src/lib/profiles/weave-tunneling/libWeave_a-WeaveTunnelControl.$(OBJEXT) \
+ @top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.$(OBJEXT) \
+ @top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.$(OBJEXT) \
$(am__objects_21) $(am__objects_22)
am__objects_24 = \
@top_builddir@/src/warm/libWeave_a-WarmCore.$(OBJEXT)
@@ -863,7 +870,199 @@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include
depcomp = $(SHELL) \
$(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = \
+ @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BLEEndPoint.Po \
+ @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleError.Po \
+ @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleLayer.Po \
+ @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleUUID.Po \
+ @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-WoBle.Po \
+ @top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WeaveDeviceManager.Po \
+ @top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WoBleTest.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-AsyncDNSResolverSockets.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-DNSResolver.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-EndPointBasis.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress-StringFuncts.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPEndPointBasis.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPPrefix.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetError.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetFaultInjection.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetInterface.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayer.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayerBasis.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetTimer.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetUtils.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-RawEndPoint.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TCPEndPoint.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TunEndPoint.Po \
+ @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-UDPEndPoint.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-ExchangeContext.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-HostPortList.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveBinding.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveCircularTLVBuffer.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnection.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnectionTunnel.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveError.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveExchangeMgr.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveFabricState.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveGlobals.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveKeyIds.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveMessageLayer.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-Malloc.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-SimpleAlloc.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveServerBase.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveStats.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVDebug.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVReader.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUpdater.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUtilities.Po \
+ @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVWriter.Po \
+ @top_builddir@/src/lib/profiles/bulk-data-transfer/$(DEPDIR)/libWeave_a-BulkDataTransfer.Po \
+ @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXMessages.Po \
+ @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXNode.Po \
+ @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXProtocol.Po \
+ @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXTransferState.Po \
+ @top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-RetainedPacketBuffer.Po \
+ @top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-WeaveMessage.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-Command.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLogging.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLoggingTypes.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventProcessor.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LogBDXUpload.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingConfiguration.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingManagement.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-MessageDef.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-NotificationEngine.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ResourceIdentifier.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionClient.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionEngine.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionHandler.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitData.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitPathStore.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateClient.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateEncoder.Po \
+ @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ViewClient.Po \
+ @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-Binding.Po \
+ @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ClientNotifier.Po \
+ @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMClient.Po \
+ @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMPublisher.Po \
+ @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProfileDatabase.Po \
+ @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProtocolEngine.Po \
+ @top_builddir@/src/lib/profiles/device-control/$(DEPDIR)/libWeave_a-DeviceControl.Po \
+ @top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescription.Po \
+ @top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionClient.Po \
+ @top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionServer.Po \
+ @top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po \
+ @top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po \
+ @top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po \
+ @top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po \
+ @top_builddir@/src/lib/profiles/fabric-provisioning/$(DEPDIR)/libWeave_a-FabricProvisioning.Po \
+ @top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatReceiver.Po \
+ @top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatSender.Po \
+ @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Po \
+ @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Po \
+ @top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkInfo.Po \
+ @top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkProvisioning.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTrait.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTraitDataSink.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveAccessToken.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveApplicationKeys.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEEngine.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEMessages.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCert.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveDummyGroupKeyStore.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExport.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportClient.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportTest.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePASEEngine.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePasscodes.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePrivateKey.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvBundle.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvHash.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurity.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurityDebug.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSig.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveTAKEEngine.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveToX509.Po \
+ @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-X509ToWeave.Po \
+ @top_builddir@/src/lib/profiles/service-directory/$(DEPDIR)/libWeave_a-ServiceDirectory.Po \
+ @top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioning.Po \
+ @top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioningServer.Po \
+ @top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-SoftwareUpdateProfile.Po \
+ @top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-WeaveImageAnnounceServer.Po \
+ @top_builddir@/src/lib/profiles/status-report/$(DEPDIR)/libWeave_a-StatusReportProfile.Po \
+ @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTime.Po \
+ @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeClient.Po \
+ @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeCoordinator.Po \
+ @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeServer.Po \
+ @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeZone.Po \
+ @top_builddir@/src/lib/profiles/token-pairing/$(DEPDIR)/libWeave_a-TokenPairing.Po \
+ @top_builddir@/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/$(DEPDIR)/libWeave_a-DropcamLegacyPairing.Po \
+ @top_builddir@/src/lib/profiles/vendor/nestlabs/thermostat/$(DEPDIR)/libWeave_a-IfjStatusStr.Po \
+ @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelAgent.Po \
+ @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelCommon.Po \
+ @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelConnectionMgr.Po \
+ @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelControl.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Error.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1OID.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Reader.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Writer.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-Base64.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ErrorStr.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-FibonacciUtils.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-MathUtils.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NestCerts.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NonProductionMarker.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-PersistedCounter.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ProfileStringSupport.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-RandUtils.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerialNumberUtils.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerializationUtils.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-StatusReportStr.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-TimeUtils.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveCounter.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveFaultInjection.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveNames.Po \
+ @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-nlargparser.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-AESNI.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-OpenSSL.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-mbedTLS.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-CTRMode.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-DRBG.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-OpenSSL.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-uECC.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HKDF.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HMAC.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-MinCrypt.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-OpenSSL.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-mbedTLS.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto-OpenSSL.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-NestDRBG.Po \
+ @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-OpenSSL.Po \
+ @top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-DecodedIPPacket.Po \
+ @top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-WeaveLogging.Po \
+ @top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-KryptonitePairingCodeUtils.Po \
+ @top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-NevisPairingCodeUtils.Po \
+ @top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-PairingCodeUtils.Po \
+ @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff.Po \
+ @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff10.Po \
+ @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff16.Po \
+ @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff32.Po \
+ @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff36.Po \
+ @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemClock.Po \
+ @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemError.Po \
+ @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemFaultInjection.Po \
+ @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemLayer.Po \
+ @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemMutex.Po \
+ @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemObject.Po \
+ @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemPacketBuffer.Po \
+ @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemStats.Po \
+ @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemTimer.Po \
+ @top_builddir@/src/warm/$(DEPDIR)/libWeave_a-WarmCore.Po
am__mv = mv -f
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -913,6 +1112,15 @@
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/../ble/BleLayer.am \
+ $(srcdir)/../device-manager/DeviceManager.am \
+ $(srcdir)/../inet/InetLayer.am \
+ $(srcdir)/../system/SystemLayer.am $(srcdir)/../warm/Warm.am \
+ $(srcdir)/Makefile.in $(srcdir)/core/WeaveCore.am \
+ $(srcdir)/profiles/WeaveProfiles.am \
+ $(srcdir)/support/WeaveSupport.am \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/depcomp \
+ $(top_srcdir)/third_party/nlbuild-autotools/repo/third_party/autoconf/mkinstalldirs
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -1002,6 +1210,7 @@
LNDIR = @LNDIR@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LWIP_CPPFLAGS = @LWIP_CPPFLAGS@
LWIP_LDFLAGS = @LWIP_LDFLAGS@
LWIP_LIBS = @LWIP_LIBS@
@@ -1161,6 +1370,7 @@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@@ -1355,6 +1565,8 @@
@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp \
@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp \
@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp \
+ @top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp \
+ @top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp \
$(NULL) $(am__append_12) $(am__append_13)
nl_Warm_sources = \
@top_builddir@/src/warm/WarmCore.cpp \
@@ -1427,16 +1639,15 @@
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/lib/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign src/lib/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
-$(srcdir)/../system/SystemLayer.am $(srcdir)/../inet/InetLayer.am $(srcdir)/../ble/BleLayer.am $(srcdir)/core/WeaveCore.am $(srcdir)/support/WeaveSupport.am $(srcdir)/profiles/WeaveProfiles.am $(srcdir)/../warm/Warm.am $(srcdir)/../device-manager/DeviceManager.am:
+$(srcdir)/../system/SystemLayer.am $(srcdir)/../inet/InetLayer.am $(srcdir)/../ble/BleLayer.am $(srcdir)/core/WeaveCore.am $(srcdir)/support/WeaveSupport.am $(srcdir)/profiles/WeaveProfiles.am $(srcdir)/../warm/Warm.am $(srcdir)/../device-manager/DeviceManager.am $(am__empty):
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -2166,6 +2377,18 @@
@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/$(am__dirstamp)
@top_builddir@/src/lib/profiles/weave-tunneling/libWeave_a-WeaveTunnelControl.$(OBJEXT): @top_builddir@/src/lib/profiles/weave-tunneling/$(am__dirstamp) \
@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/$(am__dirstamp)
+@top_builddir@/src/lib/profiles/locale/$(am__dirstamp):
+ @$(MKDIR_P) @top_builddir@/src/lib/profiles/locale
+ @: > @top_builddir@/src/lib/profiles/locale/$(am__dirstamp)
+@top_builddir@/src/lib/profiles/locale/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) @top_builddir@/src/lib/profiles/locale/$(DEPDIR)
+ @: > @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/$(am__dirstamp)
+@top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.$(OBJEXT): \
+ @top_builddir@/src/lib/profiles/locale/$(am__dirstamp) \
+ @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/$(am__dirstamp)
+@top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.$(OBJEXT): \
+ @top_builddir@/src/lib/profiles/locale/$(am__dirstamp) \
+ @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/$(am__dirstamp)
@top_builddir@/src/lib/profiles/data-management/Legacy/$(am__dirstamp):
@$(MKDIR_P) @top_builddir@/src/lib/profiles/data-management/Legacy
@: > @top_builddir@/src/lib/profiles/data-management/Legacy/$(am__dirstamp)
@@ -2218,6 +2441,7 @@
-rm -f @top_builddir@/src/lib/profiles/echo/Next/*.$(OBJEXT)
-rm -f @top_builddir@/src/lib/profiles/fabric-provisioning/*.$(OBJEXT)
-rm -f @top_builddir@/src/lib/profiles/heartbeat/*.$(OBJEXT)
+ -rm -f @top_builddir@/src/lib/profiles/locale/*.$(OBJEXT)
-rm -f @top_builddir@/src/lib/profiles/network-provisioning/*.$(OBJEXT)
-rm -f @top_builddir@/src/lib/profiles/security/*.$(OBJEXT)
-rm -f @top_builddir@/src/lib/profiles/service-directory/*.$(OBJEXT)
@@ -2240,195 +2464,203 @@
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BLEEndPoint.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleError.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleLayer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleUUID.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-WoBle.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WeaveDeviceManager.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WoBleTest.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-AsyncDNSResolverSockets.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-DNSResolver.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-EndPointBasis.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress-StringFuncts.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPEndPointBasis.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPPrefix.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetError.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetFaultInjection.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetInterface.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayerBasis.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetTimer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-RawEndPoint.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TCPEndPoint.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TunEndPoint.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-UDPEndPoint.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-ExchangeContext.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-HostPortList.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveBinding.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveCircularTLVBuffer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnection.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnectionTunnel.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveError.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveExchangeMgr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveFabricState.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveGlobals.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveKeyIds.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveMessageLayer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-Malloc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-SimpleAlloc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveServerBase.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveStats.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVDebug.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVReader.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUpdater.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUtilities.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVWriter.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/$(DEPDIR)/libWeave_a-BulkDataTransfer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXMessages.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXNode.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXProtocol.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXTransferState.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-RetainedPacketBuffer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-WeaveMessage.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-Command.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLogging.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLoggingTypes.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventProcessor.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LogBDXUpload.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingConfiguration.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingManagement.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-MessageDef.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-NotificationEngine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ResourceIdentifier.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionClient.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionEngine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionHandler.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitData.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitPathStore.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateClient.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateEncoder.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ViewClient.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-Binding.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ClientNotifier.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMClient.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMPublisher.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProfileDatabase.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProtocolEngine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/device-control/$(DEPDIR)/libWeave_a-DeviceControl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescription.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionClient.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionServer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/fabric-provisioning/$(DEPDIR)/libWeave_a-FabricProvisioning.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatReceiver.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatSender.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkInfo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkProvisioning.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTrait.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTraitDataSink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveAccessToken.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveApplicationKeys.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEEngine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEMessages.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCert.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveDummyGroupKeyStore.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExport.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportClient.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportTest.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePASEEngine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePasscodes.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePrivateKey.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvBundle.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvHash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurity.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurityDebug.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSig.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveTAKEEngine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveToX509.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-X509ToWeave.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/service-directory/$(DEPDIR)/libWeave_a-ServiceDirectory.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioning.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioningServer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-SoftwareUpdateProfile.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-WeaveImageAnnounceServer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/status-report/$(DEPDIR)/libWeave_a-StatusReportProfile.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeClient.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeCoordinator.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeServer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeZone.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/token-pairing/$(DEPDIR)/libWeave_a-TokenPairing.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/$(DEPDIR)/libWeave_a-DropcamLegacyPairing.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/vendor/nestlabs/thermostat/$(DEPDIR)/libWeave_a-IfjStatusStr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelAgent.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelCommon.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelConnectionMgr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelControl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Error.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1OID.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Reader.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Writer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-Base64.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ErrorStr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-FibonacciUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-MathUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NestCerts.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NonProductionMarker.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-PersistedCounter.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ProfileStringSupport.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-RandUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerialNumberUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerializationUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-StatusReportStr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-TimeUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveCounter.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveFaultInjection.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveNames.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-nlargparser.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-AESNI.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-OpenSSL.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-mbedTLS.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-CTRMode.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-DRBG.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-OpenSSL.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-uECC.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HKDF.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HMAC.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-MinCrypt.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-OpenSSL.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-mbedTLS.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto-OpenSSL.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-NestDRBG.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-OpenSSL.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-DecodedIPPacket.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-WeaveLogging.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-KryptonitePairingCodeUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-NevisPairingCodeUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-PairingCodeUtils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff10.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff16.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff32.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff36.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemClock.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemError.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemFaultInjection.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemLayer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemMutex.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemObject.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemPacketBuffer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemStats.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemTimer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/warm/$(DEPDIR)/libWeave_a-WarmCore.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BLEEndPoint.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleError.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleLayer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleUUID.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/ble/$(DEPDIR)/libWeave_a-WoBle.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WeaveDeviceManager.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WoBleTest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-AsyncDNSResolverSockets.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-DNSResolver.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-EndPointBasis.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress-StringFuncts.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPEndPointBasis.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPPrefix.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetError.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetFaultInjection.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetInterface.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayerBasis.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetTimer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-RawEndPoint.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TCPEndPoint.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TunEndPoint.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/inet/$(DEPDIR)/libWeave_a-UDPEndPoint.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-ExchangeContext.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-HostPortList.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveBinding.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveCircularTLVBuffer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnection.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnectionTunnel.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveError.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveExchangeMgr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveFabricState.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveGlobals.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveKeyIds.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveMessageLayer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-Malloc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-SimpleAlloc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveServerBase.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveStats.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVDebug.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVReader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUpdater.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUtilities.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVWriter.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/$(DEPDIR)/libWeave_a-BulkDataTransfer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXMessages.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXNode.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXProtocol.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXTransferState.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-RetainedPacketBuffer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-WeaveMessage.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-Command.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLogging.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLoggingTypes.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventProcessor.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LogBDXUpload.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingConfiguration.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingManagement.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-MessageDef.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-NotificationEngine.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ResourceIdentifier.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionClient.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionEngine.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionHandler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitData.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitPathStore.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateClient.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateEncoder.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ViewClient.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-Binding.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ClientNotifier.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMClient.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMPublisher.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProfileDatabase.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProtocolEngine.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/device-control/$(DEPDIR)/libWeave_a-DeviceControl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescription.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionClient.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionServer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/fabric-provisioning/$(DEPDIR)/libWeave_a-FabricProvisioning.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatReceiver.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatSender.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkInfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkProvisioning.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTrait.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTraitDataSink.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveAccessToken.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveApplicationKeys.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEEngine.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEMessages.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCert.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveDummyGroupKeyStore.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExport.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportClient.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportTest.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePASEEngine.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePasscodes.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePrivateKey.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvBundle.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvHash.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurity.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurityDebug.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSig.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveTAKEEngine.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveToX509.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-X509ToWeave.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/service-directory/$(DEPDIR)/libWeave_a-ServiceDirectory.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioning.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioningServer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-SoftwareUpdateProfile.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-WeaveImageAnnounceServer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/status-report/$(DEPDIR)/libWeave_a-StatusReportProfile.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeClient.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeCoordinator.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeServer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeZone.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/token-pairing/$(DEPDIR)/libWeave_a-TokenPairing.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/$(DEPDIR)/libWeave_a-DropcamLegacyPairing.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/vendor/nestlabs/thermostat/$(DEPDIR)/libWeave_a-IfjStatusStr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelAgent.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelCommon.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelConnectionMgr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelControl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Error.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1OID.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Reader.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Writer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-Base64.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ErrorStr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-FibonacciUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-MathUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NestCerts.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NonProductionMarker.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-PersistedCounter.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ProfileStringSupport.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-RandUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerialNumberUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerializationUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-StatusReportStr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-TimeUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveCounter.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveFaultInjection.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveNames.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-nlargparser.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-AESNI.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-OpenSSL.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-mbedTLS.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-CTRMode.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-DRBG.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-OpenSSL.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-uECC.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HKDF.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HMAC.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-MinCrypt.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-OpenSSL.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-mbedTLS.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto-OpenSSL.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-NestDRBG.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-OpenSSL.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-DecodedIPPacket.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-WeaveLogging.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-KryptonitePairingCodeUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-NevisPairingCodeUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-PairingCodeUtils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff10.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff16.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff32.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff36.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemClock.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemError.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemFaultInjection.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemLayer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemMutex.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemObject.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemPacketBuffer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemStats.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemTimer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@top_builddir@/src/warm/$(DEPDIR)/libWeave_a-WarmCore.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
.cpp.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -4988,6 +5220,34 @@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o @top_builddir@/src/lib/profiles/weave-tunneling/libWeave_a-WeaveTunnelControl.obj `if test -f '@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp'; then $(CYGPATH_W) '@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp'; else $(CYGPATH_W) '$(srcdir)/@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp'; fi`
+@top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.o: @top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT @top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.o -MD -MP -MF @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Tpo -c -o @top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.o `test -f '@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp' || echo '$(srcdir)/'`@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Tpo @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp' object='@top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o @top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.o `test -f '@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp' || echo '$(srcdir)/'`@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp
+
+@top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.obj: @top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT @top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.obj -MD -MP -MF @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Tpo -c -o @top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.obj `if test -f '@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp'; then $(CYGPATH_W) '@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp'; else $(CYGPATH_W) '$(srcdir)/@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Tpo @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp' object='@top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o @top_builddir@/src/lib/profiles/locale/libWeave_a-LocaleSettingsTrait.obj `if test -f '@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp'; then $(CYGPATH_W) '@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp'; else $(CYGPATH_W) '$(srcdir)/@top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp'; fi`
+
+@top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.o: @top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT @top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.o -MD -MP -MF @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Tpo -c -o @top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.o `test -f '@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp' || echo '$(srcdir)/'`@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Tpo @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp' object='@top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o @top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.o `test -f '@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp' || echo '$(srcdir)/'`@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp
+
+@top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.obj: @top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT @top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.obj -MD -MP -MF @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Tpo -c -o @top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.obj `if test -f '@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp'; then $(CYGPATH_W) '@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp'; else $(CYGPATH_W) '$(srcdir)/@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Tpo @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp' object='@top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o @top_builddir@/src/lib/profiles/locale/libWeave_a-MockSinkTrait.obj `if test -f '@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp'; then $(CYGPATH_W) '@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp'; else $(CYGPATH_W) '$(srcdir)/@top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp'; fi`
+
@top_builddir@/src/lib/profiles/data-management/Legacy/libWeave_a-Binding.o: @top_builddir@/src/lib/profiles/data-management/Legacy/Binding.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libWeave_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT @top_builddir@/src/lib/profiles/data-management/Legacy/libWeave_a-Binding.o -MD -MP -MF @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-Binding.Tpo -c -o @top_builddir@/src/lib/profiles/data-management/Legacy/libWeave_a-Binding.o `test -f '@top_builddir@/src/lib/profiles/data-management/Legacy/Binding.cpp' || echo '$(srcdir)/'`@top_builddir@/src/lib/profiles/data-management/Legacy/Binding.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-Binding.Tpo @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-Binding.Po
@@ -5158,7 +5418,10 @@
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -5251,6 +5514,8 @@
-rm -f @top_builddir@/src/lib/profiles/fabric-provisioning/$(am__dirstamp)
-rm -f @top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/$(am__dirstamp)
-rm -f @top_builddir@/src/lib/profiles/heartbeat/$(am__dirstamp)
+ -rm -f @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/$(am__dirstamp)
+ -rm -f @top_builddir@/src/lib/profiles/locale/$(am__dirstamp)
-rm -f @top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/$(am__dirstamp)
-rm -f @top_builddir@/src/lib/profiles/network-provisioning/$(am__dirstamp)
-rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/$(am__dirstamp)
@@ -5297,7 +5562,197 @@
mostlyclean-am
distclean: distclean-am
- -rm -rf @top_builddir@/src/ble/$(DEPDIR) @top_builddir@/src/device-manager/$(DEPDIR) @top_builddir@/src/inet/$(DEPDIR) @top_builddir@/src/lib/core/$(DEPDIR) @top_builddir@/src/lib/profiles/bulk-data-transfer/$(DEPDIR) @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR) @top_builddir@/src/lib/profiles/common/$(DEPDIR) @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR) @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR) @top_builddir@/src/lib/profiles/device-control/$(DEPDIR) @top_builddir@/src/lib/profiles/device-description/$(DEPDIR) @top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR) @top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR) @top_builddir@/src/lib/profiles/fabric-provisioning/$(DEPDIR) @top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR) @top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR) @top_builddir@/src/lib/profiles/security/$(DEPDIR) @top_builddir@/src/lib/profiles/service-directory/$(DEPDIR) @top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR) @top_builddir@/src/lib/profiles/software-update/$(DEPDIR) @top_builddir@/src/lib/profiles/status-report/$(DEPDIR) @top_builddir@/src/lib/profiles/time/$(DEPDIR) @top_builddir@/src/lib/profiles/token-pairing/$(DEPDIR) @top_builddir@/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/$(DEPDIR) @top_builddir@/src/lib/profiles/vendor/nestlabs/thermostat/$(DEPDIR) @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR) @top_builddir@/src/lib/support/$(DEPDIR) @top_builddir@/src/lib/support/crypto/$(DEPDIR) @top_builddir@/src/lib/support/logging/$(DEPDIR) @top_builddir@/src/lib/support/pairing-code/$(DEPDIR) @top_builddir@/src/lib/support/verhoeff/$(DEPDIR) @top_builddir@/src/system/$(DEPDIR) @top_builddir@/src/warm/$(DEPDIR)
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BLEEndPoint.Po
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleError.Po
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleLayer.Po
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleUUID.Po
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-WoBle.Po
+ -rm -f @top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WeaveDeviceManager.Po
+ -rm -f @top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WoBleTest.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-AsyncDNSResolverSockets.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-DNSResolver.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-EndPointBasis.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress-StringFuncts.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPEndPointBasis.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPPrefix.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetError.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetFaultInjection.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetInterface.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayer.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayerBasis.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetTimer.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetUtils.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-RawEndPoint.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TCPEndPoint.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TunEndPoint.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-UDPEndPoint.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-ExchangeContext.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-HostPortList.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveBinding.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveCircularTLVBuffer.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnection.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnectionTunnel.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveError.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveExchangeMgr.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveFabricState.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveGlobals.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveKeyIds.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveMessageLayer.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-Malloc.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-SimpleAlloc.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveServerBase.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveStats.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVDebug.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVReader.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUpdater.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUtilities.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVWriter.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/$(DEPDIR)/libWeave_a-BulkDataTransfer.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXMessages.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXNode.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXProtocol.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXTransferState.Po
+ -rm -f @top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-RetainedPacketBuffer.Po
+ -rm -f @top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-WeaveMessage.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-Command.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLogging.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLoggingTypes.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventProcessor.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LogBDXUpload.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingConfiguration.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingManagement.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-MessageDef.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-NotificationEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ResourceIdentifier.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionHandler.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitData.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitPathStore.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateEncoder.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ViewClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-Binding.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ClientNotifier.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMPublisher.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProfileDatabase.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProtocolEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/device-control/$(DEPDIR)/libWeave_a-DeviceControl.Po
+ -rm -f @top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescription.Po
+ -rm -f @top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/fabric-provisioning/$(DEPDIR)/libWeave_a-FabricProvisioning.Po
+ -rm -f @top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatReceiver.Po
+ -rm -f @top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatSender.Po
+ -rm -f @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Po
+ -rm -f @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Po
+ -rm -f @top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkInfo.Po
+ -rm -f @top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkProvisioning.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTrait.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTraitDataSink.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveAccessToken.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveApplicationKeys.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEMessages.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCert.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveDummyGroupKeyStore.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExport.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportTest.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePASEEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePasscodes.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePrivateKey.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvBundle.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvHash.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurity.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurityDebug.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSig.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveTAKEEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveToX509.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-X509ToWeave.Po
+ -rm -f @top_builddir@/src/lib/profiles/service-directory/$(DEPDIR)/libWeave_a-ServiceDirectory.Po
+ -rm -f @top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioning.Po
+ -rm -f @top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioningServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-SoftwareUpdateProfile.Po
+ -rm -f @top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-WeaveImageAnnounceServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/status-report/$(DEPDIR)/libWeave_a-StatusReportProfile.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTime.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeCoordinator.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeZone.Po
+ -rm -f @top_builddir@/src/lib/profiles/token-pairing/$(DEPDIR)/libWeave_a-TokenPairing.Po
+ -rm -f @top_builddir@/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/$(DEPDIR)/libWeave_a-DropcamLegacyPairing.Po
+ -rm -f @top_builddir@/src/lib/profiles/vendor/nestlabs/thermostat/$(DEPDIR)/libWeave_a-IfjStatusStr.Po
+ -rm -f @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelAgent.Po
+ -rm -f @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelCommon.Po
+ -rm -f @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelConnectionMgr.Po
+ -rm -f @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelControl.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Error.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1OID.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Reader.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Writer.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-Base64.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ErrorStr.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-FibonacciUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-MathUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NestCerts.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NonProductionMarker.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-PersistedCounter.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ProfileStringSupport.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-RandUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerialNumberUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerializationUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-StatusReportStr.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-TimeUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveCounter.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveFaultInjection.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveNames.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-nlargparser.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-AESNI.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-mbedTLS.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-CTRMode.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-DRBG.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-uECC.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HKDF.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HMAC.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-MinCrypt.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-mbedTLS.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-NestDRBG.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-DecodedIPPacket.Po
+ -rm -f @top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-WeaveLogging.Po
+ -rm -f @top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-KryptonitePairingCodeUtils.Po
+ -rm -f @top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-NevisPairingCodeUtils.Po
+ -rm -f @top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-PairingCodeUtils.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff10.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff16.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff32.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff36.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemClock.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemError.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemFaultInjection.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemLayer.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemMutex.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemObject.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemPacketBuffer.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemStats.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemTimer.Po
+ -rm -f @top_builddir@/src/warm/$(DEPDIR)/libWeave_a-WarmCore.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -5343,7 +5798,197 @@
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf @top_builddir@/src/ble/$(DEPDIR) @top_builddir@/src/device-manager/$(DEPDIR) @top_builddir@/src/inet/$(DEPDIR) @top_builddir@/src/lib/core/$(DEPDIR) @top_builddir@/src/lib/profiles/bulk-data-transfer/$(DEPDIR) @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR) @top_builddir@/src/lib/profiles/common/$(DEPDIR) @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR) @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR) @top_builddir@/src/lib/profiles/device-control/$(DEPDIR) @top_builddir@/src/lib/profiles/device-description/$(DEPDIR) @top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR) @top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR) @top_builddir@/src/lib/profiles/fabric-provisioning/$(DEPDIR) @top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR) @top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR) @top_builddir@/src/lib/profiles/security/$(DEPDIR) @top_builddir@/src/lib/profiles/service-directory/$(DEPDIR) @top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR) @top_builddir@/src/lib/profiles/software-update/$(DEPDIR) @top_builddir@/src/lib/profiles/status-report/$(DEPDIR) @top_builddir@/src/lib/profiles/time/$(DEPDIR) @top_builddir@/src/lib/profiles/token-pairing/$(DEPDIR) @top_builddir@/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/$(DEPDIR) @top_builddir@/src/lib/profiles/vendor/nestlabs/thermostat/$(DEPDIR) @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR) @top_builddir@/src/lib/support/$(DEPDIR) @top_builddir@/src/lib/support/crypto/$(DEPDIR) @top_builddir@/src/lib/support/logging/$(DEPDIR) @top_builddir@/src/lib/support/pairing-code/$(DEPDIR) @top_builddir@/src/lib/support/verhoeff/$(DEPDIR) @top_builddir@/src/system/$(DEPDIR) @top_builddir@/src/warm/$(DEPDIR)
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BLEEndPoint.Po
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleError.Po
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleLayer.Po
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-BleUUID.Po
+ -rm -f @top_builddir@/src/ble/$(DEPDIR)/libWeave_a-WoBle.Po
+ -rm -f @top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WeaveDeviceManager.Po
+ -rm -f @top_builddir@/src/device-manager/$(DEPDIR)/libWeave_a-WoBleTest.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-AsyncDNSResolverSockets.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-DNSResolver.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-EndPointBasis.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress-StringFuncts.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPAddress.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPEndPointBasis.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-IPPrefix.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetError.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetFaultInjection.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetInterface.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayer.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetLayerBasis.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetTimer.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-InetUtils.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-RawEndPoint.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TCPEndPoint.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-TunEndPoint.Po
+ -rm -f @top_builddir@/src/inet/$(DEPDIR)/libWeave_a-UDPEndPoint.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-ExchangeContext.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-HostPortList.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveBinding.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveCircularTLVBuffer.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnection.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveConnectionTunnel.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveError.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveExchangeMgr.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveFabricState.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveGlobals.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveKeyIds.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveMessageLayer.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-Malloc.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr-SimpleAlloc.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveSecurityMgr.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveServerBase.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveStats.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVDebug.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVReader.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUpdater.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVUtilities.Po
+ -rm -f @top_builddir@/src/lib/core/$(DEPDIR)/libWeave_a-WeaveTLVWriter.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/$(DEPDIR)/libWeave_a-BulkDataTransfer.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXMessages.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXNode.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXProtocol.Po
+ -rm -f @top_builddir@/src/lib/profiles/bulk-data-transfer/Development/$(DEPDIR)/libWeave_a-BDXTransferState.Po
+ -rm -f @top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-RetainedPacketBuffer.Po
+ -rm -f @top_builddir@/src/lib/profiles/common/$(DEPDIR)/libWeave_a-WeaveMessage.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-Command.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLogging.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventLoggingTypes.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-EventProcessor.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LogBDXUpload.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingConfiguration.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-LoggingManagement.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-MessageDef.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-NotificationEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ResourceIdentifier.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-SubscriptionHandler.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitData.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-TraitPathStore.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-UpdateEncoder.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Current/$(DEPDIR)/libWeave_a-ViewClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-Binding.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ClientNotifier.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-DMPublisher.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProfileDatabase.Po
+ -rm -f @top_builddir@/src/lib/profiles/data-management/Legacy/$(DEPDIR)/libWeave_a-ProtocolEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/device-control/$(DEPDIR)/libWeave_a-DeviceControl.Po
+ -rm -f @top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescription.Po
+ -rm -f @top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/device-description/$(DEPDIR)/libWeave_a-DeviceDescriptionServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/echo/Current/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/echo/Next/$(DEPDIR)/libWeave_a-WeaveEchoServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/fabric-provisioning/$(DEPDIR)/libWeave_a-FabricProvisioning.Po
+ -rm -f @top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatReceiver.Po
+ -rm -f @top_builddir@/src/lib/profiles/heartbeat/$(DEPDIR)/libWeave_a-WeaveHeartbeatSender.Po
+ -rm -f @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-LocaleSettingsTrait.Po
+ -rm -f @top_builddir@/src/lib/profiles/locale/$(DEPDIR)/libWeave_a-MockSinkTrait.Po
+ -rm -f @top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkInfo.Po
+ -rm -f @top_builddir@/src/lib/profiles/network-provisioning/$(DEPDIR)/libWeave_a-NetworkProvisioning.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTrait.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-ApplicationKeysTraitDataSink.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveAccessToken.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveApplicationKeys.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCASEMessages.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveCert.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveDummyGroupKeyStore.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExport.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveKeyExportTest.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePASEEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePasscodes.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeavePrivateKey.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvBundle.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveProvHash.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurity.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSecurityDebug.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveSig.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveTAKEEngine.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-WeaveToX509.Po
+ -rm -f @top_builddir@/src/lib/profiles/security/$(DEPDIR)/libWeave_a-X509ToWeave.Po
+ -rm -f @top_builddir@/src/lib/profiles/service-directory/$(DEPDIR)/libWeave_a-ServiceDirectory.Po
+ -rm -f @top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioning.Po
+ -rm -f @top_builddir@/src/lib/profiles/service-provisioning/$(DEPDIR)/libWeave_a-ServiceProvisioningServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-SoftwareUpdateProfile.Po
+ -rm -f @top_builddir@/src/lib/profiles/software-update/$(DEPDIR)/libWeave_a-WeaveImageAnnounceServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/status-report/$(DEPDIR)/libWeave_a-StatusReportProfile.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTime.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeClient.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeCoordinator.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeServer.Po
+ -rm -f @top_builddir@/src/lib/profiles/time/$(DEPDIR)/libWeave_a-WeaveTimeZone.Po
+ -rm -f @top_builddir@/src/lib/profiles/token-pairing/$(DEPDIR)/libWeave_a-TokenPairing.Po
+ -rm -f @top_builddir@/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/$(DEPDIR)/libWeave_a-DropcamLegacyPairing.Po
+ -rm -f @top_builddir@/src/lib/profiles/vendor/nestlabs/thermostat/$(DEPDIR)/libWeave_a-IfjStatusStr.Po
+ -rm -f @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelAgent.Po
+ -rm -f @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelCommon.Po
+ -rm -f @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelConnectionMgr.Po
+ -rm -f @top_builddir@/src/lib/profiles/weave-tunneling/$(DEPDIR)/libWeave_a-WeaveTunnelControl.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Error.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1OID.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Reader.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ASN1Writer.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-Base64.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ErrorStr.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-FibonacciUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-MathUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NestCerts.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-NonProductionMarker.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-PersistedCounter.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-ProfileStringSupport.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-RandUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerialNumberUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-SerializationUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-StatusReportStr.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-TimeUtils.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveCounter.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveFaultInjection.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-WeaveNames.Po
+ -rm -f @top_builddir@/src/lib/support/$(DEPDIR)/libWeave_a-nlargparser.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-AESNI.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-AESBlockCipher-mbedTLS.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-CTRMode.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-DRBG.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve-uECC.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-EllipticCurve.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HKDF.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HMAC.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-MinCrypt.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-HashAlgos-mbedTLS.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveCrypto.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-NestDRBG.Po
+ -rm -f @top_builddir@/src/lib/support/crypto/$(DEPDIR)/libWeave_a-WeaveRNG-OpenSSL.Po
+ -rm -f @top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-DecodedIPPacket.Po
+ -rm -f @top_builddir@/src/lib/support/logging/$(DEPDIR)/libWeave_a-WeaveLogging.Po
+ -rm -f @top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-KryptonitePairingCodeUtils.Po
+ -rm -f @top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-NevisPairingCodeUtils.Po
+ -rm -f @top_builddir@/src/lib/support/pairing-code/$(DEPDIR)/libWeave_a-PairingCodeUtils.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff10.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff16.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff32.Po
+ -rm -f @top_builddir@/src/lib/support/verhoeff/$(DEPDIR)/libWeave_a-Verhoeff36.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemClock.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemError.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemFaultInjection.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemLayer.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemMutex.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemObject.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemPacketBuffer.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemStats.Po
+ -rm -f @top_builddir@/src/system/$(DEPDIR)/libWeave_a-SystemTimer.Po
+ -rm -f @top_builddir@/src/warm/$(DEPDIR)/libWeave_a-WarmCore.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -5364,9 +6009,9 @@
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libLIBRARIES clean-libtool cscopelist-am ctags ctags-am \
- distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-libLIBRARIES clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
@@ -5378,6 +6023,8 @@
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-libLIBRARIES
+.PRECIOUS: Makefile
+
include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
diff --git a/src/lib/core/WeaveBinding.cpp b/src/lib/core/WeaveBinding.cpp
index 3cc4f76..7ff220e 100644
--- a/src/lib/core/WeaveBinding.cpp
+++ b/src/lib/core/WeaveBinding.cpp
@@ -1908,13 +1908,6 @@
{
mBinding.mPeerNodeId = apMsgHeader->SourceNodeId;
- // Configure the outgoing interface only if the received message is from a
- // link-local address because we need to specify the interface when we are
- // sending to a link local address. Otherwise, defer to the routing logic
- // to choose the outgoing interface.
- TargetAddress_IP(apPktInfo->SrcAddress, apPktInfo->SrcPort,
- apPktInfo->SrcAddress.IsIPv6LinkLocal() ? apPktInfo->Interface : INET_NULL_INTERFACEID);
-
if (apConnection != NULL)
{
Transport_ExistingConnection(apConnection);
@@ -1932,15 +1925,7 @@
Transport_UDP();
}
- if (apMsgHeader->KeyId == WeaveKeyId::kNone)
- {
- Security_None();
- }
- else
- {
- Security_Key(apMsgHeader->KeyId);
- Security_EncryptionType(apMsgHeader->EncryptionType);
- }
+ Security_None();
return *this;
}
diff --git a/src/lib/profiles/WeaveProfiles.am b/src/lib/profiles/WeaveProfiles.am
index 18fe494..09a7f1f 100644
--- a/src/lib/profiles/WeaveProfiles.am
+++ b/src/lib/profiles/WeaveProfiles.am
@@ -102,6 +102,8 @@
@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp \
@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp \
@top_builddir@/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp \
+ @top_builddir@/src/lib/profiles/locale/LocaleSettingsTrait.cpp \
+ @top_builddir@/src/lib/profiles/locale/MockSinkTrait.cpp \
$(NULL)
if WEAVE_BUILD_LEGACY_WDM
diff --git a/src/lib/profiles/data-management/Current/Command.cpp b/src/lib/profiles/data-management/Current/Command.cpp
index a22ce57..bda5320 100644
--- a/src/lib/profiles/data-management/Current/Command.cpp
+++ b/src/lib/profiles/data-management/Current/Command.cpp
@@ -393,7 +393,7 @@
// Call exchange context to send response
err = mEC->SendMessage(nl::Weave::Profiles::kWeaveProfile_WDM, kMsgType_CustomCommandResponse, respBuf,
- nl::Weave::ExchangeContext::kSendFlag_RequestAck);
+ nl::Weave::ExchangeContext::kSendFlag_NoAutoRequestAck);
// Don't free the buffer on exit.
respBuf = NULL;
diff --git a/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp b/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
index ff936fb..20c7477 100644
--- a/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
+++ b/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
@@ -1091,7 +1091,7 @@
ExitNow(err = WEAVE_ERROR_NO_MEMORY);
}
- err = binding->BeginConfiguration().ConfigureFromMessage(aMsgInfo, aPktInfo).PrepareBinding();
+ err = binding->BeginConfiguration().ConfigureFromMessage(aMsgInfo, aPktInfo, aEC->Con).PrepareBinding();
SuccessOrExit(err);
// If the peer requested an ACK, we need to ensure that the exchange context will automatically
@@ -1307,7 +1307,7 @@
Command * command = NULL;
uint32_t statusReportProfile = nl::Weave::Profiles::kWeaveProfile_WDM;
uint16_t statusReportCode = nl::Weave::Profiles::DataManagement::kStatus_InvalidPath;
-
+ WeaveLogDetail(DataManagement, "receive command0");
for (size_t i = 0; i < kMaxNumCommandObjs; ++i)
{
if (pEngine->mCommandObjs[i].IsFree())
@@ -1320,7 +1320,7 @@
}
}
VerifyOrExit(NULL != command, err = WEAVE_ERROR_NO_MEMORY);
-
+ WeaveLogDetail(DataManagement, "receive command1");
if (!pEngine->mIsPublisherEnabled)
{
// Has to be a publisher to be processing a command
@@ -1330,7 +1330,7 @@
}
// Set the flag indicating whether this is a OneWay Command or not.
-
+ WeaveLogDetail(DataManagement, "receive command2");
if (aMsgType == kMsgType_OneWayCommand)
{
command->SetIsOneWay(true);
@@ -1346,7 +1346,7 @@
err = reader.Next();
SuccessOrExit(err);
-
+ WeaveLogDetail(DataManagement, "receive command3");
{
CustomCommand::Parser cmdParser;
TraitDataHandle traitDataHandle;
@@ -1355,7 +1355,7 @@
err = cmdParser.Init(reader);
SuccessOrExit(err);
-
+ WeaveLogDetail(DataManagement, "receive command4");
#if WEAVE_CONFIG_DATA_MANAGEMENT_ENABLE_SCHEMA_CHECK
err = cmdParser.CheckSchemaValidity();
SuccessOrExit(err);
@@ -1366,7 +1366,7 @@
err = pEngine->mPublisherCatalog->AddressToHandle(pathReader, traitDataHandle, requestedSchemaVersion);
SuccessOrExit(err);
-
+ WeaveLogDetail(DataManagement, "receive command5");
err = SubscriptionEngine::GetInstance()->mPublisherCatalog->Locate(traitDataHandle, &dataSource);
SuccessOrExit(err);
@@ -1379,7 +1379,7 @@
statusReportCode = kStatus_IncompatibleDataSchemaVersion;
ExitNow(err = WEAVE_ERROR_INCOMPATIBLE_SCHEMA_VERSION);
}
-
+ WeaveLogDetail(DataManagement, "receive command6");
err = cmdParser.GetCommandType(&command->commandType);
SuccessOrExit(err);
@@ -1396,7 +1396,7 @@
{
ExitNow();
}
-
+ WeaveLogDetail(DataManagement, "receive command7");
err = cmdParser.GetActionTimeMicroSecond(&command->actionTimeMicroSecond);
if (WEAVE_NO_ERROR == err)
{
@@ -1410,7 +1410,7 @@
{
ExitNow();
}
-
+ WeaveLogDetail(DataManagement, "receive command8");
err = cmdParser.GetExpiryTimeMicroSecond(&command->expiryTimeMicroSecond);
if (WEAVE_NO_ERROR == err)
{
@@ -1424,7 +1424,7 @@
{
ExitNow();
}
-
+ WeaveLogDetail(DataManagement, "receive command9");
err = cmdParser.GetMustBeVersion(&command->mustBeVersion);
if (WEAVE_NO_ERROR == err)
{
@@ -1438,9 +1438,10 @@
{
ExitNow();
}
-
+ WeaveLogDetail(DataManagement, "receive command10");
err = cmdParser.GetReaderOnArgument(&reader);
SuccessOrExit(err);
+ WeaveLogDetail(DataManagement, "receive command11");
}
#if WDM_ENFORCE_EXPIRY_TIME
@@ -1466,6 +1467,7 @@
WeaveLogDetail(DataManagement, "Command ExpiryTime 0x%" PRIX64 ", now: 0x% " PRIX64 " ", command->expiryTimeMicroSecond,
now_usec);
}
+ WeaveLogDetail(DataManagement, "receive command12");
#endif // WDM_ENFORCE_EXPIRY_TIME
if (command->IsMustBeVersionValid())
@@ -1480,7 +1482,7 @@
ExitNow();
}
}
-
+ WeaveLogDetail(DataManagement, "receive command13");
// Note we cannot just use pathReader at here because the TDM related functions
// generally assume they can move the reader at their will.
// Note that callee is supposed to cache whatever is useful in the TLV stream into its own memory
@@ -1493,6 +1495,7 @@
command = NULL;
aPayload = NULL;
+ WeaveLogDetail(DataManagement, "receive command14");
}
exit:
diff --git a/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp b/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
index f0de69f..43c5297 100644
--- a/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
+++ b/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
@@ -863,7 +863,7 @@
// Note we're sending back a message using an EC initiated by the client
err = mEC->SendMessage(nl::Weave::Profiles::kWeaveProfile_WDM, kMsgType_SubscribeResponse, msgBuf,
- nl::Weave::ExchangeContext::kSendFlag_RequestAck);
+ nl::Weave::ExchangeContext::kSendFlag_NoAutoRequestAck);
msgBuf = NULL;
SuccessOrExit(err);
diff --git a/src/lib/profiles/data-management/Current/TraitData.cpp b/src/lib/profiles/data-management/Current/TraitData.cpp
index 3550c77..ad4eddd 100644
--- a/src/lib/profiles/data-management/Current/TraitData.cpp
+++ b/src/lib/profiles/data-management/Current/TraitData.cpp
@@ -1293,7 +1293,7 @@
apSubClient->UnlockUpdateMutex();
}
-WEAVE_ERROR TraitUpdatableDataSink::GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter,
+WEAVE_ERROR TraitDataSink::GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter,
bool & aIsNull, bool & aIsPresent)
{
WEAVE_ERROR err = WEAVE_NO_ERROR;
@@ -1336,7 +1336,7 @@
}
}
-WEAVE_ERROR TraitUpdatableDataSink::ReadData(TraitDataHandle aTraitDataHandle,
+WEAVE_ERROR TraitDataSink::ReadData(TraitDataHandle aTraitDataHandle,
PropertyPathHandle aHandle,
uint64_t aTagToWrite,
TLVWriter & aWriter,
diff --git a/src/lib/profiles/data-management/Current/TraitData.h b/src/lib/profiles/data-management/Current/TraitData.h
index 7abf5d4..b99ec76 100644
--- a/src/lib/profiles/data-management/Current/TraitData.h
+++ b/src/lib/profiles/data-management/Current/TraitData.h
@@ -536,7 +536,7 @@
* It takes in a pointer to a schema that it then uses to help decipher incoming TLV data from a publisher and invoke the
* relevant data setter calls to pass the data up to subclasses.
*/
-class TraitDataSink : private TraitSchemaEngine::ISetDataDelegate
+class TraitDataSink : private TraitSchemaEngine::ISetDataDelegate, public TraitSchemaEngine::IGetDataDelegate
{
public:
@@ -546,6 +546,24 @@
typedef WEAVE_ERROR (*OnChangeRejection)(uint16_t aRejectionStatusCode, uint64_t aVersion, void * aContext);
+ WEAVE_ERROR ReadData(TraitDataHandle aTraitDataHandle, PropertyPathHandle aHandle, uint64_t aTagToWrite, TLV::TLVWriter & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom);
+
+ virtual WEAVE_ERROR GetLeafData(PropertyPathHandle aLeafHandle, uint64_t aTagToWrite,
+ nl::Weave::TLV::TLVWriter & aWriter) __OVERRIDE
+ {
+ return WEAVE_ERROR_INVALID_ARGUMENT;
+ }
+
+ virtual WEAVE_ERROR GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter,
+ bool & aIsNull, bool & aIsPresent) __OVERRIDE;
+
+#if TDM_ENABLE_PUBLISHER_DICTIONARY_SUPPORT
+ virtual WEAVE_ERROR GetNextDictionaryItemKey(PropertyPathHandle aDictionaryHandle, uintptr_t & aContext,
+ PropertyDictionaryKey & aKey) __OVERRIDE
+ {
+ return WEAVE_ERROR_INVALID_ARGUMENT;
+ }
+#endif
enum ChangeFlags
{
kFirstElementInChange = (1 << 0),
@@ -755,16 +773,11 @@
* and generate local sink changes to publisher.
*
*/
-class TraitUpdatableDataSink : public TraitDataSink, protected TraitSchemaEngine::IGetDataDelegate
+class TraitUpdatableDataSink : public TraitDataSink
{
public:
TraitUpdatableDataSink(const TraitSchemaEngine * aEngine);
- WEAVE_ERROR ReadData(TraitDataHandle aTraitDataHandle, PropertyPathHandle aHandle, uint64_t aTagToWrite, TLV::TLVWriter & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom);
-
- virtual WEAVE_ERROR GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter,
- bool & aIsNull, bool & aIsPresent) __OVERRIDE;
-
WEAVE_ERROR SetUpdated(SubscriptionClient * apSubClient, PropertyPathHandle aPropertyHandle, bool aIsConditional=false);
void Lock(SubscriptionClient * apSubClient);
diff --git a/src/test-apps/Makefile.in b/src/test-apps/Makefile.in
index 41fbe59..baa61a3 100644
--- a/src/test-apps/Makefile.in
+++ b/src/test-apps/Makefile.in
@@ -8626,11 +8626,11 @@
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-@WEAVE_BUILD_TESTS_FALSE@uninstall-local:
@WEAVE_BUILD_TESTS_FALSE@install-exec-local:
@WEAVE_BUILD_COVERAGE_FALSE@clean-local:
@WEAVE_BUILD_COVERAGE_REPORTS_FALSE@clean-local:
@WEAVE_BUILD_TESTS_FALSE@clean-local:
+@WEAVE_BUILD_TESTS_FALSE@uninstall-local:
clean: clean-recursive
clean-am: clean-checkPROGRAMS clean-generic clean-libexecPROGRAMS \
diff --git a/src/test-apps/MockSinkTraits.cpp b/src/test-apps/MockSinkTraits.cpp
index 5a93618..1baefaa 100644
--- a/src/test-apps/MockSinkTraits.cpp
+++ b/src/test-apps/MockSinkTraits.cpp
@@ -81,22 +81,6 @@
}
#endif // WEAVE_CONFIG_ENABLE_WDM_UPDATE
-WEAVE_ERROR
-MockTraitDataSourceDelegate::GetData(PropertyPathHandle aHandle,
- uint64_t aTagToWrite,
- nl::Weave::TLV::TLVWriter &aWriter,
- bool &aIsNull,
- bool &aIsPresent)
-{
- WEAVE_ERROR err = WEAVE_NO_ERROR;
-
- aIsNull = false;
- aIsPresent = true;
- err = GetLeafData(aHandle, aTagToWrite, aWriter);
-
- return err;
-}
-
LocaleSettingsTraitDataSink::LocaleSettingsTraitDataSink()
: MockTraitDataSink(&LocaleSettingsTrait::TraitSchema)
{
diff --git a/src/test-apps/MockSinkTraits.h b/src/test-apps/MockSinkTraits.h
index 1b1d506..563efc8 100644
--- a/src/test-apps/MockSinkTraits.h
+++ b/src/test-apps/MockSinkTraits.h
@@ -199,18 +199,7 @@
#endif // WEAVE_CONFIG_ENABLE_WDM_UPDATE
-// This class is used to fetch data from sinks using existing data source APIs
-class MockTraitDataSourceDelegate : public nl::Weave::Profiles::DataManagement::TraitSchemaEngine::IGetDataDelegate
-{
-public:
- WEAVE_ERROR GetData(nl::Weave::Profiles::DataManagement::PropertyPathHandle aHandle,
- uint64_t aTagToWrite,
- nl::Weave::TLV::TLVWriter &aWriter,
- bool &aIsNull,
- bool &aIsPresent) __OVERRIDE;
-};
-
-class LocaleSettingsTraitDataSink : public MockTraitDataSink, public MockTraitDataSourceDelegate
+class LocaleSettingsTraitDataSink : public MockTraitDataSink
{
public:
LocaleSettingsTraitDataSink();
@@ -227,7 +216,7 @@
char mLocale[kMaxNumOfCharsPerLocale];
};
-class LocaleCapabilitiesTraitDataSink : public MockTraitDataSink, public MockTraitDataSourceDelegate
+class LocaleCapabilitiesTraitDataSink : public MockTraitDataSink
{
public:
LocaleCapabilitiesTraitDataSink();
@@ -249,7 +238,7 @@
char mLocales[kMaxNumOfLocals][kMaxNumOfCharsPerLocale];
};
-class BoltLockSettingTraitDataSink : public MockTraitDataSink, public MockTraitDataSourceDelegate
+class BoltLockSettingTraitDataSink : public MockTraitDataSink
{
public:
BoltLockSettingTraitDataSink();
@@ -263,7 +252,7 @@
uint32_t mAutoRelockDuration;
};
-class TestATraitDataSink : public MockTraitDataSink, public MockTraitDataSourceDelegate
+class TestATraitDataSink : public MockTraitDataSink
{
public:
TestATraitDataSink();
@@ -325,7 +314,7 @@
bool nullified_path[Schema::Nest::Test::Trait::TestATrait::kPropertyHandle_TaJ_Value_SaB];
};
-class TestBTraitDataSink : public MockTraitDataSink, public MockTraitDataSourceDelegate
+class TestBTraitDataSink : public MockTraitDataSink
{
public:
TestBTraitDataSink();
@@ -357,7 +346,7 @@
bool nullified_path[Schema::Nest::Test::Trait::TestBTrait::kPropertyHandle_TaJ_Value_SaB];
};
-class TestApplicationKeysTraitDataSink : public Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink, public MockTraitDataSourceDelegate
+class TestApplicationKeysTraitDataSink : public Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink
{
public:
TestApplicationKeysTraitDataSink(void);
diff --git a/src/test-apps/MockSourceTraits.cpp b/src/test-apps/MockSourceTraits.cpp
index 3a59d9b..a7a45a9 100644
--- a/src/test-apps/MockSourceTraits.cpp
+++ b/src/test-apps/MockSourceTraits.cpp
@@ -118,6 +118,175 @@
return err;
}
+
+void LocaleSettingsTraitDataSource::HandleCommandOperationTimeout(nl::Weave::System::Layer* aSystemLayer, void *aAppState,
+ nl::Weave::System::Error aErr)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ LocaleSettingsTraitDataSource * const datasource = reinterpret_cast<LocaleSettingsTraitDataSource *>(aAppState);
+
+ WeaveLogDetail(DataManagement, "LocaleSettingsTrait %s", __func__);
+
+ VerifyOrExit (NULL != datasource->mActiveCommand, err = WEAVE_ERROR_INCORRECT_STATE);
+
+ // If Command was OneWay, exit and close Command.
+
+ VerifyOrExit(!datasource->mActiveCommand->IsOneWay(), err = WEAVE_NO_ERROR);
+
+exit:
+ WeaveLogFunctError(err);
+
+ if (NULL != datasource->mActiveCommand)
+ {
+ datasource->mActiveCommand->Close();
+ datasource->mActiveCommand = NULL;
+ }
+}
+
+void LocaleSettingsTraitDataSource::OnCustomCommand(nl::Weave::Profiles::DataManagement::Command * aCommand,
+ const nl::Weave::WeaveMessageInfo * aMsgInfo,
+ nl::Weave::PacketBuffer * aPayload,
+ const uint64_t & aCommandType,
+ const bool aIsExpiryTimeValid,
+ const int64_t & aExpiryTimeMicroSecond,
+ const bool aIsMustBeVersionValid,
+ const uint64_t & aMustBeVersion,
+ nl::Weave::TLV::TLVReader & aArgumentReader)
+{
+ WEAVE_ERROR err = WEAVE_NO_ERROR;
+ uint32_t reportProfileId = nl::Weave::Profiles::kWeaveProfile_Common;
+ uint16_t reportStatusCode = nl::Weave::Profiles::Common::kStatus_BadRequest;
+
+ WeaveLogDetail(DataManagement, "LocaleSettingsTrait %s", __func__);
+
+ // verify there is no active command already running
+ // this is needed only if the implementation cannot handle more than one concurrent command per trait
+ if (NULL != mActiveCommand)
+ {
+ // we already have one active command. Reject this new one directly
+ reportProfileId = nl::Weave::Profiles::kWeaveProfile_Common;
+ reportStatusCode = nl::Weave::Profiles::Common::kStatus_OutOfMemory;
+ err = WEAVE_ERROR_NO_MEMORY;
+ ExitNow ();
+ }
+
+ // verify if this command comes with a valid EC with the right peer node ID, key ID, and authenticator
+ // more detailed example will be available when we have the security added
+
+ // Note that the version check is passed to application layer because the application layer might want to know
+ // someone is making a request.
+ if (aIsMustBeVersionValid)
+ {
+ WeaveLogDetail(DataManagement, "Actual version is 0x%" PRIx64 ", while must-be version is: 0x%" PRIx64, GetVersion(), aMustBeVersion);
+
+ if (aMustBeVersion != GetVersion())
+ {
+ reportProfileId = nl::Weave::Profiles::kWeaveProfile_WDM;
+ reportStatusCode = kStatus_VersionMismatch;
+ ExitNow ();
+ }
+ }
+
+ WeaveLogDetail(DataManagement, "Command Type ID 0x%" PRIx64, aCommandType);
+
+ // verify the command type and arguments are valid
+ // command type 1: one shot signaling without custom data in response
+ if (1 == aCommandType)
+ {
+ // Parse and validate the arguments according to schema definitions for this command
+ {
+ nl::Weave::TLV::TLVType OuterContainerType;
+ err = aArgumentReader.EnterContainer(OuterContainerType);
+ SuccessOrExit(err);
+
+ while (WEAVE_NO_ERROR == (err = aArgumentReader.Next()))
+ {
+ // usually there is only context-specific tags in argument section
+ VerifyOrExit(nl::Weave::TLV::IsContextTag(aArgumentReader.GetTag()), err = WEAVE_ERROR_INVALID_TLV_TAG);
+ switch (nl::Weave::TLV::TagNumFromTag(aArgumentReader.GetTag()))
+ {
+ case kCmdParam_1:
+ err = aArgumentReader.GetString(mCommandParam_1, 10);
+ SuccessOrExit(err);
+ WeaveLogDetail(DataManagement, "Parameter 1: %s", mCommandParam_1);
+ break;
+
+ case kCmdParam_2:
+ err = aArgumentReader.GetString(mCommandParam_2, 100);
+ SuccessOrExit(err);
+ WeaveLogDetail(DataManagement, "Parameter 2: %s", mCommandParam_2);
+ break;
+
+ default:
+ // unrecognized arguments are allowed or not is a trait-specific question
+ ExitNow(err = WEAVE_ERROR_INVALID_TLV_TAG);
+ }
+ }
+
+ if (WEAVE_END_OF_TLV == err)
+ {
+ // if any of the parameters are mandatory, we can verify at here
+ err = WEAVE_NO_ERROR;
+ }
+ SuccessOrExit(err);
+ }
+
+ // Free the packet buffer after we parsed and processed/cached all arguments.
+ // Doing this before allocating buffer for response might help reduce the max number of packet buffer needed
+ PacketBuffer::Free(aPayload);
+ aPayload = NULL;
+
+ // If Command was OneWay, close Command and exit.
+
+ if (aCommand->IsOneWay())
+ {
+ aCommand->Close();
+ aCommand = NULL;
+ ExitNow(err = WEAVE_NO_ERROR);
+ }
+
+ // Generate a success response right here
+ {
+
+ PacketBuffer * msgBuf = PacketBuffer::New();
+ if (NULL == msgBuf)
+ {
+ // It's unlikely we'll have packet buffer to send out the status report, but let us try anyways
+ reportProfileId = nl::Weave::Profiles::kWeaveProfile_Common;
+ reportStatusCode = nl::Weave::Profiles::Common::kStatus_OutOfMemory;
+ err = WEAVE_ERROR_NO_MEMORY;
+ ExitNow ();
+ }
+
+ aCommand->SendResponse(GetVersion(), msgBuf);
+ aCommand = NULL;
+ msgBuf = NULL;
+ }
+ }
+ else
+ {
+ // unrecognized command type id
+ // default error is bad request
+ err = WEAVE_ERROR_NOT_IMPLEMENTED;
+ ExitNow();
+ }
+
+exit:
+ WeaveLogFunctError(err);
+
+ if (NULL != aCommand)
+ {
+ aCommand->SendError(reportProfileId, reportStatusCode, err);
+ aCommand = NULL;
+ }
+
+ if (aPayload)
+ {
+ PacketBuffer::Free(aPayload);
+ aPayload = NULL;
+ }
+}
+
LocaleCapabilitiesTraitDataSource::LocaleCapabilitiesTraitDataSource()
: TraitDataSource(&LocaleCapabilitiesTrait::TraitSchema)
{
diff --git a/src/test-apps/MockSourceTraits.h b/src/test-apps/MockSourceTraits.h
index d1c7af4..62f9a82 100644
--- a/src/test-apps/MockSourceTraits.h
+++ b/src/test-apps/MockSourceTraits.h
@@ -44,6 +44,29 @@
LocaleSettingsTraitDataSource();
void Mutate();
+ virtual void OnCustomCommand(nl::Weave::Profiles::DataManagement::Command * aCommand,
+ const nl::Weave::WeaveMessageInfo * aMsgInfo,
+ nl::Weave::PacketBuffer * aPayload,
+ const uint64_t & aCommandType,
+ const bool aIsExpiryTimeValid,
+ const int64_t & aExpiryTimeMicroSecond,
+ const bool aIsMustBeVersionValid,
+ const uint64_t & aMustBeVersion,
+ nl::Weave::TLV::TLVReader & aArgumentReader) __OVERRIDE;
+
+ static void HandleCommandOperationTimeout(nl::Weave::System::Layer* aSystemLayer, void *aAppState, nl::Weave::System::Error aErr);
+
+ enum
+ {
+ kCmdType_1 = 1,
+ kCmdParam_1 = 1,
+ kCmdParam_2 = 2,
+ };
+
+ char mCommandParam_1[10];
+ char mCommandParam_2[100];
+ nl::Weave::Profiles::DataManagement::Command * mActiveCommand;
+
private:
WEAVE_ERROR GetLeafData(nl::Weave::Profiles::DataManagement::PropertyPathHandle aLeafHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter &aWriter) __OVERRIDE;
diff --git a/src/test-apps/MockWdmSubscriptionResponder.cpp b/src/test-apps/MockWdmSubscriptionResponder.cpp
index fc8b5a2..798f0b9 100644
--- a/src/test-apps/MockWdmSubscriptionResponder.cpp
+++ b/src/test-apps/MockWdmSubscriptionResponder.cpp
@@ -238,6 +238,8 @@
kTestCase_IncompatibleVersionedCommandRequest = 9,
kTestCase_TestUpdatableTrait = 10,
+
+ kTestCase_TestUpdatableTraitOverBLE = 11,
};
enum
@@ -444,6 +446,10 @@
WeaveLogDetail(DataManagement, "kTestCase_TestUpdatableTrait");
break;
+ case kTestCase_TestUpdatableTraitOverBLE:
+ WeaveLogDetail(DataManagement, "kTestCase_TestUpdatableTraitOverBLE");
+ break;
+
default:
WeaveLogDetail(DataManagement, "kTestCase_TestTrait");
break;
@@ -542,6 +548,7 @@
DumpClientTraitChecksum(kTestADataSink1Index);
break;
case kTestCase_TestUpdatableTrait:
+ case kTestCase_TestUpdatableTraitOverBLE:
break;
}
}
@@ -574,6 +581,7 @@
DumpPublisherTraitChecksum(kTestATraitSource1Index);
break;
case kTestCase_TestUpdatableTrait:
+ case kTestCase_TestUpdatableTraitOverBLE:
break;
}
}
@@ -682,6 +690,7 @@
{
case kTestCase_TestTrait:
case kTestCase_TestUpdatableTrait:
+ case kTestCase_TestUpdatableTraitOverBLE:
responder->mNumPaths = 3;
responder->mTraitPaths[0].mTraitDataHandle = responder->mTraitHandleSet[kTestADataSink0Index];
responder->mTraitPaths[0].mPropertyPathHandle = kRootPropertyPathHandle;
@@ -1149,14 +1158,20 @@
updateResponseBuilder.EndOfResponse();
SuccessOrExit(updateResponseBuilder.GetError());
-
referenceTLVData.init(sizeof(updateResponseBuf), sizeof(updateResponseBuf), updateResponseBuf);
statusReport.init(nl::Weave::Profiles::kWeaveProfile_Common, nl::Weave::Profiles::Common::kStatus_Success, &referenceTLVData);
err = statusReport.pack(mBuf);
SuccessOrExit(err);
- err = ec->SendMessage(nl::Weave::Profiles::kWeaveProfile_Common, nl::Weave::Profiles::Common::kMsgType_StatusReport, mBuf, nl::Weave::ExchangeContext::kSendFlag_RequestAck);
+ if (pResponder->mTestCaseId == kTestCase_TestUpdatableTraitOverBLE)
+ {
+ err = ec->SendMessage(nl::Weave::Profiles::kWeaveProfile_Common, nl::Weave::Profiles::Common::kMsgType_StatusReport, mBuf, nl::Weave::ExchangeContext::kSendFlag_NoAutoRequestAck);
+ }
+ else
+ {
+ err = ec->SendMessage(nl::Weave::Profiles::kWeaveProfile_Common, nl::Weave::Profiles::Common::kMsgType_StatusReport, mBuf, nl::Weave::ExchangeContext::kSendFlag_RequestAck);
+ }
mBuf = NULL;
SuccessOrExit(err);
@@ -1546,6 +1561,7 @@
SubscriptionEngine::GetInstance()->GetNotificationEngine()->Run();
break;
case kTestCase_TestUpdatableTrait:
+ case kTestCase_TestUpdatableTraitOverBLE:
break;
case kTestCase_IncompatibleVersionedCommandRequest:
responder->Command_Send();
diff --git a/src/test-apps/TestTDM.cpp b/src/test-apps/TestTDM.cpp
index 61e9e3d..e78907f 100644
--- a/src/test-apps/TestTDM.cpp
+++ b/src/test-apps/TestTDM.cpp
@@ -286,7 +286,6 @@
WEAVE_ERROR SetLeafData(PropertyPathHandle aLeafHandle, TLVReader &aReader) { mSetLeafDataCalled = true; return WEAVE_ERROR_INVALID_ARGUMENT; }
WEAVE_ERROR OnEvent(uint16_t aType, void *aInEventParam);
-
bool mSetLeafDataCalled;
bool mEventDataElementBeginSignalled;
bool mEventDataElementEndSignalled;
@@ -582,7 +581,6 @@
private:
WEAVE_ERROR OnEvent(uint16_t aType, void *aInParam);
WEAVE_ERROR SetLeafData(PropertyPathHandle aLeafHandle, nl::Weave::TLV::TLVReader &aReader);
- WEAVE_ERROR GetLeafData(PropertyPathHandle aLeafHandle, uint64_t aTagToWrite, TLVWriter &aWriter);
std::map <PropertyPathHandle, uint32_t> mModifiedHandles;
std::set <PropertyPathHandle> mDeletedHandles;
std::set <PropertyPathHandle> mReplacedDictionaries;
diff --git a/src/test-apps/mock-device.cpp b/src/test-apps/mock-device.cpp
index 7c8b981..5c9ec1c 100644
--- a/src/test-apps/mock-device.cpp
+++ b/src/test-apps/mock-device.cpp
@@ -104,6 +104,7 @@
static void InitiateConnection(System::Layer* aSystemLayer, void* aAppState, System::Error aError);
static void HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr);
static void HandleWdmCompleteTest();
+static void HandleError();
#if CONFIG_BLE_PLATFORM_BLUEZ
bool EnableWeaveBluezPeripheral = false;
@@ -766,6 +767,111 @@
#endif // CONFIG_BLE_PLATFORM_BLUEZ
+ InitializeEventLogging(&ExchangeMgr);
+
+ switch (gMockWdmNodeOptions.mWdmRoleInTest)
+ {
+ case 0:
+ break;
+ case kToolOpt_WdmInitMutualSubscription:
+ case kToolOpt_WdmSubscriptionClient:
+
+ if (gMockWdmNodeOptions.mWdmPublisherNodeId != kAnyNodeId)
+ {
+ err = MockWdmSubscriptionInitiator::GetInstance()->Init(&ExchangeMgr,
+ gGroupKeyEncOptions.GetEncKeyId(),
+ gWeaveSecurityMode.SecurityMode,
+ gMockWdmNodeOptions);
+ FAIL_ERROR(err, "MockWdmSubscriptionInitiator.Init failed");
+ MockWdmSubscriptionInitiator::GetInstance()->onCompleteTest = HandleWdmCompleteTest;
+ MockWdmSubscriptionInitiator::GetInstance()->onError = HandleError;
+
+ }
+ else
+ {
+ err = WEAVE_ERROR_INVALID_ARGUMENT;
+ FAIL_ERROR(err, "MockWdmSubscriptionInitiator requires node ID to some publisher");
+ }
+
+ break;
+ case kToolOpt_WdmRespMutualSubscription:
+ case kToolOpt_WdmSubscriptionPublisher:
+ if (gMockWdmNodeOptions.mEnableRetry)
+ {
+ err = WEAVE_ERROR_INVALID_ARGUMENT;
+ FAIL_ERROR(err, "MockWdmSubcriptionResponder is incompatible with --enable-retry");
+ }
+
+ err = MockWdmSubscriptionResponder::GetInstance()->Init(&ExchangeMgr,
+ gMockWdmNodeOptions
+ );
+ FAIL_ERROR(err, "MockWdmSubscriptionResponder.Init failed");
+ MockWdmSubscriptionResponder::GetInstance()->onCompleteTest = HandleWdmCompleteTest;
+ MockWdmSubscriptionResponder::GetInstance()->onError = HandleError;
+ if (gTestWdmNextOptions.mClearDataSinkState)
+ {
+ MockWdmSubscriptionResponder::GetInstance()->ClearDataSinkState();
+ }
+ break;
+ default:
+ err = WEAVE_ERROR_INVALID_ARGUMENT;
+ FAIL_ERROR(err, "WdmRoleInTest is invalid");
+ };
+
+ for (uint32_t iteration = 1; iteration <= gTestWdmNextOptions.mTestIterations; iteration++) {
+
+ switch (gMockWdmNodeOptions.mWdmRoleInTest) {
+ case 0:
+ break;
+ case kToolOpt_WdmInitMutualSubscription:
+ case kToolOpt_WdmSubscriptionClient:
+ if (gTestWdmNextOptions.mClearDataSinkState) {
+ MockWdmSubscriptionInitiator::GetInstance()->ClearDataSinkState();
+ }
+ err = MockWdmSubscriptionInitiator::GetInstance()->StartTesting(gMockWdmNodeOptions.mWdmPublisherNodeId,
+ gMockWdmNodeOptions.mWdmUseSubnetId);
+ if (err != WEAVE_NO_ERROR) {
+ printf("\nMockWdmSubscriptionInitiator.StartTesting failed: %s\n", ErrorStr(err));
+ Done = true;
+ }
+ //FAIL_ERROR(err, "MockWdmSubscriptionInitiator.StartTesting failed");
+ break;
+ default:
+ printf("TestWdmNext server is ready\n");
+ };
+
+ switch (gMockWdmNodeOptions.mEventGeneratorType) {
+ case MockWdmNodeOptions::kGenerator_None:
+ gEventGenerator = NULL;
+ break;
+ case MockWdmNodeOptions::kGenerator_TestDebug:
+ gEventGenerator = GetTestDebugGenerator();
+ break;
+ case MockWdmNodeOptions::kGenerator_TestLiveness:
+ gEventGenerator = GetTestLivenessGenerator();
+ break;
+ case MockWdmNodeOptions::kGenerator_TestSecurity:
+ gEventGenerator = GetTestSecurityGenerator();
+ break;
+ case MockWdmNodeOptions::kGenerator_TestTelemetry:
+ gEventGenerator = GetTestTelemetryGenerator();
+ break;
+ case MockWdmNodeOptions::kGenerator_TestTrait:
+ gEventGenerator = GetTestTraitGenerator();
+ break;
+ case MockWdmNodeOptions::kGenerator_NumItems:
+ default:
+ gEventGenerator = NULL;
+ break;
+ }
+
+ if (gEventGenerator != NULL) {
+ printf("Starting Event Generator\n");
+ MockEventGenerator::GetInstance()->Init(&ExchangeMgr, gEventGenerator,
+ gMockWdmNodeOptions.mTimeBetweenEvents, true);
+ }
+
+ }
while (!Done)
{
struct timeval sleepTime;
@@ -1069,3 +1175,8 @@
Done = true;
}
}
+
+static void HandleError()
+{
+ Done = true;
+}