[tuxdroid-svn] r5451 - in software_suite_v3/software/plugin/plugin-charger/trunk: executables reso
Status: Beta
Brought to you by:
ks156
|
From: Gwadavel <c2m...@c2...> - 2009-09-20 23:07:59
|
Author: Gwadavel
Date: 2009-09-21 01:07:36 +0200 (Mon, 21 Sep 2009)
New Revision: 5451
Modified:
software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py
software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.po
software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.wiki
software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.po
software_suite_v3/software/plugin/plugin-charger/trunk/resources/help.wiki
software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.pot
software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.xml
Log:
Rewrite plugin - add run daemon, Tux alerts you when charger state had changed
Modified: software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py
===================================================================
--- software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py 2009-09-19 23:49:27 UTC (rev 5450)
+++ software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py 2009-09-20 23:07:36 UTC (rev 5451)
@@ -28,9 +28,9 @@
"""
import os
+import time
import sys
-import locale
-import gettext
+import threading
from tuxisalive.api import *
@@ -38,110 +38,148 @@
from util.SimplePlugin.SimplePluginConfiguration import SimplePluginConfiguration
from util.SimplePlugin.SimplePlugin import SimplePlugin
+
-class Charger(object):
+
+
+
+class ChargerPlugin(SimplePlugin):
+ """This class override the SimplePlugin class to make easy
+ the plugin coding.
"""
- Manage the battery.
- """
-
- def __init__(self, plug):
- '''
- '''
- self.tgp_language = "en"
- self.tgp_ip = "127.0.0.1"
- self.tgp_port = 270
+ def __init__(self):
+ """Initialization of the class.
+ """
+ # Call the super class
+ SimplePlugin.__init__(self)
- self.plugin = plug
+ self.__tgp_ip = "127.0.0.1"
+ self.__tgp_port = 270
+ self.__daemonRun = False
+ self.__daemonRunMutex = threading.Lock()
- # Test language, ip, port
- if "tgp_language" in os.environ:
- self.tgp_language = os.environ["tgp_language"]
-
+ # Test ip, port
if "tgp_ip" in os.environ:
- self.tgp_ip = os.environ["tgp_ip"]
+ self.__tgp_ip = os.environ["tgp_ip"]
if "tgp_port" in os.environ:
- self.tgp_port = int(os.environ["tgp_port"])
+ self.__tgp_port = int(os.environ["tgp_port"])
- self.tux = TuxAPI(self.tgp_ip, self.tgp_port)
- if self.tux.server.connect(CLIENT_LEVEL_RESTRICTED, 'chargerstate', 'plugin-charger'):
- self.tux.server.disconnect()
+ self.__tux = TuxAPI(self.__tgp_ip, self.__tgp_port)
+ if self.__tux.server.connect(CLIENT_LEVEL_RESTRICTED, 'chargerstate', 'plugin-charger'):
+ self.__tux.server.disconnect()
else:
- self.tgp_port = 54321
- self.tux = TuxAPI(self.tgp_ip, self.tgp_port)
-
+ self.__tgp_port = 54321
+ self.__tux = TuxAPI(self.__tgp_ip, self.__tgp_port)
+
- def tuxConnect(self):
+ def start(self):
+ """Plugin entry point.
+ This method should be used to dispatch commands.
+ """
+ if self.getCommand() == "run":
+ self.run()
+ elif self.getCommand() == "run_daemon":
+ self.run_daemon()
+ else:
+ self.run()
+
+
+ def run(self):
+ """Plugin entry point for the "run" command.
+ """
+ self.__start()
+
+ def run_daemon(self):
+ """Plugin entry point for the "run_daemon" command.
+ """
+ if self.__tuxConnect():
+ if not self.__tux.radio.getConnected():
+ self.throwTrace("I can't find my fish. Please, make sure I'm connected.")
+ else:
+ self.__setDaemonRun(True)
+ self.__register()
+ self.__loop()
+
+ def onPluginStop(self):
+ """Callback on plugin stop.
+ """
+ self.__setDaemonRun(False)
+ self.__stop()
+
+ def onPluginEvent(self, eventName, eventValues):
+ """Callback on plugin event.
+ @param eventName: Event name.
+ @param eventValues: Event values.
+ """
+ pass
+
+ def __tuxConnect(self):
'''
Wait connected
'''
- self.tux.server.autoConnect(CLIENT_LEVEL_RESTRICTED, 'chargerstate', 'plugin-charger')
- self.tux.server.waitConnected(5.0)
- self.tux.dongle.waitConnected(5.0)
- self.tux.radio.waitConnected(5.0)
- return self.tux.access.waitAcquire(5.0, ACCESS_PRIORITY_NORMAL)
+ self.__tux.server.autoConnect(CLIENT_LEVEL_RESTRICTED, 'chargerstate', 'plugin-charger')
+ self.__tux.server.waitConnected(5.0)
+ self.__tux.dongle.waitConnected(5.0)
+ self.__tux.radio.waitConnected(5.0)
+ return self.__tux.access.waitAcquire(5.0, ACCESS_PRIORITY_NORMAL)
-
- def getState(self):
+ def __getState(self):
"""
Return Charger State
"""
- return self.tux.charger.getState()
+ return self.__tux.charger.getState()
-
- def start(self):
+ def __start(self):
"""
"""
- if self.tuxConnect():
+ if self.__tuxConnect():
- if not self.tux.radio.getConnected():
- plugin.throwTrace("I can't find my fish. Please, make sure I'm connected.")
+ if not self.__tux.radio.getConnected():
+ self.throwTrace("I can't find my fish. Please, make sure I'm connected.")
else:
- plugin.throwMessage("The charger state is {0}", self.getState())
+ self.throwMessage("charger state is {0}", self.__getState())
-
- def stop(self):
+ def __stop(self):
"""
"""
- self.tux.access.release()
- self.tux.server.disconnect()
- self.tux.destroy()
-
+ self.__tux.access.release()
+ self.__tux.server.disconnect()
+ self.__tux.destroy()
-class ChargerPlugin(SimplePlugin):
- """This class override the SimplePlugin class to make easy
- the plugin coding.
- """
- def __init__(self):
- """Initialization of the class.
+ def __register(self):
+ """Register event
"""
- # Call the super class
- SimplePlugin.__init__(self)
- self.scharger = Charger(self)
-
+ self.__tux.charger.registerEventOnStateChange(self.__change)
- def start(self):
- """Plugin entry point.
- This method should be used to dispatch commands.
+ def __change(self, *args, **kwargs):
+ """Said charger state when state change
"""
- self.run()
+ self.throwNotification("start")
+ self.throwMessage("charger state has changed")
+ self.throwMessage("the new state is {0}", self.__getState())
+ self.throwNotification("stop")
- def run(self):
- """Plugin entry point for the "run" command.
+ def __getDaemonRun(self):
"""
- self.scharger.start()
+ """
+ self.__daemonRunMutex.acquire()
+ result = self.__daemonRun
+ self.__daemonRunMutex.release()
+ return result
- def onPluginStop(self):
- """Callback on plugin stop.
+ def __setDaemonRun(self, daemonRun):
"""
- self.scharger.stop()
+ """
+ self.__daemonRunMutex.acquire()
+ self.__daemonRun = daemonRun
+ self.__daemonRunMutex.release()
- def onPluginEvent(self, eventName, eventValues):
- """Callback on plugin event.
- @param eventName: Event name.
- @param eventValues: Event values.
+ def __loop(self):
"""
- pass
+ """
+ while self.__getDaemonRun():
+ time.sleep(0.25)
if __name__ == "__main__":
plugin = ChargerPlugin()
Modified: software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.po
===================================================================
--- software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.po 2009-09-19 23:49:27 UTC (rev 5450)
+++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.po 2009-09-20 23:07:36 UTC (rev 5451)
@@ -1,10 +1,10 @@
msgid "Charger State"
msgstr "Charger State"
-msgid "Says charger state"
-msgstr "Says charger state"
+msgid "Said charger state"
+msgstr "Said charger state"
-msgid "The charger state is {0}"
+msgid "charger state is {0}"
msgstr "The charger state is {0}"
msgid "CHARGING"
@@ -21,3 +21,18 @@
msgid "UNPLUGGED"
msgstr "UNPLUGGED"
+
+msgid "Said when charger state change"
+msgstr "Said when charger state change"
+
+msgid "Activate the charger notifier"
+msgstr "Activate the charger notifier"
+
+msgid "Activation"
+msgstr "Activation"
+
+msgid "charger state has changed"
+msgstr "charger state has changed"
+
+msgid "the new state is {0}"
+msgstr "the new state is {0}"
Modified: software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.wiki
===================================================================
--- software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.wiki 2009-09-19 23:49:27 UTC (rev 5450)
+++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.wiki 2009-09-20 23:07:36 UTC (rev 5451)
@@ -1,2 +1,2 @@
== Synopsis ==
-Tux Droid says the charger state
+Tux Droid said the charger state
Modified: software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.po
===================================================================
--- software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.po 2009-09-19 23:49:27 UTC (rev 5450)
+++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.po 2009-09-20 23:07:36 UTC (rev 5451)
@@ -1,10 +1,10 @@
msgid "Charger State"
msgstr "état du chargeur"
-msgid "Says charger state"
+msgid "Said charger state"
msgstr "dit l'état du chargeur"
-msgid "The charger state is {0}"
+msgid "charger state is {0}"
msgstr "l'état du chargeur est {0}"
msgid "CHARGING"
@@ -21,3 +21,18 @@
msgid "UNPLUGGED"
msgstr "débranché"
+
+msgid "Said when charger state change"
+msgstr "Dit quand l'état du chargeur a changé"
+
+msgid "Activate the charger notifier"
+msgstr "Active le suivi d'état du chargeur"
+
+msgid "Activation"
+msgstr "Activation"
+
+msgid "charger state has changed"
+msgstr "l'état du chargeur a changé"
+
+msgid "the new state is {0}"
+msgstr "le nouvel état est {0}"
Modified: software_suite_v3/software/plugin/plugin-charger/trunk/resources/help.wiki
===================================================================
--- software_suite_v3/software/plugin/plugin-charger/trunk/resources/help.wiki 2009-09-19 23:49:27 UTC (rev 5450)
+++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/help.wiki 2009-09-20 23:07:36 UTC (rev 5451)
@@ -1,2 +1,2 @@
== Synopsis ==
-Tux Droid says the charger state.
+Tux Droid said the charger state.
Modified: software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.pot
===================================================================
--- software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.pot 2009-09-19 23:49:27 UTC (rev 5450)
+++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.pot 2009-09-20 23:07:36 UTC (rev 5451)
@@ -1,10 +1,10 @@
msgid "Charger State"
msgstr ""
-msgid "Says charger state"
+msgid "Said charger state"
msgstr ""
-msgid "The charger state is {0}"
+msgid "charger state is {0}"
msgstr ""
msgid "CHARGING"
@@ -21,3 +21,18 @@
msgid "UNPLUGGED"
msgstr ""
+
+msgid "Said when charger state change"
+msgstr ""
+
+msgid "Activate the charger notifier"
+msgstr ""
+
+msgid "Activation"
+msgstr ""
+
+msgid "charger state has changed"
+msgstr ""
+
+msgid "the new state is {0}"
+msgstr ""
Modified: software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.xml
===================================================================
--- software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.xml 2009-09-19 23:49:27 UTC (rev 5450)
+++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.xml 2009-09-20 23:07:36 UTC (rev 5451)
@@ -6,7 +6,7 @@
<description>
<name>Charger State</name>
<ttsName>Charger State</ttsName>
- <description>Says charger state</description>
+ <description>Said charger state</description>
<author>Gwadavel</author>
<version>0.0.1</version>
<iconFile>resources/plugin.png</iconFile>
@@ -17,9 +17,24 @@
<commands>
<command
name="run"
- description="Says charger state"
+ description="Said charger state"
daemon="false" />
+ <command
+ name="run_daemon"
+ description="Said when charger state change"
+ daemon="true"
+ notifier="true"
+ expiration="1"/>
</commands>
- <tasks>
+ <tasks>
+ <task
+ name="Activation"
+ description="Activate the charger notifier"
+ command="run_daemon"
+ type="once delayed"
+ activated="false"
+ delay="00:00:05"
+ delayMask="false,false,false"
+ delayVisible="false"/>
</tasks>
</plugin>
|