fbpx
Skip to main content

SIM 2010

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME Autore della discussione
  • Visitatori
  • Visitatori
15 Anni 7 Mesi fa #107822 da COM_EASYSOCIAL_GUEST_NAME
SIM 2010 è stato creato da COM_EASYSOCIAL_GUEST_NAME
Non ho trovato nessun topic aperto al riguardo, se è già stato aperto in precedenza chiedo umilmente venia! :oops:

L'ho aperto solo per informare che cerco un gruppo per il progetto di SIM. :cry: :cry:

Ciaoooo!!!

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
15 Anni 6 Mesi fa #108396 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic SIM 2010
Ragazzi una domanda per l'esame di domani. Dato che non ho potuto frequentare, volevo sapere se aveva fatto anche tcp mobile quest'anno e tutti gli algoritmi di routing adhoc!

Grazie
Ciaoo

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
15 Anni 6 Mesi fa #108431 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic SIM 2010
TCP mobile sì.
degli algoritmi ad hoc a lezione ha saltato olsr

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME Autore della discussione
  • Visitatori
  • Visitatori
15 Anni 5 Mesi fa #109561 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic SIM 2010
Ragazzi scusate, una piccolissima domanda per togliermi un piccolissimo dubbio.

Sto facendo il progetto di SIM e all'interno del progetto ho bisogno che ad un certo punto il Behaviour (quello classico) si deve mettere in attesa della ricezione di un messaggio con un dato template, allora ho fatto una cosa del genere
codice vario
.........
MessageTemplate tmplt = bla bla bla.....
boolean rec = false;
while(!rec)
{
    ACLMessage rec = myAgent.receive(tmplt)
    if(rec != null)
    {
        //processo il messaggio
        rec = true;
    }
    else
    {
        block();
        System.out.println("Ciaooo!!!!!!");
    }
}
.........
altro codice vario

In maniera tale da far rimanere in quel limbo di attesa del messaggio il behaviour, utilizzando comunque il block() per fare un ciclo solo quando il behaviour riceve un messaggio.

Adesso se io metto una stampa subito dopo il block(), questa me la stampa continuamente come se si trovasse all'interno di un ciclo while senza il block(), cioè sembra che il block (che per definizione interrompe l'esecuzione del behaviour in questione fino a che questi non riceva un messaggio) in questo contesto non funzionasse. Ho provato anche a vedere se per caso non ricevesse continuamente un messaggio che sbloccasse il block(), ma niente (infatti usando al posto del receive() il blockingReceive() questo rimane bloccato, anche senza specificare alcun template)

Anzi se provo ad usare il block(5000) in modo da imporgli una pausa di 5 sec e senza che arrivi alcun messaggio (quindi il block() dovrebbe durare per tutti e 5 i secondi) continua a stamparmi continuamente e senza nessuna pausa Ciaoooo!!!!!

Dove sbaglio? O_O"

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
15 Anni 5 Mesi fa #109565 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic SIM 2010
boolean rec = false;
while(!rec)
{
    ACLMessage rec = ...
...
certo che potevi scegliere due nomi diversi per le due variabili..

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME Autore della discussione
  • Visitatori
  • Visitatori
15 Anni 5 Mesi fa #109590 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic SIM 2010

boolean rec = false;
while(!rec)
{
    ACLMessage rec = ...
...
certo che potevi scegliere due nomi diversi per le due variabili..


Hahahhaa, si hai ragione XD, ma nella fretta di scrivere un esempio di codice non ci ho fatto caso.

Coooomunque credo di aver capito il problema, il block() funziona se e solo se dopo la sua esecuzione il behaviour termina (cioè viene invocato il metodo done() ), se è annidato in un while() non va o se dopo ci sono altre istruzioni non sembra andare.

Il modo migliore per fare le cosa che ho descritto prima è utilizzare il costrutto switch - case.

Si prega Accedi o Crea un account a partecipare alla conversazione.