[Ndn-interest] NDN on Arduino proof-of-concept

Tai-Lin Chu tailinchu at gmail.com
Fri Apr 3 16:55:22 PDT 2015


awesome! I'd also like to see a review of all raspberry pi-like devices.

On Fri, Apr 3, 2015 at 4:30 PM, Burke, Jeff <jburke at remap.ucla.edu> wrote:
>
> Hi folks,
>
> Please see below for proof of concept code showing basic NDN communication
> on the Arduino! The example publishes an ADC reading with an HMAC in
> response to an interest with matching name.  This uses a new lightweight C++
> wrapper around the NDN-CPP C-language core.
>
> We would love to get other contributors involved in this effort and
> experimenting with the Arduino! There is library work still to be done – for
> example, this test uses a TCP stack on the Arduino YUN, but we'd like to try
> some approaches that don't rely on IP, among other things. (Next target is
> the RFduino and its BTLE support, hopefully.)
>
> Best,
> Jeff
>
> From: "Thompson, Jeff" <jefft0 at remap.ucla.edu>
> Date: Fri, 3 Apr 2015 22:59:02 +0000
> To: NDN Lib <ndn-lib at lists.cs.ucla.edu>
> Subject: [Ndn-lib] Introducing NDN-CPP Lite
>
> Hello all,
>
> New code has been added to NDN-CPP in GitHub for NDN-CPP Lite, a
> light-weight C++ layer over the C language core in NDN-CPP.
>
> The main C++ API for NDN-CPP uses the Standard Library classes like
> std::vector and shared_ptr to automatically manage memory in objects. For
> data packet encoding, decoding and network transport, the C++ API calls an
> inner core written in pure C which does not make any assumptions about
> memory management or support libraries.
>
> Some low-power platforms like an Arduino microcontroller don't support the
> C++ Standard Library or run-time info for exceptions. To support such
> platforms, the NDN-CPP Lite API was developed which, like the C core, does
> not make assumptions about memory management or support libraries. While
> functionally equivalent to the C core, the NDN-CPP Lite takes advantage of
> C++ syntax to simplify the API. For example, the following C code
> initializes a MetaInfo struct:
>
> struct ndn_MetaInfo metaInfo;
> ndn_MetaInfo_initialize(&metaInfo);
>
> The following equivalent NDN-CPP Lite code initializes a MetaInfoLite
> object:
>
> MetaInfoLite metaInfo;
>
> The MetaInfoLite constructor internally calls the same
> ndn_MetaInfo_initialize function, but C++ syntax, method overloading and
> namespace support makes the NDN-CPP Lite code cleaner and less error-prone.
>
> The file examples/arduino/analog-reading/analog-reading.ino uses NDN-CPP
> Lite for an Arduino application which registers a prefix, receives an
> interest over TCP and returns a signed (with HMAC) data packet holding a
> measurement value. The compiled application is about 28 kilobytes as
> required by the small microcontroller program space.
>
> For more explanation and sample code, see README-NDN-CPP-Lite.md. Currently,
> the NDN-CPP Lite documentation is in the class and method doc comments in
> include/ndn-cpp/lite.
>
> Thank you,
>
> - Jeff T
>
> _______________________________________________ Ndn-lib mailing list
> Ndn-lib at lists.cs.ucla.edu
> http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-lib
>
>
> _______________________________________________
> Ndn-interest mailing list
> Ndn-interest at lists.cs.ucla.edu
> http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest
>




More information about the Ndn-interest mailing list