diff options
Diffstat (limited to 'AudioManagerDaemon/test/AmNodeStateCommunicatorTest/nsm.py')
-rw-r--r-- | AudioManagerDaemon/test/AmNodeStateCommunicatorTest/nsm.py | 179 |
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() |