Commits

Konstantinos Aravanis committed eb877d3

THE END

Comments (0)

Files changed (6)

report/appendix.tex

  \label{fig:hello-details}
 \end{figure}
 
-Για τον προγραμματισμό ενός \en Sun SPOT \el απλά επιλέγεται το \en \emph{Deploy} \el και τότε εμφανίζεται στον χρήστη ένα νέο μενού και ένα παράθυρο που του ζητάει να φορτώσει την κατάλληλη σουίτα με το εκτελέσιμο (\en suite \el), δείτε το σχήμα \ref{fig:deploy-1}. Αφού ο χρήστης επιλέξει το εκτελέσιμο καθώς και το \en MIDlet \el (εικόνα \ref{fig:deploy-2}) προς αποστολή, προχωράει στον επαναπρογραμματισμό της συσκευής. Αν επιλέξει μάλιστα να γίνει και επανεκκίνηση της συσκευής, τότε αυτή θα επαναπρογραμματιστεί άμεσα, αλλιώς μετά από κάποια μελλοντική επανεκκίνηση της. 
+Για τον προγραμματισμό ενός \en Sun SPOT \el απλά επιλέγεται το \en \emph{Deploy} \el και τότε εμφανίζεται στον χρήστη ένα νέο μενού και ένα παράθυρο που του ζητάει να φορτώσει την κατάλληλη σουίτα με το εκτελέσιμο (\en suite\el), δείτε το σχήμα \ref{fig:deploy-1}. Αφού ο χρήστης επιλέξει το εκτελέσιμο καθώς και το \en MIDlet \el (εικόνα \ref{fig:deploy-2}) προς αποστολή, προχωράει στον επαναπρογραμματισμό της συσκευής. Αν επιλέξει μάλιστα να γίνει και επανεκκίνηση της συσκευής, τότε αυτή θα επαναπρογραμματιστεί άμεσα, αλλιώς μετά από κάποια μελλοντική επανεκκίνηση της. 
 \begin{figure}[!]
  \centering
  \includegraphics[scale=0.5]{./figures/A/screenshots/deploy-1.png}

report/chapter_4.tex

 \subsection{Αναζήτηση των διαθέσιμων \en Sun SPOT \el στο δίκτυο}
 Παραπάνω αναφέρθηκε ότι ο Διαχειριστής αυτός θα επιτρέπει την αναζήτηση για τα διαθέσιμα \en Sun SPOT \el στο δίκτυο. Αυτό ίσως να φαίνεται περίεργο μιας και στο κεφάλαιο \ref{chap:picopnp}, στην ενότητα \ref{discover-devices-from-controllers}, αναφερθήκαμε στη λειτουργία ενός \emph{Διαχειριστή Ανακάλυψης} από το \en picoPnP\el. Υποχρέωση αυτού όταν καλείται από έναν ελεγκτή, είναι να ανακαλύπτει όλες τις διαθέσιμες συσκευές στο δίκτυο. Παρόλα αυτά οι συσκευές οι οποίες ανακτώνται από αυτόν τον διαχειριστή είναι μόνο αυτές στις οποίες έχει εγκατασταθεί και εκτελείται το \en picoPnP\el. Τα υπόλοιπα \en Sun SPOT \el που μπορεί να βρίσκονται στο δίκτυο και τα οποία δεν έχουν εγκατεστημένο το \en picoPnP \el θα είναι αδύνατο να εντοπιστούν.
 
-Η λειτουργία λοιπόν αυτή, της αναζήτησης των διαθέσιμων \en Sun SPOT \el στο δίκτυο από τον \emph{Διαχειριστή των \en Sun SPOT\el} πρόκειται για αυτή της ανακάλυψης όλων των διαθέσιμων κόμβων στο δίκτυο ανεξάρτητα από την εφαρμογή που μπορεί ο καθένας τους να τρέχει. Το κομμάτι αυτό του διαχειριστή υλοποιείται από τον ελεγκτή προσφέροντας στο χρήστη την δυνατότητα εκπομπής (\en broadcast\el) \en HELLO \el μηνυμάτων, με την χρήση της \en\ttfamily HelloCommand \rmfamily\el, σε ένα βάθος \en hops \el που ο ίδιος επιλέγει. Όταν ένας κόμβος λάβει από έναν ελεγκτή - \en basestation \el - ένα μήνυμα \en HELLO \el τότε απαντάει με ένα σύνολο από δεδομένα τα οποία μπορούν να ανακτηθούν από τον ελεγκτή με την χρήση της κλάσης \en\ttfamily SpotHelloResult \rmfamily\el που παρουσιάστηκε στον πίνακα \ref{tab:ota-commands}.
+Η λειτουργία λοιπόν αυτή, της αναζήτησης των διαθέσιμων \en Sun SPOT \el στο δίκτυο από τον \emph{Διαχειριστή των \en Sun SPOT\el} πρόκειται για αυτή της ανακάλυψης όλων των διαθέσιμων κόμβων στο δίκτυο ανεξάρτητα από την εφαρμογή που μπορεί ο καθένας τους να τρέχει. Το κομμάτι αυτό του διαχειριστή υλοποιείται από τον ελεγκτή προσφέροντας στο χρήστη την δυνατότητα εκπομπής (\en broadcast\el) \en HELLO \el μηνυμάτων, με την χρήση της \en\ttfamily HelloCommand\rmfamily\el, σε ένα βάθος \en hops \el που ο ίδιος επιλέγει. Όταν ένας κόμβος λάβει από έναν ελεγκτή - \en basestation \el - ένα μήνυμα \en HELLO \el τότε απαντάει με ένα σύνολο από δεδομένα τα οποία μπορούν να ανακτηθούν από τον ελεγκτή με την χρήση της κλάσης \en\ttfamily SpotHelloResult \rmfamily\el που παρουσιάστηκε στον πίνακα \ref{tab:ota-commands}.
 
 Στην ουσία αποστέλλονται οι παρακάτω πληροφορίες από τον κάθε κόμβο που λαμβάνει ένα \en HELLO \el μήνυμα:
 \begin{enumerate}
 \end{enumerate}
 Επίσης ενδέχεται να είναι γνωστές και πληροφορίες σχετικά με την τοποθεσία του κόμβου, το υψόμετρο στο οποίο βρίσκεται καθώς και το γεωγραφικό πλάτος και μήκος του.
 
