1. Konstantinos Aravanis
  2. picoPnP

Commits

Konstantinos Aravanis  committed bd0334b

Report: Some refactoring

  • Participants
  • Parent commits 763c30e
  • Branches default

Comments (0)

Files changed (10)

File report/chapter_1.tex

View file
 
 Στο Κεφάλαιο \ref{chap:improvments} παρατίθενται ορισμένες βελτιώσεις που έγιναν πάνω στο πρωτόκολλο με στόχο την βελτίωση του \emph{Διαχειριστή Γεγονότων} και την επέκταση των λειτουργιών που παρέχονται από το \en picoPnP\el. 
 
-Στο Κεφάλαιο \ref{chap:bms-agriculture} % todo
-
 Τέλος στο Κεφάλαιο \ref{chap:conclusion} συνοψίζονται τα συμπεράσματα τα οποία προκύπτουν από αυτή την εργασία και παρουσιάζονται κάποιες μελλοντικές προεκτάσεις που βελτιώνουν την παρούσα αρχιτεκτονική.

File report/chapter_2.tex

View file
 \chapter{Σύνοψη του πρωτοκόλλου \en picoPnP \el} \label{chap:picopnp}
 \lettrine[lines=3]{Τ} {} ο \en picoPnP \el πρόκειται για ένα πρωτόκολλο που σαν στόχο έχει την δημιουργία ενός επιπέδου μεταξύ υλισμικού και εφαρμογών, το οποίο θα διευκολύνει τη διαδικασία δημιουργίας εφαρμογών για δίκτυα από ασύρματους αισθητήρες και ενεργοποιητές και θα προσφέρει τα κατάλληλα εργαλεία για τη διαχείριση αυτού του δικτύου. Πιο συγκεκριμένα, ο χρήστης με αυτό θα είναι σε θέση να διαχειρίζεται και να χρησιμοποιεί με συνεργατικό τρόπο τους αισθητήρες και τους ενεργοποιητές. Παράλληλα του προσφέρει όλο το σύνολο των απαιτούμενων λειτουργιών, αφήνοντας στον προγραμματιστή μόνο την υλοποίηση των τελικών εφαρμογών που εκτελούνται από τους αισθητήρες και ενεργοποιητές.
 
-Στόχος του πρωτοκόλλου είναι αρχικά ο αυτοματισμός κάποιων λειτουργιών σε εσωτερικούς χώρους, όπως το οικιακό περιβάλλον αλλά και το περιβάλλον εργασίας σε γραφεία. Επίσης μία ακόμα πιθανή και ίσως πιο άμεση εφαρμογή του θα ήταν για την διαχείριση και αυτοματοποίηση συστημάτων άρδευσης στην αγροτική καλλιέργεια. Σε αυτά τα ζητήματα παρόλα αυτά θα αναφερθούμε στο Κεφάλαιο \ref{chap:bms-agriculture}.
+Στόχος του πρωτοκόλλου είναι αρχικά ο αυτοματισμός κάποιων λειτουργιών σε εσωτερικούς χώρους, όπως το οικιακό περιβάλλον αλλά και το περιβάλλον εργασίας σε γραφεία. Επίσης μία ακόμα πιθανή και ίσως πιο άμεση εφαρμογή του θα ήταν για την διαχείριση και αυτοματοποίηση συστημάτων άρδευσης στην αγροτική καλλιέργεια.
 
 Μέχρι ώρας οι διάφορες λύσεις που έχουν προταθεί και αξίζουν την παρατήρηση είναι αυτές της γεφύρωσης των συσκευών αυτών με το \en UPnP \el πράγμα που παρότι αρχικά μπορεί να ακούγεται αρκετά ελπιδοφόρο, κρύβει μέσα του πολλά μειονεκτήματά που οδήγησαν στη δημιουργία ενός νέου πρωτοκόλλου όπως αυτό του \en picoPnP\el. 
 
 \item Η χρονική στιγμή - \en timestamp \el - κατά την οποία έγινε αντιληπτό το συμβάν από τον αισθητήρα.
 \end{enumerate}
 
