Author: remi
Date: 2009-03-30 21:53:51 +0200 (Mon, 30 Mar 2009)
New Revision: 4267
Modified:
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/01_robot_system/resourceGadgetFramework.py
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceTestGadgetMessage.py
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/Gadget.py
Log:
* updated gadget starting and stopped with instance command and a flag which
indicates is the instance command type is "daemon" or normal.
* for commands type "daemon", the gadget interpreter stop is the true gadget
stop. (with normal commands, the TTS EOStack is the true gadget stop ...)
Modified:
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/01_robot_system/resourceGadgetFramework.py
===================================================================
---
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/01_robot_system/resourceGadgetFramework.py
2009-03-30 18:15:50 UTC (rev 4266)
+++
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/01_robot_system/resourceGadgetFramework.py
2009-03-30 19:53:51 UTC (rev 4267)
@@ -204,15 +204,21 @@
self.__publishEvents(False, ST_NAME_FW_GADGET_TRACE, [
gadget.getDescription().getUuid(), "0", messageStr])
- def __onGadgetStarting(self, gadget, instanceParameters):
+ def __onGadgetStarting(self, gadget, instanceParameters, instanceCommand,
+ instanceIsDaemon):
uuid = gadget.getDescription().getUuid()
self.logger.logInfo("Gadget starting [%s] (%s)" % (
gadget.getDescription().getName(), str(instanceParameters)))
self.__publishEvents(True, ST_NAME_FW_GADGET_STARTING, [uuid, "FW"])
- def __onGadgetStopped(self, gadget, instanceParameters):
+ def __onGadgetStopped(self, gadget, instanceParameters, instanceCommand,
+ instanceIsDaemon):
uuid = gadget.getDescription().getUuid()
- self.__publishEvents(True, ST_NAME_FW_GADGET_STOPPED, [uuid, "FW"])
+ if instanceIsDaemon:
+ self.__publishEvents(True, ST_NAME_FW_GADGET_STOPPED, [uuid, "FW"])
+ self.__publishEvents(True, ST_NAME_FW_GADGET_STOPPED, [uuid,
"TTS"])
+ else:
+ self.__publishEvents(True, ST_NAME_FW_GADGET_STOPPED, [uuid, "FW"])
#
--------------------------------------------------------------------------
# Private methods
Modified:
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceTestGadgetMessage.py
===================================================================
---
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceTestGadgetMessage.py
2009-03-30 18:15:50 UTC (rev 4266)
+++
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceTestGadgetMessage.py
2009-03-30 19:53:51 UTC (rev 4267)
@@ -47,13 +47,16 @@
def __onGadgetStarting(self, *args):
spl = args[0].split(":")
gadgetUuid = spl[0]
+ container = resourceGadgetFramework.getGadgetsContainer()
+ gadget = container.getGadgetByUuid(gadgetUuid)
+ if gadget == None:
+ return
+ if gadget.instanceIsDaemon():
+ return
def async():
def logThis():
- container = resourceGadgetFramework.getGadgetsContainer()
- gadget = container.getGadgetByUuid(gadgetUuid)
- if gadget != None:
- resourceGadgetFramework.logger.logInfo(
- "Gadget stopped [%s]" %
gadget.getDescription().getName())
+ resourceGadgetFramework.logger.logInfo(
+ "Gadget stopped [%s]" % gadget.getDescription().getName())
if not resourceTTS.stackIsFilled(gadgetUuid):
time.sleep(0.5)
if not resourceTTS.stackIsFilled(gadgetUuid):
Modified:
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/Gadget.py
===================================================================
---
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/Gadget.py
2009-03-30 18:15:50 UTC (rev 4266)
+++
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/Gadget.py
2009-03-30 19:53:51 UTC (rev 4267)
@@ -127,6 +127,8 @@
self.__interpreterMutex = threading.Lock()
# Define Gadget Instance Parameters
self.__gadgetInstanceParameters = {}
+ self.__gadgetInstanceCommand = ""
+ self.__gadgetInstanceIsDaemon = False
# Callbacks
self.__onGadgetNotificationCallback = None
self.__onGadgetMessageCallback = None
@@ -248,6 +250,18 @@
result.append(parameter.getName())
return result
+ #
--------------------------------------------------------------------------
+ # Get if the current running instance is in daemon mode or not.
+ #
--------------------------------------------------------------------------
+ def instanceIsDaemon(self):
+ """Get if the current running instance is in daemon mode or not.
+ @return: True or False.
+ """
+ self.__interpreterMutex.acquire()
+ isDaemon = self.__gadgetInstanceIsDaemon
+ self.__interpreterMutex.release()
+ return isDaemon
+
#
==========================================================================
# I18N
#
==========================================================================
@@ -389,7 +403,8 @@
"""Event on gadget interpreter started.
"""
if self.__onGadgetStartingCallback != None:
- self.__onGadgetStartingCallback(self,
self.__gadgetInstanceParameters)
+ self.__onGadgetStartingCallback(self,
self.__gadgetInstanceParameters,
+ self.__gadgetInstanceCommand, self.__gadgetInstanceIsDaemon)
#
--------------------------------------------------------------------------
# Event on gadget interpreter stopped.
@@ -398,7 +413,8 @@
"""Event on gadget interpreter stopped.
"""
if self.__onGadgetStoppedCallback != None:
- self.__onGadgetStoppedCallback(self,
self.__gadgetInstanceParameters)
+ self.__onGadgetStoppedCallback(self,
self.__gadgetInstanceParameters,
+ self.__gadgetInstanceCommand, self.__gadgetInstanceIsDaemon)
#
--------------------------------------------------------------------------
# Event on gadget interpreter notification.
@@ -468,6 +484,8 @@
gadgetCommand = self.getCommand(command)
if gadgetCommand == None:
gadgetCommand = self.getCommands()[0]
+ self.__gadgetInstanceIsDaemon = gadgetCommand.isDaemon()
+ self.__gadgetInstanceCommand = gadgetCommand.getName()
# Execute the gadget
self.__gadgetInterpreter.run(gadgetCommand.getName(),
gadgetCommand.isDaemon())
------------------------------------------------------------------------------
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn