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

Reply via email to