-Κάποιος θα μπορούσε να αναρωτηθεί γιατί στέλνεται όλος αυτός ο όγκος δεδομένων ενώ θα μπορούσε απλά να σταλεί μόνο η προς εκτέλεση ενέργεια από τον ενεργοποιητή. Κάτι τέτοιο δεν θα αρκούσε στην πραγματικότητα όμως. \textbf{Η γνώση της χρονικής στιγμής χρειάζεται ώστε να είναι δυνατόν να γνωρίζει ένας ενεργοποιητής αν θα δράσει. Πιο συγκεκριμένα, ας υποθέσουμε ότι έχουμε δύο διαφορετικούς αισθητήρες που συσχετίζουν κάποια υπηρεσία τους με την ίδια υπηρεσία ενός ενεργοποιητή. Έστω τώρα ότι γίνεται αντιληπτό ένα συμβάν από την αντίστοιχη υπηρεσία του \emph{ΑΙΣΘΗΤΗΡΑ 1} την χρονική στιγμή $t_0$ και από τον \emph{ΑΙΣΘΗΤΗΡΑ 2} ένα άλλο συμβάν την χρονική στιγμή $t_0 + dt$. Είναι προφανές ότι θα πρέπει να εκτελεστεί η ανάλογη ενέργεια από τον ενεργοποιητή αρχικά για το συμβάν που διαπιστώνεται την χρονική στιγμή $t_0$ και κατόπιν για αυτό της χρονικής στιγμής $t_0 + dt$. Υπάρχει όμως περίπτωση να καθυστερήσει η παράδοση της πρώτης αναφοράς. Γνωρίζοντας όμως το \en timestamp \el ο ενεργοποιητής θα είναι σε θέση να απορρίψει την εκτέλεση του πρώτου συμβάντος μετά από αυτό του δεύτερου χρονικά.} Όσον αφορά τα \en ID \el και τις παραμέτρους των συσχετιζόμενων υπηρεσιών, χρειάζονται ώστε να εξασφαλιστεί ότι η ενέργεια που οφείλει να εκτελέσει ο ενεργοποιητής είναι σωστά ορισμένη και δεν υπάρχει ασυνέπεια μεταξύ αισθητήρα - ενεργοποιητή.
+Κάποιος θα μπορούσε να αναρωτηθεί γιατί στέλνεται όλος αυτός ο όγκος δεδομένων ενώ θα μπορούσε απλά να σταλεί μόνο η προς εκτέλεση ενέργεια από τον ενεργοποιητή. Κάτι τέτοιο δεν θα αρκούσε στην πραγματικότητα όμως. Η γνώση της χρονικής στιγμής χρειάζεται ώστε να είναι δυνατόν να γνωρίζει ένας ενεργοποιητής αν θα δράσει. Πιο συγκεκριμένα, ας υποθέσουμε ότι έχουμε δύο διαφορετικούς αισθητήρες που συσχετίζουν κάποια υπηρεσία τους με την ίδια υπηρεσία ενός ενεργοποιητή. Έστω τώρα ότι γίνεται αντιληπτό ένα συμβάν από την αντίστοιχη υπηρεσία του \emph{ΑΙΣΘΗΤΗΡΑ 1} την χρονική στιγμή $t_0$ και από τον \emph{ΑΙΣΘΗΤΗΡΑ 2} ένα άλλο συμβάν την χρονική στιγμή $t_0 + dt$. Είναι προφανές ότι θα πρέπει να εκτελεστεί η ανάλογη ενέργεια από τον ενεργοποιητή αρχικά για το συμβάν που διαπιστώνεται την χρονική στιγμή $t_0$ και κατόπιν για αυτό της χρονικής στιγμής $t_0 + dt$. Υπάρχει όμως περίπτωση να καθυστερήσει η παράδοση της πρώτης αναφοράς. Γνωρίζοντας όμως το \en timestamp \el ο ενεργοποιητής θα είναι σε θέση να απορρίψει την εκτέλεση του πρώτου συμβάντος μετά από αυτό του δεύτερου χρονικά. Όσον αφορά τα \en ID \el και τις παραμέτρους των συσχετιζόμενων υπηρεσιών, χρειάζονται ώστε να εξασφαλιστεί ότι η ενέργεια που οφείλει να εκτελέσει ο ενεργοποιητής είναι σωστά ορισμένη και δεν υπάρχει ασυνέπεια μεταξύ αισθητήρα - ενεργοποιητή.
 
 Όταν λοιπόν ο ενεργοποιητής λάβει μία αναφορά από κάποιον αισθητήρα και ελέγξει την ορθότητα του γεγονότος βάσει του αντίστοιχου συσχετισμού\footnote{Ελέγχεται αν η υπηρεσία που αναφέρεται από τον αισθητήρα είναι πραγματικά συσχετισμένη με την αντίστοιχη υπηρεσία του ενεργοποιητή, καθώς επίσης και η συσχέτιση μεταξύ αυτών των δύο αναφερόμενων παραμέτρων} που οφείλει να έχει καταχωρημένο στον πίνακα συσχετίσεων του, ο \emph{Διαχειριστής Γεγονότων} θα καλέσει την υπηρεσία του ενεργοποιητή με την αντίστοιχη παράμετρο προς εκτέλεση. Αν πάλι διαπιστωθεί ασυνέπεια μεταξύ των αναφερόμενων υπηρεσιών και παραμέτρων και αυτών που είναι καταχωρημένων στον ενεργοποιητή, το συμβάν θα αγνοηθεί. Στο σχήμα \ref{fig:event-report} συνοψίζεται η παραπάνω διαδικασία. 
 

