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