Funf Framework - HeinrichHartmann/MobileSensing GitHub Wiki

We want to use the MIT Funf Framework for our mobile app.

Features

  • Gather Rich Data from over 30 existing probes
  • Reliably Store
  • automatic server synchronization.
  • Automatically Upload
  • Build your own custom probes
  • Analyze
    Easily decrypt and merge many data files into one convenient database.

Question

Is the Funf framework suitable for our application?

Problems:

  • Version problems. Funf is build for SDK version 7 from April 2012. Building against newest version (17) gives error messages. In particular Funf is outdated and no longer maintained. Fixes:

    • use Jar file to include Funf in project
    • use SDK 7
    • user current SDK 17 and add unimplemented methods.
  • Missing Documentation.
    Appart from the configuration-json files there is no documentation for the internals of the funf framework. This is particularly bad since basic operations like:

    • starting probes
    • reading configurations are well hidden.
  • No online data viewing.
    Funf is not able to view the data that is currently recorded. Only a direct write to the db is possible. One of the crucial demands for our project is to set up context mining functionality ontop of the framework. This is presently not possible.

Funf Data Pipeline

  • raw data
  • of each Sensor
  • Strings, int, float, ...
  • raw data -> bundle
  • for each Sensor one bundle
  • via public void sendProbeData() [SensorProbe.java, Zeile 156-293]
  • _Bundle sensorBundle() = new Bundle(); _
  • sensorBundle.putString("NAME", sensor.getName());
  • dataRequests -> ArrayList< Bundle >
  • BundleSerializer
  • creates String version of a bundle
  • or JSon Object (i.e. Wifi Scanner)
  • Archive< T >
  • representation of an object
  • methods: add(), remove(), contains(), getAll()
  • filesToUpload = new CurrentLinkedQueue< ArchiveFile >();
  • ArchiveFile archiveFile = filesToUpload.poll();
  • HTTP Upload Service
⚠️ **GitHub.com Fallback** ⚠️