Giter VIP home page Giter VIP logo

dw1000-driver-1's Introduction

Basic overview

Hello and welcome! Now what is this?

This is the driver proper for the dw1000 ultra wideband tranceiver. It is designed to be portable. The main driver code found in dw1000-base.h makes only assumes that the hardware abstraction is set up properly. The low-level device specific communication is implemented in the dw1000-hal and dw1000-spi modules.

The driver should be initialised prior to the use of any other dw- function. This is done by calling

	dw_init();

which initialises all required driver components and configure the device to be ready for use, it does this by applying a default configuration. More detail about this can be found in the documentation of the dw_init function.

Once the driver has been initialised, communication can commence. A typical use case for receiving a message is as follows

	dw_rx_conf_t rx_conf;
	rx_conf.is_delayed = 0;
	rx_conf.timeout    = 30000; // Unit, approximate milliseconds
	dw_conf_rx( &rx_conf );
	dw_receive(DW_TRANCEIVE_ASYNC);

More information can be found in the documentation for the dw_conf_rx and dw_conf_tx functions.

Coding convention

The coding convention used through out the driver mimics the contiki style but there are a few additions. - From Hungarian notation is taken the notion to prefix all pointer variables with p_. This makes it easier to track when to use dereferencing and what not. - Length variables are suffixed with _len.

Combining the above rules gives the a common pattern, let's say we want to call an array data. A pointer to this array would be named p_data and the length of the array would be called data_len regardless of whether there exists an acutal variable named data.

Applications

The apps folder provides examples how to use the driver to build more complete applications. Build instructions can be found inside each application folder.

decawave-ranging

This is the full-fledged application that is capable of taking distance measurements.

decawave-demo

Introduction, how to use the Decawave-Driver in conjunction with the Contiki operating system.

TODO: describe Register address register length bitfields bitfiled_mask

TODO: organisation - HOST - DW1000 - interrupt generation

dw1000-driver-1's People

Contributors

ashlaban avatar ohoc avatar

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.