Hi, everyone.

We propose to release new sensor framework for Tizen 3.0.
Current Sensor framework has some problems as Mr.Ramasamy mentioned last
year. He also described characteristic features of new sensor framework.
After then, there have been some features added. 

First, 5 packages are currently being consolidated into 2 new git packages.

Currently, Sensor framework has 5 packages.

- platform/core/api/sensor : core API of sensor framework
- platfrom/core/system/libsf-common : libraries used in the sensor framework
- platform/core/system/libslp-sensor : internal API for sensor framework
- platform/core/system/sensor-framework : sensor server(daemon)
- sensor-plugins : sensor plugins for sensor hardware

we are integrating them as follows :

- platform/core/api/sensor : not changed.
- platform/core/system/sensord : merging libsf-common / libslp-sensor /
sensor-framework / plugins(common)

  - we will make branch, "obsolete", which keeps the history of sensor
framework.
  - old packages will be obsoleted.
  - accelerometer/gyroscope/geomagnetic/proximity/light plugin code will be
released. It is not affected by specific vendors. After a review, some
sensors(ex. barometer) would be added.
  - virtual sensors(ex. gravity/linear accel/orientation) that have sensor
fusion integrated will be released.(schedule TBD)

In addition to the previous mail, the following changes will be made to the
sensor plugins. 

- common plugins for each sensor type.
- allow virtual(logical) sensors as well as physical.
- removal of the redundant layers.(datastream, filter plugin)
- removal of the redundant data stuctures.(linked list)
- managing sensor properties and plugins by xml.

Feedback or comments are welcome always. 
If you have any other suggestions, please feel free to tell me.

Regards, 
Kibak.

-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Ramasamy Kannan
Sent: Friday, November 22, 2013 3:41 PM
To: [email protected]
Subject: [Dev] Sensor Framework new architecture and features for 3.0
release

Dear Tizen Community Members,

Updates for the Tizen Sensor Framework 3.0 release:-
* The Sensor Framework API exposed on sensor.git repository will be the same
and the changes are only on the underlying architecture and code.
* New Event Driven Sensor Framework Architecture:

        + Problems observed on the old architecture:
                - Issues with event handling mechanism.
                        ~Loss of events (as high as 76% event drop when
event registered for interval of 1ms) and duplicated events.
                                 There is no information about clients and
their registered events in server.
                                 There is no mechanism for server to send
event to client when event has occurred.
                                 Clients send command to server (for
receiving events), based on their own interval tracking.
                                 Client assumes event received is correct
which may not be the case.
                        ~Use of VCONF for event handling IPC
                                 VCONF not intended for IPC.
                                 Very slow event handling mechanism.
                - Thread safety issue
                        ~ Global variables are used extensively in client
code.
                        ~ Difficult to reduce lock granularity in client
code. Big code locks with reduced granularity are used.
                - Poor exception handling - example when a client
application crashes/terminates abruptly. 
                - Lot of unused and redundant code - Refactoring and Code
cleanup.

        + New Event Driven Sensor Framework Architecture:
                - No loss of Events or duplicate events (verified that there
is no event drop when events are register for 1ms interval)
                        A separate event handling mechanism in both client
and server.
                        Events are available in plugin and delivered to
server based on the minimum interval across all clients.
                        The client Event Listener filters received events
based on registered event interval and triggers the event callback.
                - Server tracks the information of the clients.
                - Socket based IPC instead of VCONF for event handling ->
faster event handling.
                - Sensor Framework Client specific changes:
                        Separate event handling mechanism - Separate e-poll
based listener and Event handler to filter and process events specific to
each client. 
                        Client information are stored in a more structured
form - handles, sensors and registered events.
                        Thread safety Issue - Lock granularity can be
reduced  because client information stored in a more structured form.
                        Command sockets used per sensor instead of per
handle.
                        More commands added in the command channel to make
it more scalable architecture.
                - Sensor Framework Server specific changes:
                        Event handling has been separated from command
handling code.
                        Single Event queue for sensor plugins.
                        Storage of all information in a structured way -
about clients, sensors and sensor usage.
                        More safety mechanisms in case of exceptions.
                        More granular implementation of the command handler
resulting in scalable architecture.
                        Extensive cleanup/restructuring of the unused and
redundant code.
                - Plugin Layer:
                        Support for collecting events using event queue in
all plugins.
                        Separate client based sensor interval storage.
                        Removal of the redundant filter plugin layer.
      
* The performance of the current Sensor Fusion implementation does not meet
the standards available in competitor OS sensor framework. 
        + we are currently looking to improve the Sensor Fusion algorithm
(decision to add it for 3.0 release after testing the results of
implementation).

* We have identified more areas for improvement in Sensor Framework code for
updation after 3.0. We will keep the community updated on future
developments.

Feedback or comments are welcome. Please update your new requirements/
features for sensor framework on JIRA.              

Regards,
Ram
_______________________________________________
Dev mailing list
[email protected]
https://lists.tizen.org/listinfo/dev

_______________________________________________
Dev mailing list
[email protected]
https://lists.tizen.org/listinfo/dev

Reply via email to