summaryrefslogtreecommitdiffstats
path: root/Controller/ControllerClass.py
diff options
context:
space:
mode:
authorRefik Hadzialic2011-08-02 16:47:17 +0200
committerRefik Hadzialic2011-08-02 16:47:17 +0200
commit24414ec73f840f3f9050b4724bdeae6fd9731870 (patch)
treef931677f26ab4f7d18d34dc6175316dd125dd030 /Controller/ControllerClass.py
parentModiefied the code to work with ssh tunneling (diff)
parentrename device name on database. (diff)
downloadgsm-selftest-24414ec73f840f3f9050b4724bdeae6fd9731870.tar.gz
gsm-selftest-24414ec73f840f3f9050b4724bdeae6fd9731870.tar.xz
gsm-selftest-24414ec73f840f3f9050b4724bdeae6fd9731870.zip
Merge branch 'master' of lab.ks.uni-freiburg.de:lsfks/projekte/gsm-selftest
Diffstat (limited to 'Controller/ControllerClass.py')
-rw-r--r--Controller/ControllerClass.py177
1 files changed, 177 insertions, 0 deletions
diff --git a/Controller/ControllerClass.py b/Controller/ControllerClass.py
new file mode 100644
index 0000000..04c9614
--- /dev/null
+++ b/Controller/ControllerClass.py
@@ -0,0 +1,177 @@
+import sys
+import os
+import subprocess
+
+import ClientClass
+
+import LogFileClass
+logger = LogFileClass.Logging('classController.log')
+
+from time import sleep
+
+
+class test:
+
+ def __init__(self, callFrom, callAdd, callTo, recAdd, destNo):
+
+ self.callFrom = callFrom
+ self.dest = callTo
+ self.destNo = destNo
+ self.repeatTest = None
+ self.portCaller = None
+ self.portDest = None
+ self.resultCaller = None
+ self.resultDest = None
+ self.testResult = None
+ self.callAdd = callAdd
+ self.recAdd = recAdd
+ self.receiver = None
+ self.caller = None
+ self.connected = None
+
+
+ def FuncTest(self):
+
+ logger.logEvent('')
+
+ self.initCaller()
+ sleep(3)
+
+ self.callerGreeting()
+
+ if self.connected == 'OK':
+
+ self.caller.sendData('CALLER|'+self.destNo)
+ callerHandler = self.caller.receiveData(60)
+
+ if callerHandler == "CALLER READY":
+ logger.logEvent('Caller handler : Ready')
+
+ self.initReceiver()
+ sleep(3)
+ self.receiverGreeting()
+
+ if self.connected == 'OK':
+
+ self.receiver.sendData('RECEIVER')
+ destHandler = self.receiver.receiveData(60)
+
+ if destHandler == 'RECEIVER READY':
+ logger.logEvent('Receiver handler : Ready')
+
+ self.startCall()
+ self.waitingFeedback()
+
+ else:
+ self.testResult = 604
+ logger.logEvent('604 General Handler Error: Destination handler no respond timeout')
+ self.caller.sendData('TERMINATE CONNECTION')
+ self.receiver.closeConnection()
+
+ else:
+ logger.logEvent('998 General Handler Error: Could not connect Destination handler')
+ self.testResult = 998
+ self.caller.sendData('TERMINATE CONNECTION')
+ self.caller.closeConnection()
+ else:
+ self.testResult = 605
+ logger.logEvent('605 General Handler Error: caller handler no respond timeout')
+
+ self.caller.closeConnection()
+
+ else:
+ self.testResult = 999
+ logger.logEvent('999 General Handler Error: Could not connect to Caller handler')
+
+
+
+ def waitingFeedback(self):
+ logger.logEvent('Waiting Feedback')
+ self.resultCaller = self.caller.receiveData(60)
+ self.resultDest = self.receiver.receiveData(60)
+
+ if self.resultCaller <> 'CALL OK' or self.resultDest <> 'CALL OK':
+
+ logger.logEvent('Test Failed')
+ self.testResult = 486
+ self.repeatTest = True
+ self.initTerminate()
+
+ else:
+ logger.logEvent('Test Succeed')
+ self.testResult = 200
+ self.initTerminate()
+
+
+ def startCall(self):
+ logger.logEvent('Start Call')
+ self.receiver.sendData('RECEIVE START')
+ self.caller.sendData('CALL START')
+
+
+ def initCaller(self):
+ logger.logEvent('init Caller')
+
+ if self.callFrom =="gsmr1":
+ self.portCaller = 50008
+
+ elif self.callFrom =="gsmr2":
+ self.portCaller = 50008 #temp
+
+ elif self.callFrom =="gsmr3":
+ self.portCaller = 50097
+
+ else:
+ self.portCaller = 50099
+ subprocess.Popen(args=["gnome-terminal", '--command=python sipHandler.py '+self.callFrom+ ' ' +str(self.portCaller)])
+
+ def initReceiver(self):
+ logger.logEvent('init Receiver')
+
+ if self.dest =="gsmr1":
+ self.portDest = 50008
+
+ elif self.dest =="gsmr2":
+ self.portDest = 50008 #temp
+
+ elif self.dest =="gsmr3":
+ self.portDest = 50103
+
+ else:
+ self.portDest = 50100
+ subprocess.Popen(args=['gnome-terminal', '--command=python sipHandler.py '+self.dest+ ' ' +str(self.portDest)])
+
+ def initTerminate(self):
+ self.caller.sendData('TERMINATE CONNECTION')
+ self.receiver.sendData('TERMINATE CONNECTION')
+
+ def callerGreeting(self):
+ self.connected = None
+ self.caller = ClientClass.Connection(self.callAdd,self.portCaller)
+ self.caller.connect()
+
+ if self.caller.connected == 1:
+ logger.logEvent('Connected to Caller Handler')
+ self.caller.sendData('HELLO HANDLER')
+ if self.caller.receiveData(30) == 'HELLO CONTROLLER':
+ logger.logEvent('Caller Handler respond')
+ self.connected = 'OK'
+ else:
+ logger.logEvent('Cannt connect to Caller')
+ self.connected = 'NOT OK'
+
+ def receiverGreeting(self):
+ self.connected = None
+ self.receiver = ClientClass.Connection(self.recAdd, self.portDest)
+ self.receiver.connect()
+
+ if self.receiver.connected == 1:
+ logger.logEvent('Connected to Receiver Handler')
+ self.receiver.sendData('HELLO HANDLER')
+ if self.receiver.receiveData(30) == 'HELLO CONTROLLER':
+ logger.logEvent('Receiver Handler respond')
+ self.connected = 'OK'
+ else:
+ logger.logEvent('Cannt connect to Receiver')
+ self.connected = 'NOT OK'
+