From 7975480b789c23507e7b699494e2344a5494afcf Mon Sep 17 00:00:00 2001 From: Sudarshan Prasad Date: Wed, 1 Oct 2014 01:26:37 -0700 Subject: [PATCH] Release notes for Sept 30, 2014 release. Patch 2: Review comments addressed Change-Id: Ifa00dee2d1e79d285a35fe750a92b9cba3ebe073 --- releaseNotes/Sept30th2014.txt | 162 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 releaseNotes/Sept30th2014.txt diff --git a/releaseNotes/Sept30th2014.txt b/releaseNotes/Sept30th2014.txt new file mode 100644 index 0000000..8d53151 --- /dev/null +++ b/releaseNotes/Sept30th2014.txt @@ -0,0 +1,162 @@ +Release notes +**************************************************************************** +Release date: Sept 30th, 2014. +OS: Ubuntu 12.0.4 and above +Requires boost version 1.55 to build. +Code buildable in gcc 4.6.3 and above. +NOTE: Boost is not distributed but should be installed in the Ubuntu machine. +***************************************************************************** + +What is new? + +-------------------------------------------- +Class OCPlatform (Header file: OCPlatform.h) +-------------------------------------------- + +***************** +setDefaultDeviceEntityHandler API +***************** + +This new API allows the server side app developer to provide a default device entity handler. +If server receives a request in which the resource URI does not match any of the existing +resource URIs, base will invoke this default entity handler. It is app developer's responsibility +to handle the implementation of default device entity handler accordingly. +If the default device entity handler is not configured and the URI in the request does not match +any of the existing resource URIs, server will return OC_STACK_NO_RESOURCE. + + +NOTE: This applies to server side functionality. + +-------------------------------------------- +Class OCResource (Header file: OCResource.h) +-------------------------------------------- + +***************** +post API +***************** + +This new API allows the client to perform POST operation on a resource. + +NOTE: This applies to client side functionality. + +-------------------------------------------- +Class OCRepresentation (Header file: OCApi.h) +-------------------------------------------- + +OCRepresentation has modifications which provides +- Ability to get/set OCRepresenation (JSON object) in the OCRepresentation. +- Ability to get/set vector of strings, booleans, double, integers, null. +- Has additional functions + +***************** +erase API +***************** +This removes an attribute from the representation + +***************** +setNULL API +***************** +This sets given attribute to null + +***************** +isNULL API +***************** +This returns true if the given attribute is null + +***************** +hasAttribute API +***************** +This returns true if the attribute exists in the representation + +***************** +numberOfAttributes API +***************** +This returns the number of attributes in the representation + +-------------------------------------------- + Header file: OCStack.h (in base) +-------------------------------------------- + +***************** +OCSetDefaultDeviceEntityHandler API +***************** + +This new API allows the server side app developer to provide a default device entity handler. +If server receives a request in which the resource URI does not match any of the existing +resource URIs, base will invoke this default entity handler. It is app developer's responsibility +to handle the implementation of default device entity handler accordingly. +If the default device entity handler is not configured and the URI in the request does not match +any of the existing resource URIs, server will return OC_STACK_NO_RESOURCE. + +NOTE: This applies to server side functionality only. + +------------ +Other Notes: +------------ + +Security model is still open. +APIs have OCStackResult as return type. This is will indicate success or failure for the API operation. + +Maximum length of URI supported is 64 bytes (sent from the client) +Maximum length of query supported is 64 bytes (sent from the client) +Maximum length of request and response from server for Ardunio is is 256 bytes +Maximum length of request and response from server for non-Ardunio is is 1024 bytes + +OIC base now supports Arduino WiFi shield. +This support has been tested with Arduino Mega 2560 and with Arduino 1.0.5 WiFi library. +Please refer to oic-resource/csdk/README file for building OIC base with WiFi support. + +Bug fixes: +IOT-36 +Minor bugs fixed + +Known issues: +1. POST operation does not create new resources +2. Header options from client to server and vice-versa is not available. +3. Setting CON/NON-CON option is possible only during initialization configuration. +------------- +How to build: +------------- + +REFER https://oic-review.01.org/gerrit for more details on getting oic-resource repo. +If the code is not cloned: +Clone the oic-resource repo using this command: git clone oic:oic-resource +Clone the oic-utilities repo using this command: git clone oic:oic-utilities + +NOTE: If the repo is already cloned, use 'git pull' inside oic-resource folder to get the latest code. + +In repo oic-core, root folder ccf-opensource consists of 'OIC' folder. Inside OIC folder there is a Makefile. + +Before building, make sure to have contents from oic-utilities repo at the folder level where oic-resource is. + +Inside oic-resource directory, use 'make'to build the entire OIC code. This would build the C++ SDK, core(i.e base) and samples. + +Use 'make BUILD=debug' to build the entire OIC code in debug mode. This would build the C++ SDK, core(i.e base) and samples. All the executables for debug build +are in 'oic-resource/debug'. + +-------- +Samples: +-------- + +New Samples added: +oic-resource/examples/garageclient.cpp +oic-resource/examples/garageserver.cpp + +Garage samples provide usage of OCRepresentation, get/set attribute values + +oic-resource/examples/fridgeclient.cpp +oic-resource/examples/fridgeserver.cpp + +Fridge samples provide usage of constructResourceObject API, std bind (for mapping request and responses) and default +device entity handler + +After building the code in oic-resource, executables for samples are in directory named 'oic-resource/samples/release'. +After building the code in oic-resource, executables are in directory named 'oic-resource/release'. +A sample for hosting a resource on a server and a sample for client for discovering resources are provided in the following paths: + +Server sample location: oic-resource/examples/simpleserver.cpp +Client sample location: oic-resource/examples/simpleclient.cpp +Server and client mode (mode type both) location: oic-resource/examples/simpleclientserver.cpp + +Sample with basic presence feature for server side: oic-resource/examples/presenceserver.cpp +Sample with basic presence feature for client side: oic-resource/examples/presenceclient.cpp -- 2.7.4