Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

TelepatiUdp Class Reference

Oggetto per la comunicazione UDP via Rete Wireless tra Aibo. More...

#include <TelepatiUdp.h>

List of all members.

Public Types

enum  { DATA_CONNECTION = 0, CTRL_CONNECTION = 1 }
 Tipi di connessioni di spedizione. More...


Public Methods

 TelepatiUdp ()
 Costruttore di Default.

virtual ~TelepatiUdp ()
 Distruttore di default.

virtual OStatus DoInit (const OSystemEvent &event)
 Entry Point Standard: Inizializza l'oggetto e le strutture per la comunicazione inter-object e di Rete.

virtual OStatus DoStart (const OSystemEvent &event)
 Entry Point Standard: Attiva la comunicazione con gli altri Oggetti e via Rete.

virtual OStatus DoStop (const OSystemEvent &event)
 Entry Point Standard: Ferma l'oggetto e la comunicazione.

virtual OStatus DoDestroy (const OSystemEvent &event)
 Entry Point Standard: Distrugge l'oggetto e le strutture inizializzate.

void SendCont (ANTENVMSG msg)
 Extra Entry Point: spedisce il messaggio. More...

void ReceiveCont (ANTENVMSG msg)
 Extra Entry Point: riceve il messaggio. More...

void TimerEnd (void *msg)
 Extra Entry Point: chiamato allo scadere del timer periodico di Ack. More...

void BoneTimerEnd (void *msg)
 Extra Entry Point: chiamato allo scadere del timer periodico di Polling. More...

void EtherStat (void *msg)
 Extra Entry Point: chiamato allo scadere del timer periodico di Statistiche di Rete. More...

void SendNotify (const ONotifyEvent &event)
 Entry Point Standard: attua la comunicazione inter-object. More...

void ObserverReady (const OReadyEvent &event)
 Funzione di Assert Ready. More...


Public Attributes

OSubject * subject [numOfSubject]
 Array dei subject dell'oggetto.

OObserver * observer [numOfObserver]
 Array degli observer dell'oggetto.


Static Public Attributes

const Port TELEPATI_PORT = 3030
 Porta UDP di ricezione.

const unsigned int TELEPATI_BUFFER_SIZE = 65535
 Dimensione dei buffer di ricezione/spedizione in byte.

const int TELEPATI_MAX_MESSAGE_TO_OBSERVER = 20
 Numero massimo di messaggi consecutivi all'observer. More...

const longword TELEPATI_ACK_TIME = 200
 Durata, in msec del timer periodico di Ack. More...

const longword TELEPATI_BONE_TIME = 8
 Durata, in msec, del timer ciclico per il rilevamento dello stato di attivita' degli Aibo (vedi documentazione). More...

const int TELEPATI_MAX_RESENDING = 20
 Numero massimo di tentativi di rispedizione di un messaggio. More...


Detailed Description

Oggetto per la comunicazione UDP via Rete Wireless tra Aibo.

