summaryrefslogtreecommitdiffstats
path: root/For Weekly Test
diff options
context:
space:
mode:
authortt412011-07-28 23:02:55 +0200
committertt412011-07-28 23:02:55 +0200
commita4512a6d7093787af46eef8b89cae4d81d7029ab (patch)
tree8bf66ea2bbaf31cd05ef9565d8ab1cb07fe26ddb /For Weekly Test
parentedit timeout for GSM handler (diff)
downloadgsm-selftest-a4512a6d7093787af46eef8b89cae4d81d7029ab.tar.gz
gsm-selftest-a4512a6d7093787af46eef8b89cae4d81d7029ab.tar.xz
gsm-selftest-a4512a6d7093787af46eef8b89cae4d81d7029ab.zip
rename GSM Handler
Diffstat (limited to 'For Weekly Test')
-rw-r--r--For Weekly Test/30-07-2011/GSMHandler.py281
1 files changed, 281 insertions, 0 deletions
diff --git a/For Weekly Test/30-07-2011/GSMHandler.py b/For Weekly Test/30-07-2011/GSMHandler.py
new file mode 100644
index 0000000..60b11a9
--- /dev/null
+++ b/For Weekly Test/30-07-2011/GSMHandler.py
@@ -0,0 +1,281 @@
+import ServerClass
+import GSMClass
+import LogFileClass
+from time import sleep
+import sys
+
+global portListen
+global portAddress
+
+
+if len(sys.argv) <> 3:
+ print "Error given command"
+ sys.exit(2)
+
+
+portListen = int(sys.argv[1])
+portAddress = sys.argv[2]
+
+def initLogfile():
+ global nameOfLogFile
+
+ if portListen == 50007:
+ nameOfLogFile = 'GSM RZ1 handler.log'
+
+ elif portListen == 50010:
+ nameOfLogFile = 'GSM O2 handler.log'
+
+ elif portListen == 50011:
+ nameOfLogFile = 'GSM Vodaphone handler.log'
+
+ elif portListen == 50012:
+ nameOfLogFile = 'GSM TMobile handler.log'
+
+ elif portListen == 50013:
+ nameOfLogFile = 'GSM EPlus handler.log'
+ else:
+ print "No port listening found"
+
+
+baudRate = 19200
+
+initLogfile()
+logger = LogFileClass.Logging(nameOfLogFile)
+
+errorCount = 0
+
+logger.logEvent('')
+
+whileCounter =0
+
+#define global varibales
+global lastState
+global resetState
+lastState = 0
+resetState = 0
+
+
+def initSystem():
+ print 'init system'
+
+ global handlerSocket
+ global gsmDevice
+ global initTalkVar
+ global lastState
+
+ global numberToCall
+ global resetState
+
+ initTalkVar = 0 #variable used to know if we initialized the start talk
+ lastState = 0 #variable used to know
+ numberToCall = '000' #number to call
+ resetState = 0
+
+ handlerSocket = ServerClass.ServerHandler(portListen)
+ logger.logEvent('LISTEN ON PORT: '+str(portListen))
+
+ #add this if you need it
+ gsmDevice = GSMClass.serialPort(portAddress, baudRate, 30)
+ initDevice = gsmDevice.portInit()
+ ########################################################
+
+ #add nice formating to the log file :)
+ anyConnection = handlerSocket.openSocket()
+
+
+ if anyConnection == 1 and initDevice == 1:
+ logger.logEvent('CONNECTION ESTABLISHED AND DEVICE WORKING: ' + str(handlerSocket.connectedTo()))
+ return 1
+
+ elif anyConnection == 1 and initDevice == 0:
+ logger.logEvent('$connection established but device not working: ' + str(handlerSocket.connectedTo()))
+ return 2
+ else:
+ logger.logEvent('$no connection')
+ return 0
+
+def receiveMessage(timeout):
+
+ message = str(handlerSocket.receiveData(timeout))
+
+ if message != '0' and message !='NO DATA':
+ print 'in receive message', message, lastState
+
+ if message == 'HELLO HANDLER' and lastState == 0:
+ outcome = initTalk()
+ if outcome == 1:
+ logger.logEvent('TALK INITIALIZATION SENT')
+ else:
+ logger.logEvent('$talk initialization not sent: ' + str(outcome))
+
+ elif message == 'RECEIVER' and lastState == 1:
+ outcome = initReceiver()
+ if outcome == 1:
+ logger.logEvent('RECEIVER READY SENT')
+ else:
+ logger.logEvent('$receiver ready not sent: ' + str(outcome))
+
+ elif message == 'RECEIVE START' and lastState == 2:
+ outcome = receiveStart()
+ if outcome == 1:
+ logger.logEvent('RECEIVE STATUS REPORTED')
+ else:
+ logger.logEvent('$receive status not reported: ' + str(outcome))
+
+ elif message[0:6] == 'CALLER' and lastState == 1:
+ outcome = initCaller()
+
+ global numberToCall
+ numberToCall = message[7:]
+ if outcome == 1:
+ logger.logEvent('CALLER READY SENT')
+ else:
+ logger.logEvent('$caller ready not sent: ' + str(outcome))
+
+ elif message == 'CALL START' and lastState == 4:
+ outcome = callStart(numberToCall)
+ if outcome == 1:
+ logger.logEvent('CALLER STATUS SENT')
+ else:
+ logger.logEvent('$caller status not sent: ' + str(outcome))
+
+ elif message == 'TERMINATE CONNECTION' and (lastState == 5 or lastState == 3):
+ outcome = terminateConnection()
+ if outcome == 1:
+ logger.logEvent('TERMINATED THE CONNECTION AFTER TEST')
+ else:
+ logger.logEvent('$connection could not be terminated after the test: ' + str(outcome))
+
+ elif message == 'TERMINATE CONNECTION':
+ outcome = terminateConnection()
+ if outcome == 1:
+ logger.logEvent('TERMINATED THE CONNECTION IN MIDDLE. IN STATE: ' + str(lastState) )
+ else:
+ logger.logEvent('$connection could not be terminated in middle: ' + str(outcome) + ' in state: ' + str(lastState))
+ else:
+ outcome = other()
+ logger.logEvent('other appeared')
+
+ return 1
+ #return 0
+
+########INIT TALK PART########
+def initTalk():
+ print 'init talk'
+
+ #initialize the talk between handler and controller
+ global lastState
+ lastState = 1
+ sendMessage = handlerSocket.sendData('HELLO CONTROLLER')
+ return sendMessage
+##############################
+
+
+########RECEIVE PART########
+def initReceiver():
+ print 'initReceiver'
+
+ #init function to initialize the receiver
+ global lastState
+ lastState = 2
+ sendMessage = handlerSocket.sendData('RECEIVER READY')
+ return sendMessage
+
+def receiveStart():
+ print 'receiveStart'
+
+ #wait for a call and report if you received it and it was successfull or not
+ global lastState
+ lastState = 3
+ receiveCall = gsmDevice.receiveCall()
+
+ if receiveCall == 1:
+ callSuccess = 'CALL OK'
+ else:
+ callSuccess = 'CALL NOT OK'
+
+ tryHangUp = gsmDevice.hangUp()
+
+ sendMessage = handlerSocket.sendData(callSuccess)
+ return sendMessage
+############################
+
+
+########CALL PART########
+def initCaller():
+ print 'initCaller'
+
+ #initialize caller here
+ global lastState
+ lastState = 4
+ sendMessage = handlerSocket.sendData('CALLER READY')
+ return sendMessage
+
+def callStart(numberToCall):
+ print 'initCaller'
+
+ #call the number here
+ global lastState
+ lastState = 5
+
+ callSuccess = 'CALL NOT OK'
+
+ tryCall = gsmDevice.callNumber(numberToCall)
+ if tryCall != 1:
+ callSuccess = 'CALL NOT OK'
+ else:
+ sleep(2)
+ activeCall = gsmDevice.currentCall()
+ counter = 0
+ while(activeCall!=1):
+ sleep(1)
+ activeCall = gsmDevice.currentCall()
+ if counter == 6:
+ break
+ counter += 1
+
+ if activeCall == 1:
+ callSuccess = 'CALL OK'
+ else:
+ callSuccess = 'CALL NOT OK'
+
+ tryHangUp = gsmDevice.hangUp()
+
+ return handlerSocket.sendData(callSuccess)
+#########################
+
+
+########TERMINATE PART########
+def terminateConnection():
+ print 'terminate connection'
+ global resetState
+ close = handlerSocket.closeConnection()
+ resetState = 1
+ sys.exit(1)
+ return close
+##############################
+
+########TERMINATE PART########
+def other():
+ print 'other'
+ global lastState
+ global resetState
+
+ close = handlerSocket.closeConnection()
+ lastState = 8
+ resetState = 1
+ return 1
+##############################
+
+
+
+while 1:
+ test = initSystem()
+ if test == 1:
+ print 'initialized system'
+ receivedMessage = 0
+ while receivedMessage < 4 and resetState!= 1:
+ receivedMessage += receiveMessage(10)
+
+ del handlerSocket
+ del gsmDevice