• Non ci sono risultati.

3.2 Specifiche del Protocollo

3.2.3 Formato Pacchetto

Il formato del pacchetto dipende dal contesto in cui esso viene inviato/ricevuto. Pos- siamo distinguere diversi tipi di messaggi a seconda del tipo di nodo coinvolto nella comunicazione. Come detto, in questo protocollo abbiamo tre tipi di nodo:

¯ PALM;

¯ RACCOGLITORE; ¯ SENSORE.

Di conseguenza ci sono sei tipi di comunicazioni:

¯ PALM RACCOGLITORE; ¯ RACCOGLITORE PALM; ¯ RACCOGLITORE SENSORE;

¯ SENSORE RACCOGLITORE; ¯ SENSORE SENSORE;

Comunicazione PALM RACCOGLITORE

Il formato del pacchetto nella comunicazione tra PALM e RACCOGLITORE `e il seguente: 1 byte 1 byte 1 byte 2 byte

Type Group Comando Parametro 0x01 0x7D 0x0- Tempo campionamento

Nel byte del comando possiamo avere tre opzioni, in quanto sono presenti tre comandi che il PALM pu `o inviare al RACCOGLITORE: Inizializzazione, Richiesta Numero Dati e infine Richiesta Dati.

A seconda dei tre casi, il byte del campo comando cambia come di seguito: 1. Inizializzazione: 0x01

2. Richiesta Numero Dati: 0x02 3. Richiesta Dati: 0x03

Comunicazione RACCOGLITORE PALM

Nella comunicazione tra RACCOGLITORE e PALM abbiamo due tipi di messaggi di risposta ai comandi del PALM. Nei casi in cui il RACCOGLITORE riceve i comandi In-

izializzazionee Richiesta Numero Dati, risponde con il seguente formato: 1 byte 1 byte 1 byte 2 byte

Type Group Comando Parametro 0x01 0x7D 0x0- -

In questo caso i campi comando e parametro saranno riempiti in maniera differente a seconda del comando ricevuto:

1. Caso ricezione comando Inizializzazione: il campo comando `e riempito con 0x01 e il campo parametro `e riempito con 0x01 se l’avvio dell’inizializzazione della rete `e avvenuto correttamente e con 0x02 in caso di errore nell’avvio.

2. Caso ricezione comando Richiesta Numero Dati: in questo caso il campo comando `e riempito con 0x02 e il campo parametro `e riempito con il numero di dati che il RACCOGLITORE ha memorizzato.

Nel caso in cui il RACCOGLITORE riceve un comando di tipo Richiesta Dati esso risponde con il seguente formato:

1 byte 1 byte 1 byte 2 byte 2 byte 2 byte Type Group Comando ID Nodo Valore Time Valore 0x01 0x7D 0x03 - - - I campi incompleti saranno riempiti nel seguente modo:

- ID Nodo: in questo campo sar`a presente l’id del nodo a cui corrisponde il campiona-

mento;

- Valore: in questo campo sar`a presente il valore campionato dal nodo corrispondente al

campo ID nodo;

- Time Valore: in questo campo sar`a presente il valore dell’istante in cui `e stato fatto il

campionamento.

Comunicazione RACCOGLITORE SENSORE

In questa comunicazione `e presente solo un tipo di messaggio in quanto l’unico compito del RACCOGLITORE in questa direzione (RACCOGLITORE SENSORE) `e quella di

avviare l’inizializzazione della rete. La struttura del pacchetto `e il seguente: 2 byte 2 byte 2 byte 4 byte

ID mittente ID padre Numero Progressivo Intervallo

I vari campi saranno riempiti come di seguito:

- Campo ID mittente: in questo caso, e cio`e nella direzione di comunicazione RACCOGLI- TORE SENSORE, ID mittente sar`a 0x02, poich`e in questa implementazione il

PALM ha ID 0x01 e il nodo RACCOGLITORE ha ID 0x02.

In questa comunicazione il campo ID mittente avr`a contenuto 0x02.

- Campo ID padre: per le stesse motivazioni di implementazione di cui sopra, ID padre

sar`a 0x01, in quanto il PALM `e considerato il padre del nodo RACCOGLITORE.

- Campo Numero Progressivo: questo campo funziona da contatore dei passaggi che questo

