Ompower

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(How does it work?)
m
Line 2: Line 2:
  
 
== How does it work? ==
 
== How does it work? ==
=== Avoid suspension ==
+
=== Avoid suspension ===
 
If an application wants to tell the phone that it should not suspend, it should send a dbus message. This message could be send by dbus API. In case of a shell script, sending dbus messages could be achieved by the command ''dbus-send'':
 
If an application wants to tell the phone that it should not suspend, it should send a dbus message. This message could be send by dbus API. In case of a shell script, sending dbus messages could be achieved by the command ''dbus-send'':
 
  dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RequestResourceState? \
 
  dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RequestResourceState? \
Line 15: Line 15:
 
''ompower'' will not trigger suspend (via calling ''apm -s'') until all requests for resources are removed.
 
''ompower'' will not trigger suspend (via calling ''apm -s'') until all requests for resources are removed.
  
=== Requesting suspension ==
+
=== Requesting suspension ===
 
The daemon is also able to request a suspend by explicitely requesting a "power off":
 
The daemon is also able to request a suspend by explicitely requesting a "power off":
 
  dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RequestResourceState? \
 
  dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RequestResourceState? \

Revision as of 09:15, 18 September 2008

ompower is a suspend handling daemon talking dbus installed by default since Om 2008.8. It is responsible for triggering or aborting suspension of your phone. Applications send dbus messages which are evaluated by ompower. This may be used, for example, to abort suspending the phone while doing GPS tracking.

Contents

How does it work?

Avoid suspension

If an application wants to tell the phone that it should not suspend, it should send a dbus message. This message could be send by dbus API. In case of a shell script, sending dbus messages could be achieved by the command dbus-send:

dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RequestResourceState? \
string:cpu string:my-system-name string:on

If the application then is in a state it could be suspendet, it should send:

dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RemoveRequestedResourceState? \
string:cpu string:my-system-name 

"my-system-name" is an identifier telling dbus the requesting source. In case of tangogps, this could be "application-tangogps".

ompower will not trigger suspend (via calling apm -s) until all requests for resources are removed.

Requesting suspension

The daemon is also able to request a suspend by explicitely requesting a "power off":

dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RequestResourceState? \
string:cpu string:my-system-name string:off

Once all Requests for avoiding suspension are removed, the phone would immediately go to suspend, because a request for power off is still active. If no request is active (ie. all requests are removed) ompower will do nothing. It is the job of a different applications to handle timeouts (illume does that, for example. It detects "ooh system idle. lets wait 1 second then ask ompower for a suspend".

Ticket

For further reading see Ticket #2008 (Do not suspend when certain apps are running). That ticket was the reason for writing this article.


Source

You can fetch the source here: http://svn.openmoko.org/developers/raster/ompower/

Personal tools

ompower is a suspend handling daemon talking dbus installed by default since Om 2008.8. It is responsible for triggering or aborting suspension of your phone. Applications send dbus messages which are evaluated by ompower. This may be used, for example, to abort suspending the phone while doing GPS tracking.

How does it work?

= Avoid suspension

If an application wants to tell the phone that it should not suspend, it should send a dbus message. This message could be send by dbus API. In case of a shell script, sending dbus messages could be achieved by the command dbus-send:

dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RequestResourceState? \
string:cpu string:my-system-name string:on

If the application then is in a state it could be suspendet, it should send:

dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RemoveRequestedResourceState? \
string:cpu string:my-system-name 

"my-system-name" is an identifier telling dbus the requesting source. In case of tangogps, this could be "application-tangogps".

ompower will not trigger suspend (via calling apm -s) until all requests for resources are removed.

= Requesting suspension

The daemon is also able to request a suspend by explicitely requesting a "power off":

dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RequestResourceState? \
string:cpu string:my-system-name string:off

Once all Requests for avoiding suspension are removed, the phone would immediately go to suspend, because a request for power off is still active. If no request is active (ie. all requests are removed) ompower will do nothing. It is the job of a different applications to handle timeouts (illume does that, for example. It detects "ooh system idle. lets wait 1 second then ask ompower for a suspend".

Ticket

For further reading see Ticket #2008 (Do not suspend when certain apps are running). That ticket was the reason for writing this article.


Source

You can fetch the source here: http://svn.openmoko.org/developers/raster/ompower/