summaryrefslogtreecommitdiffstats
path: root/Under-Testing/Server-Code-New/usbDetectClass.py
blob: d64e328845c598436cfc2914fbe233d033aac314 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
from serial import * #serial port library
import sys 
from time import sleep
import DbClass


class serialPort:
	
	def __init__(self, portAddress):
		self.portAddress = portAddress
		self.portExist = 0
		self.IMEI = None
		self.number = None
		#self.updateStatus = None

	def initDB(self):
    		self.db = DbClass.DBMySQLConnection()
    		self.db.connectDB()
    		self.dbStatus = self.db.connectDB()

	def initUpdate(self, deviceName, newPortName, newNumber):
		self.initDB()
		
		if self.dbStatus != 0:
	        	self.db.updateGSMDevice(deviceName, newPortName, newNumber)
		else:
			print 'No connection to database'
			
	def portInit(self):
		self.portExist = 0
		try:
			self.ser = Serial(
               			port='/dev/'+self.portAddress,
               			baudrate=19200,
               			bytesize=EIGHTBITS,
               			parity=PARITY_NONE,
               			stopbits=STOPBITS_ONE)
			self.ser.open()
			self.ser.isOpen()
			self.portExist = 1

	  	except Exception, e:
			return 0

	def isInteger(self, x):
		try:
			int(x)
			return True
		except:
			return False

	def findIMEI(self):
		self.portInit()
		if self.portExist == 1:
			self.ser.flushInput() #clean the input buffer for serial port
			self.ser.write('AT+GSN\r')
			sleep(0.5)
			result = self.ser.read(25)
			if result != '':
				self.IMEI = result[result.find('3'):15+result.find('3')]
			else:
				self.IMEI = 'IMEI not found'
			return self.IMEI

		else:
			self.IMEI = 'port not found'
			return 0

	def findNumber(self):
		self.portInit()

		if self.portExist == 1:
			self.ser.flushInput() #clean the input buffer for serial port
			self.ser.write('AT+CNUM\r')
			sleep(0.5)
			readNum = self.ser.read(35)
			self.ser.close()
			firstQuote = readNum.find('"')
			cutString = readNum [firstQuote:]
			secondQuote = cutString.find(',')
			number = cutString[1:secondQuote-1]
			
			if number != '':
				if number.find('+') == 0:
					number = '0'+number[3:len(number)]
				elif int(number[0:1]) == 4:
					number = '0'+number[2:len(number)]
				self.number = number
			else:
				self.number = 'number not found'

			return self.number

		else:
			self.number = 'port not found'
			return 0