summaryrefslogtreecommitdiff
path: root/AudioManagerDaemon/test/AmNodeStateCommunicatorTest/nsm.py
diff options
context:
space:
mode:
Diffstat (limited to 'AudioManagerDaemon/test/AmNodeStateCommunicatorTest/nsm.py')
-rw-r--r--AudioManagerDaemon/test/AmNodeStateCommunicatorTest/nsm.py179
1 files changed, 179 insertions, 0 deletions
diff --git a/AudioManagerDaemon/test/AmNodeStateCommunicatorTest/nsm.py b/AudioManagerDaemon/test/AmNodeStateCommunicatorTest/nsm.py
new file mode 100644
index 0000000..7a02d05
--- /dev/null
+++ b/AudioManagerDaemon/test/AmNodeStateCommunicatorTest/nsm.py
@@ -0,0 +1,179 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2012, BMW AG
+#
+# This file is part of GENIVI Project AudioManager.
+#
+# Contributions are licensed to the GENIVI Alliance under one or more
+# Contribution License Agreements.
+#
+# \copyright
+# This Source Code Form is subject to the terms of the
+# Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+# this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#
+# \author Christian Linke, christian.linke@bmw.de BMW 2012
+#
+# For further information see http://www.genivi.org/.
+#
+
+import sys
+import traceback
+import gobject
+import math
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+loop = gobject.MainLoop()
+dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
+class NodeStateManager(dbus.service.Object):
+ def __init__(self, loop):
+ busName = dbus.service.BusName('org.genivi.NodeStateManager', bus = dbus.SessionBus())
+ dbus.service.Object.__init__(self, busName, '/org/genivi/NodeStateManager')
+ self.properties = {'RestartReason': 1, 'ShutdownReason': 2, 'WakeUpReason' :3, 'BootMode' :4}
+ self.ABus=""
+ self.APath=""
+ self.loop=loop
+
+ @dbus.service.method(dbus_interface='org.freedesktop.DBus.Introspectable', out_signature = 's')
+ def Introspect(self):
+ f = open('org.genivi.NodeStateManager.Consumer.xml', "r")
+ text = f.read()
+ return text
+
+ @dbus.service.method(dbus_interface='org.genivi.NodeStateManager.Consumer', out_signature = 'ii')
+ def GetNodeState(self):
+ NodeStateId=1
+ ErrorCode=1
+ print('[----------] send out nodeState' + str(NodeStateId) + ' ErrorCode '+ str(1))
+ return NodeStateId, ErrorCode
+
+ @dbus.service.method('org.genivi.NodeStateManager.Consumer', out_signature = 'ii')
+ def GetApplicationMode(self):
+ ApplicationModeId=5
+ ErrorCode=2
+ print('[----------] send out ApplicationMode' + str(ApplicationModeId) + ' ErrorCode '+ str(2))
+ return ApplicationModeId, ErrorCode
+
+ @dbus.service.method('org.genivi.NodeStateManager.Consumer', in_signature='si', out_signature = 'ii')
+ def GetSessionState(self,SessionName,seatID):
+ SessionState=0
+ ErrorCode=2
+
+ if SessionName=="mySession" and seatID==1:
+ SessionState=5
+ ErrorCode=1
+
+ print('[----------] GetSessionState for session ' + SessionName + ' seatID '+ str(seatID) + ' returnState ' + str (SessionState))
+ return SessionState, ErrorCode
+
+ @dbus.service.method('org.genivi.NodeStateManager.Consumer', in_signature='ssuu', out_signature = 'i')
+ def RegisterShutdownClient(self,BName,ObjName,ShutdownMode,TimeoutMs):
+ print('[----------] Busname: ' + BName)
+ print('[----------] ObjName: ' + ObjName)
+ print('[----------] ShutdownMode: ' + str(ShutdownMode))
+ print('[----------] TimeoutMs: ' + str(TimeoutMs))
+ ErrorCode=1
+ if TimeoutMs!=100:
+ ErrorCode=3
+ if BName!="org.genivi.audiomanager":
+ ErrorCode=4
+ if ShutdownMode!=1:
+ ErrorCode=5
+ if ObjName!="/org/genivi/audiomanager/LifeCycleConsumer":
+ ErrorCode=6
+ self.ABus=BName
+ self.APath=ObjName
+ return ErrorCode
+
+ @dbus.service.method('org.genivi.NodeStateManager.Consumer', in_signature='ssu', out_signature = 'i')
+ def UnRegisterShutdownClient(self,BusName,ObjName,ShutdownMode):
+ print('[----------] Busname: ' + str(BusName))
+ print('[----------] ObjName: ' + str(ObjName))
+ print('[----------] ShutdownMode: ' + str(ShutdownMode))
+ ErrorCode=1
+ if BusName!=self.ABus:
+ ErrorCode=2
+ if ObjName!=self.APath:
+ ErrorCode=2
+ if ShutdownMode!=1:
+ ErrorCode=2
+ return ErrorCode
+
+ @dbus.service.method(dbus_interface='org.genivi.NodeStateManager.Consumer', out_signature = 'u')
+ def GetInterfaceVersion(self):
+ version=23
+ return version
+
+ @dbus.service.method('org.genivi.NodeStateManager.Consumer', in_signature='ui', out_signature='i')
+ def LifecycleRequestComplete(self,RequestID,Status):
+ print('[----------] RequestId: ' + str(RequestID))
+ print('[----------] Status: ' + str(Status))
+ ErrorCode=1
+ if RequestID!=22:
+ ErrorCode=2
+ if Status!=4:
+ ErrorCode=2
+ return ErrorCode
+
+ @dbus.service.method(dbus.PROPERTIES_IFACE, in_signature='ss', out_signature='v')
+ def Get(self, interface, prop):
+ if prop in self.properties:
+ print('[----------] send out ' + str(self.properties[prop]) + ' for property '+ prop)
+ return self.properties[prop]
+ return 0
+
+ @dbus.service.method(dbus.PROPERTIES_IFACE, in_signature='ssv')
+ def Set(self, interface, prop, value):
+ return 3
+
+ @dbus.service.method(dbus.PROPERTIES_IFACE, in_signature='s', out_signature='a{sv}')
+ def GetAll(self, interface):
+ return self.properties
+
+ @dbus.service.signal(dbus_interface='org.genivi.NodeStateManager.Consumer', signature='i')
+ def NodeApplicationMode(self, ApplicationModeId):
+ print "[----------] Send out application mode ID %d" % (ApplicationModeId)
+
+ @dbus.service.signal(dbus_interface='org.genivi.NodeStateManager.Consumer', signature='i')
+ def NodeState(self, NodeState):
+ print "[----------] Send out NodeState %d" % (NodeState)
+
+ @dbus.service.signal(dbus_interface='org.genivi.NodeStateManager.Consumer', signature='sii')
+ def SessionStateChanged(self, SessionStateName,SeatID,SessionState):
+ print "[----------] Send out SessionStateChanged " + SessionStateName
+
+ @dbus.service.method('org.genivi.NodeStateManager.Control', in_signature='i')
+ def sendNodeApplicationMode(self, input):
+ self.NodeApplicationMode(input)
+ return input
+
+ @dbus.service.method('org.genivi.NodeStateManager.Control', in_signature='i')
+ def sendNodeState(self, input):
+ self.NodeState(input)
+ return input
+
+ @dbus.service.method('org.genivi.NodeStateManager.Control', in_signature='sii')
+ def sendSessionState(self, SessionStateName,SeatID,SessionState):
+ self.SessionStateChanged (SessionStateName,SeatID,SessionState)
+ return SeatID
+
+ @dbus.service.method('org.genivi.NodeStateManager.Control', in_signature='uu', out_signature='i')
+ def sendLifeCycleRequest(self, request, requestID):
+ bus = dbus.SessionBus()
+ remote_object = bus.get_object(self.ABus,self.APath)
+ iface = dbus.Interface(remote_object, 'org.genivi.NodeStateManager.LifeCycleConsumer')
+ iface.LifecycleRequest(request,requestID)
+ return 42
+
+ @dbus.service.method('org.genivi.NodeStateManager.Control')
+ def finish(self):
+ print '[----------] Going to exit now!'
+ self.loop.quit()
+ return 0
+
+nsm = NodeStateManager(loop)
+loop.run()