-Παρότι οι παραπάνω πληροφορίες μπορεί να είναι οι περισσότερες περιττές\footnote{Το μεγαλύτερο μέρος των δεδομένων που αποστέλλονται ως απάντηση σε ένα \en HELLO \el μήνυμα μπορεί να θεωρηθεί περιττό μιας και ο απώτερος σκοπός της ανακάλυψης των \en Sun SPOT \el είναι ο επαναπρογραμματισμός ορισμένων από αυτά για την όποια λειτουργία, όπως φαίνεται και στην ενότητα \ref{remote-programming} αρκεί απλά η γνώση της διεύθυνσης και ίσως της μπαταρίας του \en SPOT\el, ώστε να μην επιβαρύνουμε με επιπλέον φόρτο κόμβους ενεργειακά εξουθενωμένους.} δε γίνεται να μειωθεί ο όγκος των δεδομένων που αποστέλλονται αφού η χρήση της εντολής \en HELLO \el είναι και ο μοναδικός τρόπος που παρέχεται από το \en API \el των συσκευών για την ασύρματη ανακάλυψη τους.
+Παρότι οι παραπάνω πληροφορίες μπορεί να είναι οι περισσότερες περιττές\footnote{Το μεγαλύτερο μέρος των δεδομένων που αποστέλλονται ως απάντηση σε ένα \en HELLO \el μήνυμα μπορεί να θεωρηθεί περιττό μιας και ο απώτερος σκοπός της ανακάλυψης των \en Sun SPOT \el είναι ο επαναπρογραμματισμός ορισμένων από αυτά, για την όποια λειτουργία αρκεί απλά η γνώση της διεύθυνσης και ίσως της μπαταρίας του \en SPOT\el, ώστε να μην επιβαρύνουμε με επιπλέον φόρτο κόμβους ενεργειακά εξουθενωμένους.} δε γίνεται να μειωθεί ο όγκος των δεδομένων που αποστέλλονται αφού η χρήση της εντολής \en HELLO \el είναι και ο μοναδικός τρόπος που παρέχεται από το \en API \el των συσκευών για την ασύρματη ανακάλυψη τους.
 
 Ο απαγορευτικός αυτός όγκος των δεδομένων κάνει αδύνατη τη χρήση του παραπάνω τρόπου ανακάλυψης των συσκευών από το \en picoPnP \el κατά τις υπόλοιπες φάσεις του πρωτοκόλλου με αποτέλεσμα η χρήση του \emph{Διαχειριστή Ανακάλυψης} του κεφαλαίου \ref{chap:picopnp} να παραμένει αναγκαία για όλα τα υπόλοιπα στάδια προσφέροντας μία αρκετά αποδοτικότερη ενεργειακά λύση.
 
 \subsection{Ασύρματος προγραμματισμός και απoπρογραμματισμός των \en Sun SPOT \el} \label{remote-programming}