messaggio compie nella rete; infatti conter`a il numero, appunto, progressivo dei passaggi del messaggio.

- Campo Intervallo: questo campo, infine avr`a come contenuto il tempo di campiona-

mento, cio`e il momento in cui verr`a eseguito il campionamento. Questo `e un parametro fondamentale dell’implementazione in quanto si stabilisce sia l’istante di campionamento che il momento in cui si avverr`a lo scambio di dati tra nodi.

Comunicazione SENSORE RACCOGLITORE

Nella comunicazione tra SENSORE e RACCOGLITORE si utilizzano due formati di mes- saggio a seconda della funzionalit`a da compiere. Un sensore generico deve adempiere a tre funzionalit`a:

- inoltrare il messaggio di inizializzazione della rete;

- rispondere al padre, in quanto in questa implementazione alla ricezione del messaggio di inizializzazione, il nodo ricevente segna l’ID mittente come ID padre;

- scambio di dati.

ID mittente ID padre Numero Progressivo Intervallo 2 byte 2 byte 2 byte 4 byte

- - - -

I vari campi saranno riempiti come di seguito:

- Campo ID mittente: ID mittente sar`a l’id del nodo che spedisce.

- Campo ID padre: in questo campo sar`a presente l’id del nodo padre del mittente;

- Campo Numero Progressivo: questo campo funziona da contatore dei passaggi che il mes-

saggio compie nella rete; infatti conter`a il numero progressivo dei passaggi del messaggio.

- Campo Intervallo: questo campo conter`a il valore del parametro di inizializzazione della

rete per ci `o che concerne campionamento e scambio dati.

Nell’ultimo caso, in quello dello scambio di dati, la struttura del pacchetto sar`a: Sourceaddr Action Valore Valore Tempo

2 byte 1 byte 2 byte 2 byte - 0x04 - - I vari campi saranno riempiti come di seguito:

- Sourceaddr: in questo campo sar`a presente l’id del nodo che ha campionato;

- Action: questo campo avr`a valore 0x04, in quanto serve al RACCOGLITORE per capire

che il valore ricevuto in questo messaggio `e un valore da memorizzare;

- Valore: questo campo sar`a riempito con il valore di campionamento del nodo Sourcead- dr;

- Valore Tempo: questo campo sar`a riempito dal valore dell’istante di campionamento del

Comunicazione SENSORE SENSORE

Nella comunicazione tra SENSORE e SENSORE si utilizzano due formati di messaggio a seconda della funzionalit`a da compiere. Il sensore adempie a tre funzionalit`a:

- inoltrare il messaggio di inizializzazione della rete;

- rispondere al padre, in quanto in questa implementazione alla ricezione del messaggio di inizializzazione, il nodo ricevente segna l’ID mittente come ID padre;

- scambio di dati.

Nei primi due casi il formato del pacchetto sar`a:

ID mittente ID padre Numero Progressivo Intervallo 2 byte 2 byte 2 byte 4 byte

- - - -

I vari campi saranno riempiti come di seguito:

- Campo ID mittente: ID mittente sar`a l’id del nodo che spedisce.

- Campo ID padre: in questo campo sar`a presente l’id del nodo padre del mittente;

- Campo Numero Progressivo: questo campo funziona da contatore dei passaggi che il mes-

saggio compie nella rete; infatti conter`a il numero progressivo dei passaggi del messaggio.

- Campo Intervallo: questo campo conter`a il valore del parametro di inizializzazione della

rete per ci `o che concerne campionamento e scambio dati.

Nell’ultimo caso, in quello dello scambio di dati, la struttura del pacchetto sar`a: Sourceaddr Action Valore Valore Tempo

2 byte 1 byte 2 byte 2 byte - 0x04 - - I vari campi saranno riempiti come di seguito:

- Sourceaddr: in questo campo sar`a presente l’id del nodo che ha campionato;

- Action: questo campo avr`a valore 0x04, in quanto il valore ricevuto in questo messaggio

`e un valore da bufferizzare;

- Valore: questo campo sar`a riempito con il valore di campionamento del nodo Sourcead- dr;

- Valore Tempo: questo campo sar`a riempito dal valore dell’istante di campionamento del

nodo Sourceaddr.

Documenti correlati