import javax.telephony.events import os import java.lang import com.symbian.javax.telephony.mobile import com.symbian.javax.telephony import com.symbian.epoc.etel import java.lang.Integer import java.lang.String import com.symbian.javax.net.datagram from java.awt import Frame,MenuBar,Menu,MenuItem,TextArea,FileDialog from java.awt.event import ActionEvent class test(java.awt.Frame, com.symbian.epoc.etel.EtelLineListener): def __init__(self): # self.size=(208,276) # #self.myOutput=java.awt.TextArea("Hello UIQ from Jython!!!\n") # self.add("Center",#self.myOutput) # self.myMenuBar=java.awt.MenuBar() # self.myMenu=java.awt.Menu("Menu") # self.myReadFile=java.awt.MenuItem("Start",actionPerformed=self.incomingCall(self,None)) # Avvio routine principale da menu self.doStart) # # self.myMenuExit=java.awt.MenuItem("Exit",actionPerformed=self.doExit) # self.myMenuBar.add(self.myMenu) # self.myMenu.add(self.myReadFile) # self.myMenu.add(self.myMenuExit) # self.setMenuBar(self.myMenuBar) # self.setVisible(1) # self.incomingCall(self,None) pass def doExit(self,event): java.lang.System.exit(0) def callActive(self,event): #callListener (mai rilevato???) print "callActive (callListener)\n" def callInvalid(self,event): #callListener (mai rilevato???) print "callInvalid (callListener)" def callEventTransmissionEnded(self,event): #callListener print "eventocallEventTransmissionEnded: ( callListener)", event def statusChange(self, line, num): # etelline, status (da EtelLineListener) #print "*********STATUSCHANGE*********" #print "Stato attuale: ", num , "\n" pass def incomingCall(self, line, call): # etelline, etelcall (da EtelLineListener) #global jnd print " ----- INCOMING CALL -----" file1 = open("c:\\documents\\Media Files\\document\\LC_GPS_Tracker\\cellphone.txt",'r') numero = file1.read() file1.close() file1 = open("c:\\documents\\Media Files\\document\\LC_GPS_Tracker\\address.txt",'r') indirizzo = file1.read() file1.close() ##self.myOutput.appendText("INCOMING CALL...")# + call.getCallerId() + "...\n") print "Chiamata in arrivo, mi collego al GPS..." import se.sics.bt.symbian import java.lang.Short import jarray lib = se.sics.bt.symbian # Connessione a libreria JavaBT address = jarray.array([0,10,58,35,16,194],'h') # Array di "short" per indirizzo del ricevitore GPS # L'indirizzo Bluetooth di un dispositivo è formato da una sequenza di 12 cifre # esadecimali (cioè che vanno da 0 ad F); bisogna scomporre la sequenza in coppie # e convertire in decimale le singole coppie, per ottenere i numeri da inserire # nell'array che rappresenta l'indirizzo del dispositivo. # Questo indirizzo di default è usato per creare l'array, ma poi è sovrascritto con # quello letto da file. # La sequenza-indirizzo puo' essere ricavata dal programma di connessione bluetooth # installato sul PC, una volta che si è connsesso il dispositivo al PC. i=0 intero = "" print "Indirizzo letto da file: ", indirizzo while i<=5: address[i]=java.lang.Short.parseShort(indirizzo[2*i:2*i+2],16) intero = intero + "-" + java.lang.Integer(address[i]).toString() i = i+1 print "indirizzo rielaborato:", intero try: print "Attivazione bluetooth..." commander = lib.BTCommander() except: print "Problema col bluetooth... Programma terminato\n" else: print "Commander = ",commander try: print "Bluetooth attivato. Preparazione connessione a dispositivo..." device = lib.BTDevice("LC_GPS", address, commander) # Prepara connessione a GPS except: print "Impossibile trovare dispositivo ", intero else: if device <> None: print "Device = ", device port = 1 abyte0 = jarray.zeros(3,'b') # Crea array di 3 byte try: print "Dispositivo trovato. Connessione..." currentSocket = device.connect(port, commander.RFCOMM, 20) # Apre connessione except: print "Problemi durante la connessione a ",intero else: if currentSocket <> None: print "Socket = ",currentSocket i = 1; print "GPS connesso." print "Lettura dati..." MAX=200 # Numero di bytes da leggere al ricevitore n=0 dati = "Dati ricevuti: " while i > -1 and n