+\begin{figure}[ht]
+\en
+\begin{lstlisting}
+// Ανοιγμα σύνδεσης με τον απομακρυσμένο κόμβο
+SynchronizeCommand(remoteSunSPOT)
+
+// Εγκατάσταση MIDlet στον κόμβο
+FlashAppCommand(SuiteFile, MIDletNumber);
+
+// Επανεκκίνηση του κόμβου, αν ο χρήστης το έχει επιλέξει
+if(reboot == true)
+    RebootCmd;
+
+// Κλείσιμο σύνδεσης με τον απομακρυσμένο κόμβο
+QuitCommand;
+\end{lstlisting}
+\el
+\caption{Προγραμματισμός απομακρυσμένου κόμβου.}
+\label{fig:deploy-ota}
+\end{figure}
+
 Αφού τώρα ο χρήστης εκπέμψει ένα \en HELLO \el μήνυμα με στόχο την αναζήτηση των \en Sun SPOT \el στο δίκτυο, είναι σε θέση είτε να επαναπρογραμματίσει την κάθε συσκευή ξεχωριστά, είτε να την αποπρογραμματίσει. Πιο συγκεκριμένα είναι σε θέση να επιλέξει έναν από τους διαθέσιμους κόμβους του δικτύου και να προβεί στην αποστολή του κατάλληλου \en MIDlet \el προγραμματίζοντας τον κατάλληλα. Επίσης παρέχεται στον χρήστη η δυνατότητα επιλογής επανεκκίνησης ή όχι του κόμβου μετά την αποστολή της καινούργιας εφαρμογής. Το τελευταίο αυτό βήμα κρίνεται απαραίτητο για την επιτυχή ολοκλήρωση της εγκατάστασης της καινούργιας εφαρμογής και την εκκίνηση της. Αν ο χρήστης επιλέξει να μην επανεκκινήσει τον κόμβο, ο \en bootloader \el της συσκευής θα αναλάβει να φορτώσει την καινούργια εφαρμογή μετά από κάποια μελλοντική επανεκκίνηση. Για τον προγραμματισμό των συσκευών γίνεται η χρήση της κλάσης \en\ttfamily FlashAppCommand\rmfamily\el, ενώ για την επανεκκίνηση τους χρησιμοποιείται η \en\ttfamily RebootCmd\rmfamily\el.
 
+\begin{figure}[ht]
+\en
+\begin{lstlisting}
+// Ανοιγμα σύνδεσης με τον απομακρυσμένο κόμβο
+SynchronizeCommand(remoteSunSPOT);
+
+// Εύρεση του συνόλου τον εγκατεστημένων MIDlet στον κόμβο
+GetAvailableSuitesCmd;
+
+// Κλείσιμο σύνδεσης με τον απομακρυσμένο κόμβο
+QuitCommand;
+\end{lstlisting}
+\el
+\caption{Εύρεση εγκατεστημένων εφαρμογών στον απομακρυσμένο κόμβο.}
+\label{fig:suites-ota}
+\end{figure}
+
 Παρόμοια είναι και η διαδικασία αποπρογραμματισμού ενός κόμβου. Πιο συγκεκριμένα, αφού ο ελεγκτής ρωτήσει τον κόμβο για το σύνολο των εγκατεστημένων εφαρμογών σε αυτόν, με την χρήση της \en\ttfamily GetAvailableSuitesCmd\rmfamily\el, προβαίνει σε διαδοχική αποστολή μηνυμάτων απεγκατάστασης του κάθε εκτελέσιμου με την χρήση της \en\ttfamily UndeployCommand\rmfamily\el. Θα πρέπει να σημειωθεί ότι είναι δυνατή η απεγκατάσταση όλων των εκτελέσιμων πλην αυτού που καλείται από τον \en bootloader\el να εκκινήσει κατά το άνοιγμα της συσκευής. 
 
+\begin{figure}[ht]
+\en
+\begin{lstlisting}
+// Ανοιγμα σύνδεσης με τον απομακρυσμένο κόμβο
+SynchronizeCommand(remoteSunSPOT);
+
+// Απεγκατάσταση MIDlet από κόμβο
+UndeployCommand(Suite path);
+
+// Επανεκκίνηση του κόμβου
+RebootCmd;
+
+// Κλείσιμο σύνδεσης με τον απομακρυσμένο κόμβο
+QuitCommand;
+\end{lstlisting}
+\el
+\caption{Αποπρογραμματισμός απομακρυσμένου κόμβου.}
+\label{fig:undeploy-ota}
+\end{figure}
+
 \subsection{Απομακρυσμένη επανεκκίνηση των \en Sun SPOT \el}
 Η απομακρυσμένη επανεκκίνηση πρόκειται για μία λειτουργία που έχει ως στόχο, όπως φάνηκε και από την προηγούμενη ενότητα, την εφαρμογή - εκτέλεση ενός καινούργιου εκτελέσιμου. Επίσης μπορεί ο χρήστης να κρίνει απαραίτητη την επανεκκίνηση μίας συσκευής, σε περίπτωση παρατήρησης τυχόν δυσλειτουργίας της, ως μία ύστατη λύση πριν την λύση του επαναπρογραμματισμού της. Όπως αναφέρθηκε και προηγουμένως για την επανεκκίνηση χρησιμοποιείται η \en\ttfamily RebootCmd\rmfamily\el.
 
+\begin{figure}[ht]
+\en
+\begin{lstlisting}
+// Ανοιγμα σύνδεσης με τον απομακρυσμένο κόμβο
+SynchronizeCommand(remoteSunSPOT);
+
+// Επανεκκίνηση του κόμβου
+RebootCmd;
+
+// Κλείσιμο σύνδεσης με τον απομακρυσμένο κόμβο
+QuitCommand;
+\end{lstlisting}
+\el
+\caption{Επανεκκίνηση απομακρυσμένου κόμβου.}
+\label{fig:reboot-ota}
+\end{figure}
+
 \subsection{Αναβόσβημα των \en Sun SPOT \el για εντοπισμό τους στο χώρο}
 Παρότι οι συσκευές μας ταυτοποιούνται μοναδικά μέσω της \en MAC \el διεύθυνσης τους, πολλές φορές ο τρόπος αυτός ταυτοποίησης μίας συσκευής δεν είναι και τόσο φιλικός προς το χρήστη. 
 
