Application:AccelService

From WebOS Internals
Jump to navigation Jump to search
« Go Back to the Utilities application list
[[Image:|x270px]]

AccelService - Version: Pre-Alpha 0.0.1
(5 Aug 2009) (first public release)

Summary

This service provides access to the accelerometer driver's poll_interval parameter. As of webOS 1.1.0, this interval is not accessible from application development and is set to 250ms. This makes most accelerometer driven applications choppy and slow. With this service, the poll_interval can be changed dynamically by the application.

The four methods exposed to the user are:

getPollFreq() - returns the frequency in HZ of the accelerometer events getPollPeriod() - returns the period in ms of the accelerometer events setPollFreq(freq) - sets the frequency in HZ of the accelerometer events setPollPeriod(period) - sets the period in ms of the accelerometer events

NOTE: This service does not modify the hardware, it simply increases the rate at which the driver sends accelerometer events to the application handlers listening for the 'acceleration' event.

Status

This is early-alpha software.

Repository

AccelService is housed in the Applications section of the Webos-internals repository at Gitorious. http://gitorious.org/webos-internals.

Source code for the example Mojo app can be browsed at http://gitorious.org/webos-internals/applications/trees/master/org.webosinternals.accelexample

Source code for the service can be browsed at http://gitorious.org/webos-internals/applications/trees/master/AccelerometerService

License

Please be aware that org.webosinternals.accelservice and org.webosinternals.accelexample are licensed under the GPLv2.

They cannot be used by a closed source application. If you want to use them in a non-GPLv2 but otherwise open source application, please contact the authors.

Operating notes

Recent enhancements

Known bugs

Installation

Do not stray from or vary these instructions. If you don't do it all, in precisely the right order, with zero mistakes, it's not going to work. Copy & Paste will be your friend.

You need to be logged in as root with a writeable filesystem. Instructions for both those things can be found elsewhere on this wiki.

The first time you install accelservice you must do all these steps:

<source lang="text"> mkdir -p /var/etc/ipkg/ ln -s /etc/ipkg/arch.conf /var/etc/ipkg/ echo "src/gz all http://ipkg.preware.org/feeds/preware/all" > /var/etc/ipkg/preware.conf </source>

  • If you are on the Pre, type:

<source lang="text"> echo "src/gz armv7 http://ipkg.preware.org/feeds/preware/armv7" >> /var/etc/ipkg/preware.conf </source>

  • If you are on the Emulator, type:

<source lang="text"> echo "src/gz i686 http://ipkg.preware.org/feeds/preware/i686" >> /var/etc/ipkg/preware.conf </source>

Then type:

<source lang="text"> /usr/bin/ipkg -o /var update /usr/bin/ipkg -o /var install org.webosinternals.accelservice /bin/sh /var/usr/lib/ipkg/info/org.webosinternals.accelservice.postinst /usr/bin/ipkg -o /var install org.webosinternals.accelexample </source>

Then restart the GUI service to pick up the new service:

<source lang="text"> initctl stop LunaSysMgr && initctl start LunaSysMgr </source>

If the above fails to show the results you're expecting, reboot the device.

Updating

After your first install, only the following is required to upgrade to a new version.

You need to be logged in as root with a writeable filesystem. Instructions for both those things can be found elsewhere on this wiki.

From a shell:

<source lang="text"> /usr/bin/ipkg -o /var update /usr/bin/ipkg -o /var upgrade reboot </source>

Other PreWare Applications

You need to be logged in as root with a writeable filesystem. Instructions for both those things can be found elsewhere on this wiki.

Note that you can use the same commands to install other applications from PreWare:

<source lang="text"> /usr/bin/ipkg -o /var update /usr/bin/ipkg -o /var list /usr/bin/ipkg -o /var install <package> # choose a package from the list /usr/bin/ipkg -o /var remove <package> </source>

Removal

You need to be logged in as root with a writeable filesystem. Instructions for both those things can be found elsewhere on this wiki.

<source lang="text"> /usr/bin/ipkg -o /var remove org.webosinternals.accelexample /usr/bin/ipkg -o /var remove org.webosinternals.accelservice </source>

Then restart the GUI service:

<source lang="text"> initctl stop LunaSysMgr && initctl start LunaSysMgr </source>

If the above fails to show the results you're expecting, reboot the device.