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