+\begin{figure}[ht]
+\en
+\begin{lstlisting}
+// Ανοιγμα σύνδεσης με τον απομακρυσμένο κόμβο
+SynchronizeCommand(remoteSunSPOT);
+
+// Αναβόσβημα του κόμβου numOfBlinks φορές
+BlinkCommand(numOfBlinks);
+
+// Κλείσιμο σύνδεσης με τον απομακρυσμένο κόμβο
+QuitCommand;
+\end{lstlisting}
+\el
+\caption{Αναβόσβημα απομακρυσμένου κόμβου.}
+\label{fig:blink-ota}
+\end{figure}
+
 Μέσα από αυτή τη λειτουργία του διαχειριστή, ο χρήστης είναι σε θέση να επιλέξει έναν από τους κόμβους που ανακαλύφθηκαν κατά την εκπομπή του \en HELLO \el μηνύματος, δηλαδή να επιλέξει την διεύθυνση αυτού από τον πίνακα με τους ανακαλυφθέντες κόμβους, και να στείλει μία εντολή αναβοσβήματος με τη βοήθεια της \en\ttfamily BlinkCommand\rmfamily\el. Τότε ο κόμβος στον οποίο απεστάλη το μήνυμα αυτό θα αναβοσβήσει 10 φορές τα 8 \en LED \el του βοηθώντας έτσι τον χρήστη στον εντοπισμό της συσκευής στο χώρο και την ευκολότερη ταυτοποίηση της. Η λειτουργία αυτή είναι σαφές ότι χρησιμεύει κυρίως σε δίκτυα με μικρό αριθμό από κόμβους. 
 
 \subsection{Μετονομασία των \en Sun SPOT \el}
-Κάθε κόμβος έχει την δυνατότητα να διαθέτει και από ένα όνομα ώστε να μπορεί ο χρήστης να τον αναγνωρίζει με πιο εύκολο τρόπο. Το όνομα του κάθε κόμβου δεν είναι μοναδικό και μπορεί να έχει δοθεί σε πολλούς κόμβους του δικτύου για αυτό δε θα πρέπει να στηριζόμαστε αποκλειστικά σε αυτό για την αναγνώριση μίας συσκευής, αλλά και στην διευθυνσή της. Η λειτουργία της μετονομασίας ενός \en Sun SPOT \el είναι αυτή που υλοποιεί την απομακρυσμένη μετονομασία ενός κόμβου. Για την επίτευξη του σκοπού αυτού χρησιμοποιείται η  \en\ttfamily SetSystemPropertyCommand\rmfamily\el.
+\begin{figure}[ht]
+\en
+\begin{lstlisting}
+// Ανοιγμα σύνδεσης με τον απομακρυσμένο κόμβο
+SynchronizeCommand(remoteSunSPOT);
+
+// Μετονομασία του κόμβου
+SetSystemPropertyCommand(name = "new name");
+
+// Κλείσιμο σύνδεσης με τον απομακρυσμένο κόμβο
+QuitCommand;
+\end{lstlisting}
+\el
+\caption{Μετονομασία απομακρυσμένου κόμβου.}
+\label{fig:rename-ota}
+\end{figure}
+
+Κάθε κόμβος έχει την δυνατότητα να διαθέτει και από ένα όνομα ώστε να μπορεί ο χρήστης να τον αναγνωρίζει με πιο εύκολο τρόπο. Το όνομα του κάθε κόμβου δεν είναι μοναδικό και μπορεί να έχει δοθεί σε πολλούς κόμβους του δικτύου για αυτό δε θα πρέπει να στηριζόμαστε αποκλειστικά σε αυτό για την αναγνώριση μίας συσκευής, αλλά και στην διευθυνσή της. Η λειτουργία της μετονομασίας ενός \en Sun SPOT \el είναι αυτή που υλοποιεί την απομακρυσμένη μετονομασία ενός κόμβου. Για την επίτευξη του σκοπού αυτού χρησιμοποιείται η  \en\ttfamily SetSystemPropertyCommand\rmfamily\el.

report/chapter_6.tex

 \chapter{Επέκταση Διαχειριστή Γεγονότων} \label{chap:improvments}
 \lettrine[lines=3]{Ο} {} λόγος δημιουργίας των ασυρμάτων δικτύων αισθητήρων και ενεργοποιητών, όπως έχουμε τονίσει επανειλημμένες φορές στην παρούσα εργασία, είναι η δυνατότητα να μπορούν οι συσκευές του δικτύου να αισθάνονται το περιβάλλον και κατάλληλα να δρουν επάνω του. Δεν είναι λίγες όμως οι φορές που δεν μας αρκεί η παραπάνω διαδικασία. Όσο ευχάριστη για τον χρήστη μπορεί να είναι η αυτοματοποίηση της εκτέλεσης πολλών ενεργειών, πολλές φορές ο ίδιος θέλει να παρεμβαίνει και προσωρινά να αλλάζει το περιβάλλον με την χρήση άλλων κανόνων. Είτε επειδή στη παρούσα φάση μπορεί να κάνει για παράδειγμα μία συγκεκριμένη δουλειά, που απαιτεί παραπάνω φωτισμό από ότι συνήθως, είτε για την παρέμβαση σε οποιαδήποτε άλλη συνεργασία αισθητήρων με τους ενεργοποιητές.
 
