Tesi Robotica Analisi, progettazione e implementazione... | Page 107
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 107 — #107
i
5.1. PACKAGE STRUCT
i
107
Algoritmo 5.3 Struct: data struct
1
2
3
4
5
6
typedef enum{
NA,
RED,
GREEN,
BLUE
}Channel deriving (Bits, Eq);
7
8
9
10
11
12
typedef struct{
Bit#(8) red;
Bit#(8) green;
Bit#(8) blue;
}Pixel deriving (Bits, Eq);
13
14
15
16
17
typedef struct{
Channel dir;
BitF addr;
}DirAddr deriving (Bits, Eq);
18
19
20
21
22
23
typedef struct{
BitF disp;
BitF addr;
Channel color;
}DispAddr deriving (Bits, Eq);
che restituisce come immagine (scala a parte):
A questo punto non rimane che descrivere le strutture definite (Alg:5.3). In
particolare si hanno a disposizione:
• Una variabile enumeratore di tipo Channel per distinguere i colori in formato RGB, grazie al primo valore inutilizzato, RED corrisponderà a 1,
GREEN a 2 e BLUE a 3. Per sintetizzare questo tipo di dato occorrono
2 bit a prescindere dal fatto di inserire o no il valore fake;
• Una struttura dati di tipo Pixel per contenere le 3 componenti RGB da 8
bit ciascuna;
• Una struttura dati di tipo DirAddr, utilizzata nella fase di backtracking,
per mantenere informazioni su indirizzo e direzione seguita;
i
i
i
i