Giter VIP home page Giter VIP logo

openweave-nrf52840-lock-example's People

Contributors

bukepo avatar jenniexie avatar pierredelisle avatar robszewczyk avatar suryanshup avatar turon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openweave-nrf52840-lock-example's Issues

Next Steps?

Hello,
Are you able to point me to the next steps for provisioning a network with 3 of these devices?
Thank you!

Build error: 'OID' has not been declared

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.

Using USB CDC ACM for data logging with this example

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:

  1. Added the required usbd libraries to the Makefile
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 \
....
  1. Port over USB initialization code from nRF SDK's USB_CDC_ACM's example to 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

Thread configuration adjustments to increase reliability in less than ideal RF environments

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

update download links

Some of the links are 404.
Command Line Tools for Linux
GNU tool chain for Linux.
Havent checked Mac.

How to connect to the THREAD network provided by OTBR

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.
image

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!

Outbound service subscriptions not handled properly if more than one sink

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.