-Για το λόγο αυτόν κρίθηκε απαραίτητη η δυνατότητα δημιουργίας μίας επιπλέον λειτουργίας. Η λειτουργία αυτή είναι η δυνατότητα του ελεγκτή να μπορεί να ελέγχει άμεσα τους ενεργοποιητές του δικτύου στέλνοντας τους γεγονότα εκτέλεσης συγκεκριμένων λειτουργιών. Στο κεφάλαιο αυτό μελετάται η επέκταση του \emph{Διαχειριστή Γεγονότων} με στόχο την ενσωμάτωσή του και στους ελεγκτές, επεκτείνοντας την λειτουργικότητα του ώστε να μπορούν οι ελεγκτές να παρεμβαίνουν με την ``βία''\footnote{Η παρέμβαση αυτή του ελεγκτή στη λειτουργία των ενεργοποιητών αναφέρεται ως \emph{βίαια} καθώς αυτή καλούνται να λειτουργήσουν διαφορετικά από το τρόπο με τον οποίο τους έχει υποδειχτεί από τις διάφορες συσχετίσεις τους με τους αισθητήρες του δικτύου.} και να καθορίζουν τις ενέργειες των ενεργοποιητών.
+Για το λόγο αυτόν κρίθηκε απαραίτητη η δυνατότητα δημιουργίας μίας επιπλέον λειτουργίας. Η λειτουργία αυτή είναι η δυνατότητα του ελεγκτή να μπορεί να ελέγχει άμεσα τους ενεργοποιητές του δικτύου στέλνοντας τους γεγονότα εκτέλεσης συγκεκριμένων λειτουργιών. Στο κεφάλαιο αυτό μελετάται η επέκταση του \emph{Διαχειριστή Γεγονότων} με στόχο την ενσωμάτωσή του και στους ελεγκτές, επεκτείνοντας την λειτουργικότητα του ώστε να μπορούν οι ελεγκτές να παρεμβαίνουν απευθείας\footnote{Με την παρέμβαση αυτή του ελεγκτή, οι ελεγκτές καλούνται να λειτουργήσουν διαφορετικά από το τρόπο με τον οποίο τους έχει υποδειχτεί από τις διάφορες συσχετίσεις τους με τους αισθητήρες του δικτύου.} και να καθορίζουν τις ενέργειες των ενεργοποιητών.
 
-\section{Εκτέλεση ενεργειών με την ``βία''}
+\section{Απευθείας εκτέλεση ενεργειών από τον ελεγκτή}
 Σε προηγούμενο κεφάλαιο αναφερθήκαμε εκτενώς στην λειτουργία του \emph{Διαχειριστή Γεγονότων} και για αυτό τον λόγο θα προχωρήσουμε στις αλλαγές που γίνονται σε αυτόν για την ενσωμάτωση της καινούργιας λειτουργίας.
 
 \begin{wrapfigure}{r}{0.45\textwidth}
 \en
 \begin{lstlisting}
