openweave / openweave-nrf52840-lock-example Goto Github PK
View Code? Open in Web Editor NEWExample application showing use of OpenWeave on the Nordic nRF52840
License: Apache License 2.0
Example application showing use of OpenWeave on the Nordic nRF52840
License: Apache License 2.0
Hello,
Are you able to point me to the next steps for provisioning a network with 3 of these devices?
Thank you!
Some of the links are 404.
Command Line Tools for Linux
GNU tool chain for Linux.
Havent checked Mac.
When operating in a less than ideal RF environment, having a more forgiving configuration makes thread a great deal more reliable.
We'd like to suggest small alterations to the OpenThread configurations:
In main/include/OpenThreadConfig.h:
#define OPENTHREAD_CONFIG_MAC_MAX_FRAME_RETRIES_DIRECT 15
#define OPENTHREAD_CONFIG_MAC_MAX_FRAME_RETRIES_INDIRECT 1
#define OPENTHREAD_CONFIG_MAC_MAX_TX_ATTEMPTS_INDIRECT_POLLS 16
Also, it would be good to add the following to make it obvious for developers how to increase the verbosity level of Thread whenever necessary:
// Uncomment the statement below to get more verbose output from Thread. Useful if experiencing
// issues with Thread.
// #define OPENTHREAD_CONFIG_LOG_LEVEL OT_LOG_LEVEL_INFO
In WDMFeature.cpp, set outParam.mSubscribeRequestPrepareNeeded.mPathListSize to kSinkHandle_Max as shown below.
Otherwise, only the first subscription is registered.
Note that this is not an issue with the sample app currently because it only has one sink, but is an issue when additional sinks are added in applications that are cloned from this sample app.
void WDMFeature::HandleOutboundServiceSubscriptionEvent(
void * appState,
SubscriptionClient::EventID eventType,
const SubscriptionClient::InEventParam & inParam,
SubscriptionClient::OutEventParam & outParam)
{
switch (eventType)
{
case SubscriptionClient::kEvent_OnSubscribeRequestPrepareNeeded:
{
outParam.mSubscribeRequestPrepareNeeded.mPathList = &(sWDMfeature.mServiceSinkTraitPaths[0]);
--> outParam.mSubscribeRequestPrepareNeeded.mPathListSize = 1; // change this to kSinkHandle_Max
outParam.mSubscribeRequestPrepareNeeded.mVersionedPathList = NULL;
outParam.mSubscribeRequestPrepareNeeded.mNeedAllEvents = false;
I'll send a PR shortly.
Trying build this example to get some insight on openweave but I get the following error:
../../src/include/Weave/Support/ASN1.h:123:28: error: 'OID' has not been declared
ASN1_ERROR GetObjectId(OID& oid);
This is a virgin Ubuntu setup following the instructions of setup and build from this example. Any help would be appreciated.
As part of fixing openweave-core Issue#245, the SoC and board-specific defines for the example app should be declared in the project Makefile. E.g.:
DEFINES = \
NRF52840_XXAA \
BOARD_PCA10056 \
Hello OpenWeave team,
This is not an issue but rather a request for help and addition information.
I want to implement the USB CDC ACM class from nRF SDK to this example and use it for data logging/exchange purposes. What I've done so far was:
SRCS = \
....
$(NRF5_SDK_ROOT)/components/libraries/usbd/app_usbd.c \
$(NRF5_SDK_ROOT)/components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.c \
$(NRF5_SDK_ROOT)/components/libraries/usbd/app_usbd_core.c \
$(NRF5_SDK_ROOT)/components/libraries/usbd/app_usbd_serial_num.c \
$(NRF5_SDK_ROOT)/components/libraries/usbd/app_usbd_string_desc.c \
....
INC_DIRS = \
....
$(NRF5_SDK_ROOT)/components/libraries/usbd/class/cdc \
$(NRF5_SDK_ROOT)/components/libraries/usbd \
$(NRF5_SDK_ROOT)/components/libraries/usbd/class/cdc/acm \
....
main.cpp
....
APP_USBD_CDC_ACM_GLOBAL_DEF(m_app_cdc_acm,
cdc_acm_user_ev_handler,
CDC_ACM_COMM_INTERFACE,
CDC_ACM_DATA_INTERFACE,
CDC_ACM_COMM_EPIN,
CDC_ACM_DATA_EPIN,
CDC_ACM_DATA_EPOUT,
APP_USBD_CDC_COMM_PROTOCOL_AT_V250
);
....
Compiling this will give many errors as the usbd library uses a lot of designated initializers, which are not supported in C++.
Before I get further down the rabbit's hole trying to go around this issue, I was wondering if this is the correct approach to implementing USB CDC ACM to this example? Or is there exist an easier way to do so?
Thanks,
Jonathan
Hi!
I ran the openweave-nrf52840-lock-example on the nordic board nrf52840dk_nrf52840,and set the RaspberryPi 3b+ as a OpenThread Border Router.The images of the OTBR is provided by nordic.
I build the example follow the building section of the Readme file,there is no error or warning,and I can get the log-output.But I don't know how to set the dataset or change the settings to let the example connect to the Thread network provided by my OTBR. When I reset the board and the logging output shows some information about the Thread dataset which is showing by the picture.
Should I get the another application to set the settings of the example or just chage the setting file?
Thank you in advance for any replies!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.