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