File report/chapter_3.tex

View file
 \begin{figure}[ht!]
  \centering
  \includegraphics[scale=0.4]{./figures/3/traditional-vs-rateless.png}
- \caption{Στο σχήμα αυτό παρουσιάζεται ένα παράδειγμα στο οποίο διαπιστώνεται το μέγιστο δυνατό κέρδος που μπορεί να έχει κανείς με την χρήση των \en rateless codes\el. Πρόκειται για ένα δίκτυο από $n$ κόμβους, ο κάθε ένας από τους οποίους χάνει και από ένα διαφορετικό πακέτο κατά την διαδικασία της διανομής δεδομένων από την πηγή. Ενώ στο παραδοσιακό μοντέλο το σύνολο των μηνυμάτων που θα πρέπει να σταλούν είναι $n$ μηνύματα ελέγχου και $n$ μηνύματα δεδομένων, με την χρήση των \en rateless codes \el απαιτούνται στην καλύτερη των περιπτώσεων ένα μήνυμα ελέγχου ενώ με ένα ακόμα νέο πακέτο δεδομένων όλοι οι κόμβοι θα είναι σε θέση να ανακτήσουν τα δεδομένα τους.}
+ \caption[Παραδοσιακή μετάδοση έναντι μετάδοσης με χρήση \en ratelesss codes\el.]{Στο σχήμα αυτό παρουσιάζεται ένα παράδειγμα στο οποίο διαπιστώνεται το μέγιστο δυνατό κέρδος που μπορεί να έχει κανείς με την χρήση των \en rateless codes\el. Πρόκειται για ένα δίκτυο από $n$ κόμβους, ο κάθε ένας από τους οποίους χάνει και από ένα διαφορετικό πακέτο κατά την διαδικασία της διανομής δεδομένων από την πηγή. Ενώ στο παραδοσιακό μοντέλο το σύνολο των μηνυμάτων που θα πρέπει να σταλούν είναι $n$ μηνύματα ελέγχου και $n$ μηνύματα δεδομένων, με την χρήση των \en rateless codes \el απαιτούνται στην καλύτερη των περιπτώσεων ένα μήνυμα ελέγχου ενώ με ένα ακόμα νέο πακέτο δεδομένων όλοι οι κόμβοι θα είναι σε θέση να ανακτήσουν τα δεδομένα τους.}
  \label{fig:traditional-vs-rateless}
 \end{figure}
 

