venerdì 20 luglio 2007

[Progetto] Aggiornamento Traccia + Analisi dei requisiti.

Politecnico di Bari
Corso di laurea in Ingegneria Informatica
Docente: Vitoantonio Bevilacqua


Domo3.2
Simulatore centralina domotica

Traccia

Una ditta specializzata in domotica, ha commissionato la creazione di un software che sarà distribuito a fini dimostrativi a possibili clienti.
Il software dovrà simulare il funzionamento di una delle loro centrali per la gestione della casa. La ditta ha inoltre indicato il prodotto che bisognerà simulare:

Domo3.2 Security&Confort.

Questa centrale gestisce le seguenti funzioni e presenta un pannello tuchscreen per l'interfacciamento e il settaggio della centrale stessa:

- Antifurto collegato a sensori per la porta d'ingresso.
- Gestione dell'illuminazione regolabile da remoto.
- Apertura e chiusura Gas e Acqua.
- Accensione e spegnimento termosifoni/condizionatore regolabile.
- Informazioni sullo stato dei dispositivi relativi ad acqua, elettricità e gas.
- Possibilità di avviare una routine di “abbandono abitazione”, che prevede delle
operazioni pianificate come:
- Chiusura valvole Acqua/Gas
- Spegnimento illuminazione in tutta la casa
- Attivazione antifurto
- Possibilità di avviarne una d’entrata, che esegue il duale delle precedenti funzioni,
eccetto la disattivazione dell’antifurto, che deve essere eseguita manualmente

Infine, la ditta, indica che il software deve puntare a far capire all'utente le vere comodità del sistema, dunque informandolo sulle potenzialità con messaggi informativi.
I potenziali clienti saranno invitati ad inviare alla ditta, la lista delle attività simulate(che dovrà essere creata in automatico), in modo da ottimizzare sempre al meglio i loro prodotti.


Analisi dei requisiti

Il software simulerà la gestione in realtime, ma con eventi fittizi avviati dall'utente.
Sarà visualizzata una piantina di default con una serie di oggetti standard: termosifoni, lampade, condizionatore e sensori.
Saranno sempre visibili, lo stato dei dispositivi relativi ad acqua, elettricità e gas in un riquadro dedicato. In un altro riquadro, sarà visualizzata la temperatura ambientale.
Per rendere la simulazione più realistica, attribuiremo un valore che simulerà la temperatura iniziale(20°C) che sarà mitigata da eventuali dispositivi termici in funzione. L'utente potrà dunque scegliere che temperatura desidera avere in casa e di conseguenza saranno attivati i dispositivi termici(termosifone/condizioni).
Altri eventi, come richiesto espressamente, saranno: accensione o spegnimento di luci e chiusura o apertura valvole per l'irroramento di Gas e Acqua.
Saranno inoltre implementate, una routine di istruzioni che simulerà le operazioni eseguite di default quando gli abitanti lasciano la casa: chiusura valvole di acqua e gas, attivazione antifurto, attivazione sensori della porta e spegnimento di tutte le luci. E Il duale di questa routine, che procederà, se disattivato l'antifurto, alla riabilitazione dei servizi, alla disattivazione dei sensori alla porta e all’accensione delle luci.
Dal pannello generale, che si sta simulando, sarà inoltre possibile regolare l’intensità luminosa delle luci(singolarmente o contemporaneamente).
In tal caso sarà visibile anche la variazione di potenza assorbita.
Essendo un software di natura illustrativa, ma soprattutto pubblicitaria, in basso saranno visualizzate delle frasi fornite dall’ufficio marketing della ditta e inserite in un file (“infomsg.txt”).
Inoltre sarà creato un file di log (“DomoLog.txt”) che raccoglierà tutte le informazioni eseguite.

Il software(installazione)

Il software presenta una piantina standard realizzata in Macormedia Flash 8, che contiene degli oggetti dinamici opportunamente gestiti dal software realizzato in Visual C++ in linguaggio C++.
Nella schermata è presente(in basso a destra) un box informativo, che visualizza delle frasi lette da un file(“infomsg.txt”) che dovrà essere posizionato nella directory “C:\”.
Lo stesso vale per il file “fileswf.swf”(mappa in Flash), entrambi presenti nella cartella “file esterni”.
Durante l’esecuzione, tutti gli oggetti derivati dalla classe DispIn, o da sue classi figlie, creano un file da cui rilevano il valore che sarà passato alla centralina.
Questa procedura è stata adottata per simulare la lettura di un dispositivo di conversione analogico/digitale, che a sua volta riceve un segnale analogico da eventuali periferiche.
Es.: Sensore porta di ingresso
Ipotizzando un sensore elettromagnetico sui cui terminali è rilevata una tensione che indica se la porta è aperta, nella realtà avremmo un dispositivo che convertirà la tensione in un valore digitale(in questo caso s tratterà di un bit Booleano).
Nella nostra simulazione, il risultato della conversione è presente nel file Sensore.txt(che sarà creato al momento della costruzione dell’ oggetto).
Il file DomoLog.txt, viene creato automaticamente nella directory “C:\”, come i file relativi ai dispositivi di Input, appena descritti.I file non vengono cancellati al termine del programma.
La password per disattivare l’antifurto è 1234!

Prima della compilazione del progetto “VirtualDomoMFC.dsw” assicurarsi che siano settate le seguenti impostazione del compilatore:
Project->Setting->C/C++
- Precompiled headers:
· Not Using Precompiled headers
- Code generation
Use run-time library
§ Debug multithread DLL

Non è stato possibile eliminare un problema che riguarda la chiusura del programma,
infatti chiudendolo, si verifica un errore che si pressupone sia riconducibile alla deallocazione degli oggetti Domo(class GESTIONE) e Virtual(class SIMULAZIONE).
Infine, di seguito è elencata una funzionalità non integrata nel programma, per motivi tempistici, ma in ogni modo interessante:

- Gestione di una lista di eventi pianificati:

Lista allocata dinamicamente, avente come nodo i seguenti campi:
- puntatore a successivo
- Data
- Ora
- puntatore a funzione

In pratica l’utente avrebbe potuto inserire delle operazioni pianificate es:Accendi termosifoni alle ore 20.00 del 20/07/2007.Il sw nella funzione CicloCentralina avrebbe controllato il primo elemento della lista confrontandolo con l’orario e la data del sistema(la lista sarebbe stata caricata in modo ordinato).


Spero che comunque sia un progetto ben sviluppato.

2 commenti:

Anonimo ha detto...

ciao, quando provo a lanciarlo dice che non trova MSVCIRTD.dll. Come risolvo il problema?
saluti.

gabriele2_89@yahoo.it

Miki ha detto...

che compilatore usi?