|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Apr 2009
Messaggi: 8
|
[java] - utilizzo timer
ciao a tutti...
ho creato un array di timer statici assegnati al ID di un sensore wireless(NODI): Codice:
public static Timer timer2[]=new Timer[NODI]; Codice:
public static Task task=new Task(); praticamente mi arrivano dei messaggi... io al primo messaggio faccio partire il timer associato al ID nodo del messaggio, e se entro X sec mi arriva un altro messaggio, allora faccio ripartire il timer, se no vado nel task, spedisco i messaggi che voglio io, e poi rifaccio ripartire il timer... il mio problema è che non so quasi niente di java...volevo sapere come fare a implementare questi timer e il loro funzionamento... grazie questo è quello che ho fatto io... ma non credo sia giusto... Codice:
public void messageReceived(int to, Message message) {
...
...
...
if (timer2[msg.get_nodeid()]==null){
timer2[msg.get_nodeid()] = new Timer() ;
timer2[msg.get_nodeid()].schedule ( new Task() ,500 ) ;
}else{
timer2[msg.get_nodeid()].cancel() ;
timer2[msg.get_nodeid()] = new Timer() ;
timer2[msg.get_nodeid()].schedule ( new Task() ,500 ) ;
...
...
...
}
}
public static void sendPackets(int da_spedire, int mote) {
MANCANTE payload = new MANCANTE();
//int num_frame=0;
//System.out.println("CIAO\n");
//System.out.println("\nFRAME MANCANTE");
try {
System.out.println("Sending frame " + da_spedire + " of msg " + messaggio + " del nodo mittente "+ mote);
payload.set_nodeid((short)mote);
payload.set_msgcounter((short)messaggio);
payload.set_part_id((short)da_spedire);
moteIF.send(0, payload);
}
catch (IOException exception) {}
}
class Task extends TimerTask{
public void run(){
for (int i=5;i<BIGMSG.NODI;i++)
if (BIGMSG.nodo_frame[i] != 0){
System.out.println("\nFRAME MANCANTE");
for(int y=0; y<(BIGMSG.tot_frame[i]+1); y++)
if(BIGMSG.frame_mancante[i][y]==0){
BIGMSG.sendPackets(y,i);
//BIGMSG.timer2[i].cancel ( ) ; //Terminate the thread
//BIGMSG.timer2[i]=null;
}
}
}
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2003
Città: Ascoli Piceno
Messaggi: 5159
|
mi sembra corretta l'implementazione dei task. Per il business non sò, sei stato un pò criptico
__________________
Se dovessi rinascere, farei l'idraulico! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:40.



