File report/chapter_4.tex

View file
 Μέσα από αυτή τη λειτουργία του διαχειριστή, ο χρήστης είναι σε θέση να επιλέξει έναν από τους κόμβους που ανακαλύφθηκαν κατά την εκπομπή του \en HELLO \el μηνύματος, δηλαδή να επιλέξει την διεύθυνση αυτού από τον πίνακα με τους ανακαλυφθέντες κόμβους, και να στείλει μία εντολή αναβοσβήματος με τη βοήθεια της \en\ttfamily BlinkCommand\rmfamily\el. Τότε ο κόμβος στον οποίο απεστάλη το μήνυμα αυτό θα αναβοσβήσει 10 φορές τα 8 \en LED \el του βοηθώντας έτσι τον χρήστη στον εντοπισμό της συσκευής στο χώρο και την ευκολότερη ταυτοποίηση της. Η λειτουργία αυτή είναι σαφές ότι χρησιμεύει κυρίως σε δίκτυα με μικρό αριθμό από κόμβους. 
 
 \subsection{Μετονομασία των \en Sun SPOT \el}
-
-
-\section{Ανακεφαλαίωση}
+Κάθε κόμβος έχει την δυνατότητα να διαθέτει και από ένα όνομα ώστε να μπορεί ο χρήστης να τον αναγνωρίζει με πιο εύκολο τρόπο. Το όνομα του κάθε κόμβου δεν είναι μοναδικό και μπορεί να έχει δοθεί σε πολλούς κόμβους του δικτύου για αυτό δε θα πρέπει να στηριζόμαστε αποκλειστικά σε αυτό για την αναγνώριση μίας συσκευής, αλλά και στην διευθυνσή της. Η λειτουργία της μετονομασίας ενός \en Sun SPOT \el είναι αυτή που υλοποιεί την απομακρυσμένη μετονομασία ενός κόμβου. Για την επίτευξη του σκοπού αυτού χρησιμοποιείται η  \en\ttfamily SetSystemPropertyCommand\rmfamily\el.

File report/chapter_5.tex

View file
 }
 \end{lstlisting}
 \el
-\caption{Το περιεχόμενο των μηνυμάτων \en EVENT\_LOGS\_GET\el, \en COM\_ERROR\_LOGS\_GET \el και \en BATTERY\_LOGS\_GET\el.}
+\caption{Το περιεχόμενο των μηνυμάτων \en EVENT\_LOGS\_GET\el, \en COM\_ERROR\_ LOGS\_GET \el και \en BATTERY\_LOGS\_GET\el.}
 \label{fig:logs-get-msg}
 \end{wrapfigure}
 Όταν τώρα ο χρήστης θέλει να ανακτήσει τις καταγραφές από έναν απομακρυσμένο κόμβο στέλνει ένα \en GET \el μήνυμα ανάλογο με τις καταγραφές που θέλει να ανακτήσει. Για τις καταγραφές γεγονότων στέλνει ένα μήνυμα \en EVENT\_LOGS\_GET \el, για τις καταγραφές των σφαλμάτων επικοινωνίας ένα \en COM\_ERROR\_LOGS\_GET\el, ενώ για την εξέλιξη στα ενεργειακά αποθέματα της συσκευής το \en BATTERY\_LOGS\_GET\el. Παραδείγματα τους μπορείτε να δείτε στο σχήμα \ref{fig:logs-get-msg}.
 }
 \end{lstlisting}
 \el
-\caption{Το περιεχόμενο των μηνυμάτων \en EVENT\_LOGS\_SEND\el, \en COM\_ERROR\_LOGS\_SEND \el και \en BATTERY\_LOGS\_SEND\el.}
+\caption{Το περιεχόμενο των μηνυμάτων \en EVENT\_LOGS\_SEND\el, \en COM\_ERROR\_ LOGS\_SEND \el και \en BATTERY\_LOGS\_SEND\el.}
 \label{fig:logs-send-msg}
 \end{figure}
 
 }
 \end{lstlisting}
 \el