Si occupa di gestire la comunicazione di agenti cooperanti attraverso il protocollo UDP e la rete Wireless. E' un oggetto OPENR pertanto e' un processo che lavora in concorrenza con gli altri oggetti OPENR presenti nell'Aibo e comunica con loro attraverso lo scambio di messaggi.@n All'avvio attiva una connessione UDP in ricezione e due connessioni UDP in spedizione: una ti tipo DATA per la spedizione di messaggi di dati e una di tipo CTRL per la spedizione di messaggi di controllo (HI, HIREPLY, BYE, ACK).@n I pacchetti scambiati sono rappresentati dai TelepatiPkg (implementati nella librearia libPackages.a e vengono spediti attraverso il protocollo UDP, per ogni pacchetto e' possibile specificare, all'atto della sua creazione, se e' necessario un Acknowledgment o meno come conferma della ricezione.


Member Enumeration Documentation

anonymous enum
 

Tipi di connessioni di spedizione.

Enumeration values:
DATA_CONNECTION  Connessione Data.

Usata per la spedizione dei package di dati.

CTRL_CONNECTION  Connessione di Controllo.

Usata per la spedizione dei package di controllo (ACK, HI, HIREPLY, BYE)


Member Function Documentation

void TelepatiUdp::BoneTimerEnd void *    msg
 

Extra Entry Point: chiamato allo scadere del timer periodico di Polling.

Controlla lo stato di attivita' degli Aibo periodicamente; manda un HiPkg a tutti gli Aibo in rete e controlla che sia stata ricevuta risposta all'HiPkg mandato precedentemente, se non e' stata ricevuta risposta l'Aibo viene posto in stato INACTIVE.

See also:
TELEPATI_BONE_TIME.

void TelepatiUdp::EtherStat void *    msg
 

Extra Entry Point: chiamato allo scadere del timer periodico di Statistiche di Rete.

E' attiva nel caso venga definita in compilazione OPENR_ETHERSTAT (gcc -DOPENR_ETHERSTAT) e stampa sulla console virtuale informazioni sullo stato della rete wireless. Viene invocata ogni 5 secondi.

void TelepatiUdp::ObserverReady const OReadyEvent &    event
 

Funzione di Assert Ready.

Viene invocata al ricevimento da parte dell'observer dell'Assert Ready o del Deassert Ready

void TelepatiUdp::ReceiveCont ANTENVMSG    msg
 

Extra Entry Point: riceve il messaggio.

Al ricevimento di un messaggio dalla rete IPStack invoca questa funzione che ha il compito di gestire la ricezione, se e' un messaggio di dati questo viene inoltrato agli oggetti observer.

Parameters:
msg  puntatore al messaggio ricevuto.

void TelepatiUdp::SendCont ANTENVMSG    msg
 

Extra Entry Point: spedisce il messaggio.

Quando l'oggetto OPENR IPStack (che si occua della gestione dello stack TCP/IP) avra' copiato tutti i dati nei suoi buffer, e saranno quindi riutilizzabili i buffer delle connessioni di spedizione, verra' invocata questa funzione.

Parameters:
msg  puntatore al messaggio spedito.

void TelepatiUdp::SendNotify const ONotifyEvent &    event
 

Entry Point Standard: attua la comunicazione inter-object.

Viene invocata al ricevimento di un messaggio da parte di un oggetto OPEN-R subject e si occupa di spedire il messaggio attraverso la rete.

void TelepatiUdp::TimerEnd void *    msg
 

Extra Entry Point: chiamato allo scadere del timer periodico di Ack.

Controlla se e' stato ricevuto l'Ack per il messaggio spedito identificato dal suo numero seriale, se non ricevuto rispedisce il messaggio.


Member Data Documentation

const longword TelepatiUdp::TELEPATI_ACK_TIME = 200 [static]
 

Durata, in msec del timer periodico di Ack.

See also:
TimerEnd.

const longword TelepatiUdp::TELEPATI_BONE_TIME = 8 [static]
 

Durata, in msec, del timer ciclico per il rilevamento dello stato di attivita' degli Aibo (vedi documentazione).

See also:
BoneTimerEnd.

const int TelepatiUdp::TELEPATI_MAX_MESSAGE_TO_OBSERVER = 20 [static]
 

Numero massimo di messaggi consecutivi all'observer.

Rappresenta il numero massimo di messaggi che possono essere mandati all'observer senza prima ricevere un Asser Ready.

const int TelepatiUdp::TELEPATI_MAX_RESENDING = 20 [static]
 

Numero massimo di tentativi di rispedizione di un messaggio.

Numero massimo di volte che un messaggio richiedende un Ack viene rispedito al destinatario in caso di mancato ricevimento dell'Ack stesso, superato questo numero l'Aibo di destinazione viene posto in stato INACTIVE e il messaggio viene scartato.

See also:
TimerEnd


The documentation for this class was generated from the following files:
Generated on Tue Mar 1 16:20:22 2005 for TelepatiUdp by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002