Today we’re releasing Environs version 0.9.9.3 with some bug fixes.

  • Updated: Debug exception handling
  • Added: Limit Mediator max sendqueue items to 6000
  • Updated: Disposal of DeviceBase.UdpListener
  • Fixed: Crash in native layer due to (race condition in) device management list item access through DeviceBase
  • Added: string class to Tracer for debugging

Have a look at the CHANGELOG.md for an exhaustive list of changes.

With the release of version 0.9.0, Environs underwent major changes which provide:

  • Change static API to object API which allows multiple instances of Environs objects to manage multiple application areas as the same time
  • CPP API which provides an object oriented interface for pure c++ projects (requires c++11)
  • Provide support and solutions for Visual Studio 2015
  • There are much more features and changes under the hood. However, as long as you made use of the Object API, there’s no need to update the code further.
  • With release 0.9.0, the RAW API of Environs got a new parameter to indicate a particular instance. The implementation of the Object API shows how to obtain and maintain instance handles.

The CPP API provides interface objects and enables the use of different c-runtimes at client code and framework code. This feature makes use of c++11 smart pointers to maintain memory allocation and disposal “at the right runtime side”.

We provide two simple examples (WindowsWin32, ChatApp.CPP) for the Windows platform which show how to use Environs from pure c++ client code. You may statically link against the framework library or use the object loader provided in Environs.Loader.cpp. The latter dynamically loads the framework library at runtime, creates an Environs object, and returns a smart pointer to the object interface. Client code therefore does not need to care about releasing memory or resources allocated for the object. Both features also provide the benefit that client code may use an arbitrary c-runtime (CRT) without having to care about the c-runtime of the framework library.

For iOS and OSX platforms, you may choose between the Objective-C or the CPP API. In order to show this, we provided CPP API examples in addition to the Objective-C examples in the iOSX folder.

The Objective-C API is actually a thin wrapper around the CPP API and connects the ARC (Automatic Reference Counting) of iOS/OSX projects with the object lifecycle management of the CPP API.

The tutorials and documentation will be updated soon to reflect the API changes.

Up to now, Environs has been made public (hcm-lab.de/environs) and open source (hcm-lab.de/git/environs/environs) and the most important concepts as well as design rationales have been published in the proceedings of the EICS conference in 2014.

Potential usage examples have been presented and discussed, e.g. in the domain of Internet of Things (ITS 2014, Dresden) or collaborative visualization of energy consumptions (INTERACT 2015, Bamberg).

In order to further promote Environs and discuss the applicability of the concepts behind, the Environs framework has been submitted and (fortunately) accepted for discussion in workshops at the Interactive Tabletops and Surfaces conference in Madeira, Portugal, 14.th – 18.th November 2015.

–> Interact 2015 conference
–> Cross-Surface: Workshop on Interacting with Multi-Device Ecologies in the Wild
—-> A Framework Towards Challenges and Issues of Multi-Surface Environments
–> Shared Infrastructures for Tangible Tabletops & Interactive Surfaces

Environs enables real-time streaming of sensor data from mobile (or desktop) devices to other connected devices employing the low latency infrastructure of Environs. In order to show how to do this, we have added the project SensorData to the examples applications.
As of release 0.8.7, the examples demonstrate how to enable the different kind of supported sensor data (accelerometer, magnetic field, gyroscope, and calculated orientation) and also how to get notified through an observer as well as visualizing the data similar to an oscilloscope.
Currently, there are examples for the Android and OSX platform as shown in the images below. Implementation of the examples for iOS and Windows will follow soon.

OSX SensorData

SensorData.OSX

Android SensorData

SensorData.Android

Environs has been accepted for a workshop at the Interact 2015 conference in Bamberg for publication, 15.th September 2015.
–> Interact 2015 conference
–> Workshop on Fostering Smart Energy Applications

Dang, Chi-Tai, Masoodian, M., and André, E., 
Private Focus Portals to Shared Energy Visualizations. 
Adjunct Conference Proceedings of INTERACT 2015, 
INTERACT Workshop on Fostering Smart Energy Applications, 
FSEA 2015 (Bamberg, Germany, 15 September),
University of Bamberg Press, To appear.