-\caption{Το περιεχόμενο των μηνυμάτων \en EVENT\_LOGS\_DEL\el, \en COM\_ERROR\_LOGS\_DEL \el και \en BATTERY\_LOGS\_DEL\el.}
+\caption{Το περιεχόμενο των μηνυμάτων \en EVENT\_LOGS\_DEL\el, \en COM\_ERROR\_ LOGS\_DEL \el και \en BATTERY\_LOGS\_DEL\el.}
 \label{fig:logs-del-msg}
 \end{wrapfigure}
 Όπως είναι φυσικό μπορεί κάποια στιγμή να κριθεί απαραίτητη η διαγραφή των καταγραφών που έχουν αποθηκευτεί μέσα σε μία συσκευή. Ένας λόγος μπορεί να είναι ότι ο χρήστης θα ήθελε να μην συγχέει τις καταγραφές που έχει μελετήσει με μελλοντικές τους. Για τον λόγο αυτό, προστέθηκε στον \emph{Διαχειριστή Καταγραφών} η επιπλέον λειτουργία της διαγραφής. Ο χρήστης είναι σε θέση μέσα από την γραφική διεπαφή να στείλει μηνύματα διαγραφής των διαφόρων τύπων καταγραφής. Πιο συγκεκριμένα, αν θέλει να διαγράψει τις καταγραφές γεγονότων μίας συσκευής αρκεί να στείλει ένα μήνυμα \en EVENT\_LOGS\_DEL\el σε αυτή και η οποία με το που το λάβει, προβαίνει στην διαγραφή των καταγραφών αυτών. Αντίστοιχα, για τα σφάλματα επικοινωνίας υπάρχει το μήνυμα \en COM\_ERROR\_LOGS\_DEL\el, ενώ για την μπαταρία το \en BATTERY\_LOGS\_DEL\el. Την δομή των μηνυμάτων αυτών μπορείτε να την δείτε στο σχήμα \ref{fig:logs-del-msg}.

File report/chapter_7.tex

-\chapter{Εφαρμογές του πρωτοκόλλου} \label{chap:bms-agriculture}
-\lettrine[lines=3]{Ο} {} \textsc{ι}
-
-\section{Σύστημα Άρδευσης σε αγροτικές καλλιέργειες}
-
-\section{Σύστημα Διαχείρισης Κτιρίων}

File report/chapter_8.tex

-\chapter{Συμπεράσματα και Μελλοντικές Προεκτάσεις} \label{chap:conclusion}
-\lettrine[lines=3]{Ο} {} \textsc{ι}

File report/preamble.tex

View file
 
 % hyperref settings
 \definecolor{darkblue}{RGB}{0,0,128}
+\definecolor{black}{RGB}{0,0,0}
 \usepackage[colorlinks=true,
 pdfauthor={Aravanis Konstantinos http://AravanisKostas.com <kos.arav@gmail.com>},
 pdftitle={picoPnP - Diploma Thesis},
 pdfkeywords={picoPnP, WSAN},
 bookmarks=false,
 ]{hyperref}
-\hypersetup{citecolor=darkblue, urlcolor=darkblue, linkcolor=darkblue}
+\hypersetup{citecolor=black, urlcolor=darkblue, linkcolor=black}
 
 %% Define a new 'leo' style for the ur; package that will use a smaller font.
 \makeatletter

File report/thesis.pdf

Binary file modified.

File report/thesis.tex

View file
         \include{chapter_6}
 
         % Chapter 7
-        %\include{chapter_7}
-
-        % Chapter 8
-        \include{chapter_8}
+        \include{chapter_7}
         
 	% Bibliography
         \nocite{sunspotworld, protocols-and-architectures-for-wsn, host-api, spot-api, spot-owner, spot-developer, solarium, tanenbaum}