-EVENT_REPORT message {
+EVENT_FORCED message {
   byte messageType = EVENT_FORCED
   int eventDataLength = το μέγεθος των δεδομένων του γεγονότος
   byte[] eventData = τα δεδομένα που περιγράφουν το γεγονός
 \caption{Το περιεχόμενο ενός μηνύματος \en EVENT\_FORCED\el.}
 \label{fig:event-forced-msg}
 \end{wrapfigure}
-Στην περίπτωση που ένας αισθητήρας αντιληφθεί την αλλαγή της παραμέτρου μίας υπηρεσίας του, η οποία συνδέεται με την υπηρεσία ενός ενεργοποιητή, τότε αποστέλλει ένα κατάλληλο γεγονός στον ενεργοποιητή υποδεικνύοντας του, την αλλαγή που συνέβη και την ενέργεια που θα πρέπει να ακολουθήσει. Παρόμοια, η ανάγκη του χρήστη να επέμβει στέλνοντας μέσω του ελεγκτή το αίτημα του για  αλλαγή της παραμέτρου της υπηρεσίας κάποιου ενεργοποιητή, μπορεί να μεταφραστεί και αυτή σαν την αποστολή ενός γεγονότος. Η μόνη διαφορά έγκειται στο ότι το γεγονός αυτό δεν το αναφέρει κάποιος αισθητήρας και άρα θα πρέπει τα αντίστοιχα πεδία που περιγράφουν το \en ID \el της υπηρεσίας του αισθητήρα και της παραμέτρου του να αντικατασταθούν. Στα πεδία αυτά πλέον εκχωρείται μία καινούργια προεπιλεγμένη τιμή η οποία θεωρείται και ως δεσμευμένη τιμή και δεν θα πρέπει να χρησιμοποιηθεί ως αναγνωριστικό για την υπηρεσία οποιουδήποτε αισθητήρα. Η τιμή αυτή είναι το -1 και βρίσκεται αποθηκευμένη στην μεταβλητή \en EVENT\_FORCED\_BY\_CONTROLLER\el.
+Στην περίπτωση που ένας αισθητήρας αντιληφθεί την αλλαγή της παραμέτρου μίας υπηρεσίας του, η οποία συνδέεται με την υπηρεσία ενός ενεργοποιητή, τότε αποστέλλει ένα κατάλληλο γεγονός στον ενεργοποιητή υποδεικνύοντας του, την αλλαγή που συνέβη και την ενέργεια που θα πρέπει να ακολουθήσει. Παρόμοια, η ανάγκη του χρήστη να επέμβει στέλνοντας μέσω του ελεγκτή το αίτημα του για  αλλαγή της παραμέτρου της υπηρεσίας κάποιου ενεργοποιητή, μπορεί να μεταφραστεί και αυτή σαν την αποστολή ενός γεγονότος. Η μόνη διαφορά έγκειται στο ότι το γεγονός αυτό δεν το αναφέρει κάποιος αισθητήρας και άρα θα πρέπει τα αντίστοιχα πεδία που περιγράφουν το \en ID \el της υπηρεσίας του αισθητήρα και της παραμέτρου του να αντικατασταθούν. Στα πεδία αυτά πλέον εκχωρείται μία καινούργια προεπιλεγμένη τιμή η οποία θεωρείται και ως \emph{δεσμευμένη} τιμή και δεν θα πρέπει να χρησιμοποιηθεί ως αναγνωριστικό για την υπηρεσία οποιουδήποτε αισθητήρα. Η τιμή αυτή είναι το -1 και βρίσκεται αποθηκευμένη στην μεταβλητή \en EVENT\_FORCED\_BY\_CONTROLLER\el.
 
 \begin{figure}[ht!]
  \centering
  \includegraphics{./figures/6/picopnp-event-force.pdf}
- \caption{Αναφορά γεγονότος από ελεγκτή σε ενεργοποιητή.}
+ \caption{Αναφορά γεγονότος από ελεγκτή σε ενεργοποιητή - Απευθείας εκτέλεση ενέργειας.}
  \label{fig:event-forced}
 \end{figure}
 

report/chapter_7.tex

 
 Ακόμα υλοποιήθηκε ένα σύστημα καταγραφής ιστορικών, σχετικά με τα γεγονότα που έχουν διαπιστωθεί στο δίκτυο και τις ενέργειες που έχουν συμβεί. Ακόμα το σύστημα αυτό προσφέρει την δυνατότητα καταγραφής των σφαλμάτων επικοινωνίας που μπορεί να διαπιστωθούν κατά την λειτουργία του πρωτοκόλλου και την δυνατότητα παρακολούθησης των ενεργειακών αποθεμάτων των κόμβων και της εξέλιξης τους στο χρόνο.
 
-Παρότι τα \en WSAN \el έχουν ως στόχο την λειτουργία του στο παρασκήνιο χωρίς την ανάγκη παρέμβασης από τον άνθρωπο, υπάρχουν φορές που κρίνεται απαραίτητη η επέμβαση αυτού στην λειτουργία τους. Φανταστείτε για παράδειγμα την εφαρμογή του μηχανισμού αυτού ως ένα σύστημα διαχείρισης των λειτουργιών ενός κτιρίου, και την περίπτωση κατά την οποία για κάποιον απροσδιόριστο λόγο το σύστημα φωτισμού του κτιρίου δεν λειτουργεί σωστά. Σε αυτή τη περίπτωση κρίνεται απαραίτητη η παρέμβαση από τον χρήστη για την εκτέλεση από τους ενεργοποιητές των σωστών λειτουργιών που θα διορθώσουν τα επίπεδα φωτεινότητας. Το παραπάνω μπορεί να μην φαίνεται και τόσο σημαντικό, αλλά σκεφτείτε ότι τα \en WSAN \el χρησιμοποιούνται και σε πολλές κρίσιμες εφαρμογές όπως στην ιατρική για τον έλεγχο της κατάστασης των ασθενών, από τον στρατό για την προληπτική παρακολούθηση, από την πυροσβεστική για ανίχνευση καταστροφικών πυρκαγιών και την δημιουργία κατάλληλων σχεδίων δράσης, αλλά και σε πολλές άλλες. Για το λόγο αυτό επεκτάθηκε η δυνατότητα αποστολής συμβάντων πέρα από τους αισθητήρες πλέον και από του ελεγκτές κατόπιν παρέμβασης του χρήστη. Έτσι, πλέον ο χρήστης είναι σε θέση να παρεμβαίνει και να αλλάζει την κατάσταση των ενεργοποιητών.
+Παρότι τα \en WSAN \el έχουν ως στόχο την λειτουργία τους στο παρασκήνιο χωρίς την ανάγκη παρέμβασης από τον άνθρωπο, υπάρχουν φορές που κρίνεται απαραίτητη η επέμβαση αυτού στην λειτουργία τους. Φανταστείτε για παράδειγμα την εφαρμογή του μηχανισμού αυτού ως ένα σύστημα διαχείρισης των λειτουργιών ενός κτιρίου, και την περίπτωση κατά την οποία για κάποιον απροσδιόριστο λόγο το σύστημα φωτισμού του κτιρίου δεν λειτουργεί σωστά. Σε αυτή τη περίπτωση κρίνεται απαραίτητη η παρέμβαση από τον χρήστη για την εκτέλεση από τους ενεργοποιητές των σωστών λειτουργιών που θα διορθώσουν τα επίπεδα φωτεινότητας. Το παραπάνω μπορεί να μην φαίνεται και τόσο σημαντικό, αλλά σκεφτείτε ότι τα \en WSAN \el χρησιμοποιούνται και σε πολλές κρίσιμες εφαρμογές όπως στην ιατρική για τον έλεγχο της κατάστασης των ασθενών, από τον στρατό για την προληπτική παρακολούθηση, από την πυροσβεστική για ανίχνευση καταστροφικών πυρκαγιών και την δημιουργία κατάλληλων σχεδίων δράσης, αλλά και σε πολλές άλλες. Για το λόγο αυτό επεκτάθηκε η δυνατότητα αποστολής συμβάντων πέρα από τους αισθητήρες πλέον και από του ελεγκτές κατόπιν παρέμβασης του χρήστη. Έτσι, πλέον ο χρήστης είναι σε θέση να παρεμβαίνει και να αλλάζει την κατάσταση των ενεργοποιητών.
 
 Παρόλα αυτά τα παραπάνω δεν είναι παρά ένα μικρό υποσύνολο όλων εκείνων των βελτιώσεων που μπορούν και οφείλουν να γίνουν στο \en picoPnP\el.
 
 \subsection{Επεκτάσεις του \en picoPnP\el}
 Τρεις είναι η βασικές επεκτάσεις που θα μπορούσαν να δρομολογηθούν σε επόμενες εκδόσεις του \en picoPnP\el.
 
-Πρώτον μπορεί να αναπτυχθεί ένας τρόπος \emph{συσταδοποίησης} όμοιων κόμβων και υπηρεσιών με στόχο την ακόμα μεγαλύτερη συνεργασία στο δίκτυο. Αν μιλάμε για αισθητήρες αυτοί θα μπορούν συνεργαζόμενοι και εκλέγοντας κάποιον ως αρχηγό να αποφανθούν ακριβέστερα για την κατάσταση του περιβάλλοντος παρέχοντας πιο αξιόπιστα αποτελέσματα ή και αποτελέσματα που προηγουμένως δεν ήταν δυνατά, όπως η μέση θερμοκρασία σε ένα κτίριο. Οι ενεργοποιητές παρόμοια θα μπορούν να συνεργαστούν για την εκτέλεση πιο περίπλοκων λειτουργιών οι οποίες απαιτούν την παρουσία περισσότερων ενεργοποιητών.
+Πρώτον μπορεί να αναπτυχθεί ένας τρόπος \emph{συσταδοποίησης} όμοιων κόμβων και υπηρεσιών με στόχο την ακόμα μεγαλύτερη συνεργασία στο δίκτυο. Αν μιλάμε για αισθητήρες αυτοί θα μπορούν συνεργαζόμενοι και εκλέγοντας κάποιον ως αρχηγό να αποφανθούν ακριβέστερα για την κατάσταση του περιβάλλοντος, παρέχοντας πιο αξιόπιστα αποτελέσματα, ή και αποτελέσματα που προηγουμένως δεν ήταν δυνατά, όπως η μέση θερμοκρασία σε ένα κτίριο. Οι ενεργοποιητές, παρόμοια, θα μπορούν να συνεργαστούν για την εκτέλεση πιο περίπλοκων λειτουργιών, οι οποίες απαιτούν την παρουσία περισσότερων ενεργοποιητών.
 
 Μία ακόμη επέκταση θα μπορούσε να είναι η παροχή ενός επιπέδου \emph{δρομολόγησης} το οποίο να αναλαμβάνει να αντικαταστήσει την κλασσική \en multihop \el επικοινωνία στο δίκτυο, που σπαταλάει αρκετή ενέργεια. Σε περίπτωση μάλιστα σχετικής στατικότητας των κόμβων στο χώρο, αυτή η επέκταση θα μπορούσε να αυξήσει αρκετά τον χρόνο ζωής του δικτύου μας.
 
 Η τρίτη επέκταση στην οποία αναφερθήκαμε, πρόκειται για την μαζική διανομή προγραμμάτων στο δίκτυο, με στόχο τον επαναπρογραμματισμό του, όπως αυτός παρουσιάστηκε στο κεφάλαιο \ref{chap:ota}. Τα \en Sun SPOT \el μάλιστα, μας παρέχουν μία εφαρμογή του \en Deluge \el για την διανομή κώδικα, η οποία θα μπορούσε να χρησιμοποιηθεί. Παρόλα αυτά κρύβονται διάφορα προβλήματα, όπως το πως θα γίνεται η επιλογή των προγραμμάτων προς εγκατάσταση από τους κόμβους και η αποστολή τους μόνο προς της ενδιαφερόμενες συσκευές. Μη ξεχνάτε άλλωστε, ότι τα δίκτυα που μελετάμε, συνήθως απαρτίζονται από διαφορετικούς τύπους αισθητήρων (φωτεινότητας, θερμοκρασίας, υγρασίας κλπ) και ενεργοποιητών, που λειτουργούν με διαφορετικές εφαρμογές. 
 
 \subsection{Εφαρμογές του \en picoPnP\el}
-Το \en picoPnP \el κατασκευάστηκε με όραμα την εφαρμογή του σε ένα μεγάλο σύνολο από \en WSAN\el, παρόλα αυτά, αυτή τη στιγμή είναι σε θέση να λειτουργήσει σε ένα υποσύνολο δικτύων, όπως αυτά των συστημάτων διαχείρισης κτιρίων (\en Building Managment Systems - BMS \el) και αυτών για την αυτοματοποίηση της διαδικασίας άρδευσης σε γεωργικές καλλιέργειες. Τόσο στα \en BMS \el όσο και για την άρδρευση είναι δυνατή η άμεση εφαρμογή του πρωτοκόλλου αυτού, καθώς πρόκειται για δύο από τις λίγες εφαρμογές που δεν απαιτούν την συνεργασία ενός συνόλου από αισθητήρες με ένα σύνολο από ενεργοποιητές (η συσταδοποίηση που αναφέραμε παραπάνω). Επίσης και στις δύο των περιπτώσεων θα μπορούσαμε να υποθέσουμε ότι έχουμε άπειρα ενεργειακά αποθέματα, καθώς στην μεν πρώτη περίπτωση μπορούμε να διαθέτουμε πρόσβαση σε κάποια παροχέα ενέργειας (π.χ. μπρίζα), ενώ στη δεύτερη περίπτωση θα μπορούσαν οι κόμβοι μας να φορτίζονται κατά την διάρκεια της μέρας μέσω ηλιακών συλλεκτών. Αυτές οι εφαρμογές θα μας δώσουν τα αποτελέσματα εκείνα που χρειαζόμαστε για να εξάγουμε συμπεράσματα σχετικά με την λειτουργία του \en picoPnP\el, υποδεικνύοντας μας τα κομμάτια εκείνα που θα πρέπει να βελτιώσουμε, επεκτείνοντας έτσι την εφαρμογή του πρωτοκόλλου και σε ποιο απαιτητικά δίκτυα.
+Το \en picoPnP \el κατασκευάστηκε με όραμα την εφαρμογή του σε ένα μεγάλο σύνολο από \en WSAN\el, παρόλα αυτά, αυτή τη στιγμή είναι σε θέση να λειτουργήσει σε ένα υποσύνολο δικτύων, όπως αυτά των συστημάτων διαχείρισης κτιρίων (\en Building Managment Systems - BMS \el) και αυτών για την αυτοματοποίηση της διαδικασίας άρδευσης σε γεωργικές καλλιέργειες. Τόσο στα \en BMS \el όσο και για την άρδρευση είναι δυνατή η άμεση εφαρμογή του πρωτοκόλλου αυτού, καθώς πρόκειται για δύο από τις λίγες εφαρμογές που δεν απαιτούν την συνεργασία ενός συνόλου από αισθητήρες με ένα σύνολο από ενεργοποιητές (η συσταδοποίηση που αναφέραμε παραπάνω). Επίσης και στις δύο των περιπτώσεων θα μπορούσαμε να υποθέσουμε ότι έχουμε άπειρα ενεργειακά αποθέματα, καθώς στην μεν πρώτη περίπτωση μπορούμε να διαθέτουμε πρόσβαση σε κάποια παροχέα ενέργειας (π.χ. πρίζα), ενώ στη δεύτερη περίπτωση θα μπορούσαν οι κόμβοι μας να φορτίζονται κατά την διάρκεια της μέρας μέσω ηλιακών συλλεκτών. Αυτές οι εφαρμογές θα μας δώσουν τα αποτελέσματα εκείνα που χρειαζόμαστε για να εξάγουμε συμπεράσματα σχετικά με την λειτουργία του \en picoPnP\el, υποδεικνύοντας μας τα κομμάτια εκείνα που θα πρέπει να βελτιώσουμε, επεκτείνοντας έτσι την εφαρμογή του πρωτοκόλλου και σε ποιο απαιτητικά δίκτυα.

report/thesis.pdf

Binary file modified.

report/titlepage.tex

 \vspace{.1cm}
 {\large Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών \\  και Πληροφορικής} \\
 \vspace{3cm} 
-{\large Διπλωματική Εργασία} \\
-\vspace{2cm}
-\textbf{{\huge \textsf{Μελέτη, Σχεδιασμός \& Ανάπτυξη Υβριδικών Ασυρμάτων Δικτύων Αισθητήρων και Ενεργοποιητών}}}\\
+{Διπλωματική Εργασία} \\
+\vspace{1cm}
+\textbf{{\Large \textsf{Μελέτη, Σχεδιασμός \& Ανάπτυξη Συστήματος Διαχείρισης Ασύρματων Δικτύων Αισθητήρων και Ενεργοποιητών}}}\\
 \vspace{2cm}
 {\large Αραβανής Α. Κωνσταντίνος} \\
 \small{Α.Μ. 3628} \\
-\vspace{2.5cm}
+\vspace{4.5cm}
 {\large Επιβλέπων: Παύλος Σπυράκης, Καθηγητής}\\
 {\large Συνεπιβλέπων: Δρ. Ιωάννης Χατζηγιαννάκης}\\
 \vspace{2cm}