ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΚΑΙ ΑΠΕΙΚΟΝΙΣΗΣ ΠΤΗΣΕΩΝ ΣΕ ΠΡΑΓΜΑΤΙΚΟ ΧΡΟΝΟ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΚΑΙ ΑΠΕΙΚΟΝΙΣΗΣ ΠΤΗΣΕΩΝ ΣΕ ΠΡΑΓΜΑΤΙΚΟ ΧΡΟΝΟ"

Transcript

1

2 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΙΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΚΑΙ ΑΠΕΙΚΟΝΙΣΗΣ ΠΤΗΣΕΩΝ ΣΕ ΠΡΑΓΜΑΤΙΚΟ ΧΡΟΝΟ ΙΑΣΟΝΑΣ ΘΕΟΔΩΡΑΚΟΠΟΥΛΟΣ 511/ Τριμελής Επιτροπή Επιβλέπων Καθηγητής: Δημήτρης Λέκκας Μέλη Επιτροπής: Σπύρος Βοσινάκης, Δημήτρης Ζήσης Ερμούπολη, Φεβρουάριος 2013

3 2

4 Δηλώσεις Αφιερώσεις και Ευχαριστίες Πολύ θερμά θέλω να ευχαριστήσω τον επιβλέποντα καθηγητή μου κ. Δημήτρη Λέκκα για την καθοδήγηση, την υποστήριξη και κυρίως για το πηγαίο ενδιαφέρον που έδειξε για την εργασία μου. Η τεχνογνωσία του και η μεταδοτικότητά του υπήρξαν καθοριστικοί παράγοντες για να μπορέσω να κινηθώ με επιτυχία μέσα σε ένα επιστημονικό πεδίο που ήταν καινούργιο προς εμένα. Την εργασία αυτή θέλω να την αφιερώσω στους γονείς μου που με στηρίζουν και μου προσφέρουν πάντα ότι καλύτερο μπορούν δίχως σκέψη και στην γιαγιά μου για την ανιδιοτελή της αγάπη. Τέλος, παρόλο που δεν θεωρώ τον πιο εύστοχο τρόπο να τους ευχαριστήσω μέσω της διπλωματικής εργασίας μου αλλά νιώθω υποχρεωμένος να το κάνω μιας και συμβολίζει το κλείσιμο της αυλαίας, θέλω να ευχαριστήσω όλους εκείνους που έτυχε να συνυπάρξουν μαζί μου αυτά τα μαγικά χρόνια στο νησί. Θεωρώ τον εαυτό μου εξαιρετικά τυχερό που έζησε στιγμές αγνής χαράς και ατόφιας ευτυχίας, σε σημείο που μου είναι εξαιρετικά δύσκολο να συλλάβω την πλήρη διάστασή τους. Σας ευχαριστώ που ήσασταν εκεί και τις μοιραστήκατε μαζί μου. Σε μια ύστατη προσπάθεια να βρω μια λογική συνέχεια της ζωής του νησιού μόνο ένα σενάριο φαίνεται να αρμόζει. Το νησί μας διαμόρφωσε, είμαστε εμείς σήμερα. Προχωράμε 3

5 Περίληψη Ζούμε σε μια εποχή που χαρακτηρίζεται από την τεχνολογική έκρηξη και την δικτύωση. Απόρροια αυτού του γεγονότος είναι η φρενήρης ανάπτυξη πληροφοριακών συστημάτων προς ικανοποίηση πάσης φύσεως αναγκών. Είναι δόκιμο να πει κανείς ότι οι διαδικτυακές εφαρμογές είναι πιο επίκαιρες από ποτέ. Σε αυτά τα πλαίσια η παρούσα διπλωματική εργασία αποσκοπεί στην σχεδίαση και υλοποίηση ενός πληροφοριακού συστήματος, μιας διαδικτυακής εφαρμογής αναδεικνύοντας αρχές και μεθοδολογίες που διδάχθηκαν στο Τμήμα. Συγκεκριμένα η εργασία αφορά την σχεδίαση και υλοποίηση ενός συστήματος που θα παρακολουθεί και θα απεικονίζει τις πτήσεις σε έναν χάρτη, ο οποίος θα είναι κομμάτι μιας διεπαφής προσβάσιμης απ το διαδίκτυο, σε πραγματικό χρόνο. Αυτό πραγματοποιείται εκμεταλλευόμενοι κάποιες ραδιο-εκπομπές των αεροσκαφών επονομαζόμενες ads-b. Κατά την εκπόνηση της εργασίας θα αναπτυχθεί το κατάλληλο λογισμικό που θα αξιοποιεί τις εκπομπές αυτές με τέτοιο τρόπο ώστε να επιτευχθούν οι στόχοι μας. Αρχικά επιχειρείται μια προσέγγιση στον προβληματικό χώρο, στα θέματα ασφάλειας και απόδοσης των αεροσκαφών και στις τεχνολογίες που αφορούν αυτά αλλά και στα προβλήματα διαφόρων ομάδων σχετικά με την διαθεσιμότητα πληροφοριών που αφορούν την εναέρια κυκλοφορία. Θα γίνει μια επισκόπηση των τεχνολογιών που χρησιμοποιούν τα αεροσκάφη για την πλοήγηση και την ασφάλειά τους επισημαίνοντας τα αδύνατα σημεία τους που οδήγησαν σταδικά στην υιοθέτηση της τεχνολογίας ads-b. Στην συνέχεια θα ορίσουμε τις σχεδιαστικές απαιτήσεις και θα παραθέσουμε μία τεχνική ανάλυση του πρωτοκόλλου ads-b. Τέλος θα περιγράψουμε λεπτομερώς όλα τα στάδια της ανάπτυξης του λογισμικού από τον σχεδιασμό της αρχιτεκτονικής του μέχρι και την έναρξη της λειτουργίας του. Λέξεις κλειδιά: Ads-b, Web development, Real time air traffic 4

6 Πίνακας περιεχομένων ΚΕΦΑΛΑΙΟ 1 Εισαγωγή Προβληματικός χώρος 1.1 Εισαγωγικό σημείωμα Προβληματικός χώρος Εγγύτητα Αποδοτικότητα Διαθεσιμότητα πληροφοριών της εναέριας κυκλοφορίας στο κοινό Ποιος είναι ο σκοπός της Διπλωματικής Εργασίας Μεθοδολογία Το μοντέλο του καταρράκτη Waterfall model Το μοντέλο Επαναληπτικής Αυξητικής Ανάπτυξης - Iterative and Incremental Development Model Έρευνα - Υπάρχουσα τεχνολογία - Πρωτόκολλα Το πρωτεύον ραντάρ Transponder Το δευτερεύον ραντάρ Secondary Surveillance Radar TCAS Το πρωτόκολλο ADS-B (Automatic dependent surveillance broadcast) Τα τμήματα ADS-B Τι προσφέρει το ADS-B ΚΕΦΑΛΑΙΟ 2 Ανάλυση Σχεδιαστικών Απαιτήσεων 2.1 Απαιτήσεις χρήσης Γενικά χαρακτηριστικά του συστήματος Λειτουργικές απαιτήσεις Λειτουργικές προδιαγραφές Διάταξη λήψης Λογισμικό αποκωδικοποίησης Βάση δεδομένων Διεπαφή - Ιστότοπος

7 2.3Αναμενόμενα αποτελέσματα Αναμενόμενα αποτελέσματα απ την έξοδο του συστήματος Διάνυσμα θέσης - Vector Στατικές πληροφορίες Στατιστικά στοιχεία Διεπαφή - Χάρτης Αναμενόμενα αποτελέσματα απ τις εσωτερικές λειτουργίες του συστήματος Λογισμικό αποκωδικοποίησης Ποιες γλώσσες προγραμματισμού χρησιμοποιήθηκαν ΚΕΦΑΛΑΙΟ 3 Διάταξη λήψης-δομή μηνυμάτων 3.1 Δέκτης Toφορμάτ DF Δομή του μηνύματος ΚΕΦΑΛΑΙΟ 4 Σχεδίαση πληροφοριακού συστήματος 4.1 Λογισμικό αποκωδικοποίησης Ανάγνωση ροής δεδομένων Συγχρονισμός ανάγνωσης ροής Προσδιορισμός Downlink format και Typecode Αποκωδικοποίηση μηνύματος ταυτότητας αεροσκάφους ID Δημιουργία της κλάσης Aircraft Αποκωδικοποίηση μηνύματος θέσης Airborne Position Αποκωδικοποίηση μηνύματος ταχύτητας AirborneVelocity Βάση Δεδομένων MySql Πρώτη προσέγγιση Επανασχεδιασμός της βάσης δεδομένων ΚΕΦΑΛΑΙΟ 5 Σχεδίαση Διεπαφής 5.1 Αλληλεπίδραση με τον χρήστη Ο ιστότοπος Ο server

8 5.2.2 Ο χάρτης ΚΕΦΑΛΑΙΟ 6 Αξιολόγηση Αποτελέσματος 6.1 Έλεγχος εγκυρότητας αποτελεσμάτων Επίτευξη στόχων Περαιτέρω ανάπτυξη Παράρτημα Α. Πηγαίος κώδικας λογισμικού αποκωδικοποίησης Β. Php script για την παραγωγή του αρχείου Xml Γ. Κώδικας Html-Javascript για την δημιουργία του χάρτη Δ. Ενδεικτικός πίνακας με περιεχόμενο απ την ΒΔ Βιβλιογραφία

9 ΚΕΦΑΛΑΙΟ 1 Εισαγωγή Προβληματικός Χώρος 1.1 Εισαγωγικό σημείωμα Ζούμε σε μια σύγχρονη κοινωνία μεγάλο κομμάτι της οποίας βασίζεται στις μεταφορές. Σε καθημερινή βάση ένας τεράστιος αριθμός ανθρώπων και υλικών αγαθών μεταφέρονται από ένα σημείο της υδρογείου σε κάποιο άλλο προς ικανοποίηση των αναγκών της κοινωνίας. Στην πραγματικότητα η παγκόσμια οικονομία μπορεί και κινείται βασιζόμενη στις μεταφορές. Μπορούμε να κατηγοριοποιήσουμε τον κλάδο τον μεταφορών σε αυτές που πραγματοποιούνται δια μέσω ξηράς, θάλασσας και αέρα. Οι αερομεταφορές ως οι πιο σύγχρονες ιστορικά είναι ακόμα και σήμερα ραγδαίως εξελισσόμενες τεχνολογικά και καταλαμβάνουν μεγάλο ποσοστό των συνολικών μεταφορών αφού χαρακτηρίζονται από ασύλληπτα μεγαλύτερη ταχύτητα συγκριτικά με τους άλλους δύο τρόπους μεταφοράς. Χρόνο με το χρόνο ο αριθμός των αεροσκαφών πολλαπλασιάζεται ως αποτέλεσμα της αυξανόμενης ζήτησης για μεταφορά ανθρώπων και αγαθών μιας παγκοσμιοποιημένης οικονομίας που συνεχώς αναπτύσσεται. Εμπορικοί και ιδιωτικοί αερομεταφορείς συνεχώς εντάσσουν στους στόλους τους καινούργια αεροσκάφη υψηλών επιδόσεων, ορισμένα από τα οποία είναι ικανά να διασχίσουν τον περίπλου της γης σε λίγες μόλις ώρες. Δημιουργούνται καινούργια δρομολόγια, αρχίζουν να καλύπτονται ακόμα περισσότεροι διεθνείς προορισμοί. Ιδιώτες όλο και περισσότερο τα τελευταία χρόνια σε αρκετές χώρες του εξωτερικού κάνουν χρήση μικρών αεροσκαφών για να καλύψουν μικρές αποστάσεις και τοπικά δρομολόγια. (European commission - Eurostat, 2011) Εικόνα 1 Στατιστικά στοιχεία και προβλέψεις της αγοράς Πηγή: Boeing.com 8

10 1.2 Προβληματικός χώρος Παρατηρείται μεγάλη αύξηση της εναέριας κυκλοφορίας σε παγκόσμιο επίπεδο. Από το γεγονός αυτό αναδύονται κάποια προβλήματα τα οποία χρίζουν προσεκτικής μελέτης και επίλυσης. Μετά από ανάλυση των προβλημάτων αυτών παρατηρούμε ότι μπορούμε να τα χωρίσουμε σε δύο κατηγορίες. Αυτά που αφορούν την ασφάλεια πτήσεων και αυτά που αφορούν την αποδοτικότητα των πτήσεων σχετικά με οικονομικούς, χρονικούς και περιβαλλοντολογικούς περιορισμούς Εγγύτητα Ας παραθέσουμε αρχικά ίσως το πιο βαρυσήμαντο πρόβλημα της ασφάλειας πτήσεων, το ενδεχόμενο σύγκρουσης αεροσκαφών το οποίο διαχωρίζεται σε δύο υποκατηγορίες την εναέρια σύγκρουση και την σύγκρουση αεροσκαφών που τροχοδρομούν στο έδαφος (Αεροσκάφος που προσγειώνεται με αεροσκάφος που τροχοδρομεί υπάγεται στην τελευταία κατηγορία). Κίνδυνος για σύγκρουση αεροσκαφών που ταξιδεύουν με εξαιρετικά μεγάλη ταχύτητα υπάρχει πάντα,το ζήτημα είναι να εκμηδενιστεί, αυτή είναι και η κύρια δουλειά των ελεγκτών εναέριας κυκλοφορίας να εξασφαλίζουν τον διαχωρισμό των αεροσκαφών. Τα εμπορικά αεροσκάφη δεν ταξιδεύουν σε οποιοδήποτε ύψος και διεύθυνση αλλά σε προκαθορισμένες περιοχές τους αεροδιαδρόμους που είναι διεθνώς συμφωνημένοι. Οι αεροδιάδρομοι αυτοί χωρίζονται μεταξύ τους με κάποια απόσταση και έχουν μια μέγιστη χωρητικότητα τέτοια ώστε να επιτρέπουν την ασφαλή διέλευση αεροσκαφών που και αυτά με τη σειρά τους να είναι διαχωρισμένα κατά μια ελάχιστη απόσταση ασφαλείας. Η αύξηση του αριθμού των αεροσκαφών που κινούνται σε αυτούς τους αεροδιαδρόμους οδηγεί σε μια αύξηση της πυκνότητας αφού ο χώρος μέσα στον οποίο κινούνται παραμένει σταθερός. Αν αναλογιστεί κανείς ότι αεροσκάφη μπορεί να κινούνται και σε αντίθετες κατευθύνσεις ή σε συγκλίνουσες πορείες καταλαβαίνει ότι αυτή η αύξηση της πυκνότητας σημαίνει αύξηση της πιθανότητας σύγκρουσης. Ιδιαίτερα σε τερματικές περιοχές δηλαδή περιοχές κοντά σε αεροδρόμια που όλα τα αεροσκάφη συγκλίνουν προς ένα σημείο, τον διάδρομο προσγείωσης, η πιθανότητα σύγκρουσης αυξάνεται σημαντικά. Το γεγονός ότι το καθένα πλησιάζει υπό διαφορετική γωνία, με διαφορετικό ύψος και διαφορετική ταχύτητα καθιστά την διαχείριση αυτού του προβλήματος ακόμα πιο σύνθετη και δύσκολη. Διάφορες τεχνολογίες που θα αναλύσουμε και θα περιγράψουμε την λειτουργία τους στην συνέχεια έχουν αναπτυχθεί για την διευθέτηση αυτού του ζητήματος όπως το ραντάρ η ασύρματη επικοινωνία με τους κυβερνήτες και διάφορα ραδιοβοηθήματα. Όμως αυτές οι τεχνολογίες δεν μπορούν να διαχειριστούν την διαρκή πύκνωση της κυκλοφορίας των αεροσκαφών γιατί απαιτείται ολοένα και μεγαλύτερη ακρίβεια στις αναφορές τους. Υπάρχει ένα όριο πέρα απ' το οποίο δεν μπορούν να εγγυηθούν την ασφάλεια στις πτήσεις. Είναι αναγκαία η εξέλιξη ενός συστήματος που θα διασφαλίζει την απόσταση ασφαλείας μεταξύ των αεροσκαφών ανεξάρτητα απ' την συνεχή αύξηση του αριθμού τους. 9

11 Κίνδυνος σύγκρουσης υπάρχει και στο έδαφος. Ιστορικά έχουμε αρκετά ατυχήματα που έχουν συμβεί κατά τη διάρκεια τροχοδρόμησης σε συνθήκες χαμηλής ορατότητας όπως χαμηλή νέφωση ή ομίχλη. Οι πλειοψηφία των ραντάρ (αεροπορικού τύπου) δεν μπορούν να χρησιμοποιηθούν για παρακολούθηση επιφανείας καθώς ανιχνεύουν στόχους από ένα συγκεκριμένο ύψος και πάνω. Επομένως ότι κινείται κάτω από αυτό το ύψος είναι στην ουσία αόρατο στα ραντάρ και η επιτήρησή του γίνεται οπτικά. (Υπάρχουν κάποιες περιπτώσεις που γίνεται χρήση ραντάρ επιφανείας για παρακολούθηση των διαδρόμων των αεροδρομίων) Θα πρέπει δηλαδή να διασφαλιστεί η επιτήρηση και ο διαχωρισμός των αεροσκαφών και στο έδαφος για να εκμηδενίσουμε τον κίνδυνο σύγκρουσης. (FAA, 2012) Αποδοτικότητα Η δεύτερη κατηγορία προβλημάτων αφορά το πόσο αποδοτικές είναι οι πτήσεις. Είναι γνωστό ότι η συντομότερη διαδρομή μεταξύ δυο σημείων, δύο προορισμών, είναι η ευθεία που τους συνδέει. Παρόλα αυτά όπως προαναφέραμε τα αεροσκάφη κινούνται μέσα σε αεροδιαδρόμους και επειδή τις περισσότερες φορές δεν υπάρχει ένας αυτούσιος αεροδιάδρομος που να ενώνει δύο προορισμούς, τα αεροσκάφη αναγκάζονται να μεταβούν από έναν αεροδιάδρομο σε κάποιο άλλο και να ακολουθήσουν έτσι μια τεθλασμένη πορεία. Ένας άλλος πολύ σημαντικός λόγος που τα αεροσκάφη αποκλίνουν απ' την διαδρομή τους είναι για να αποφύγουν να έρθουν σε εγγύτητα με κάποια άλλο διερχόμενο αεροσκάφος που κινείται σε συγκλίνουσα πορεία. Στις τερματικές περιοχές αεροδρομίων είναι συχνό το φαινόμενο αεροσκάφη πριν την προσγείωση να αναγκάζονται να εκτελούν κύκλους γύρω απ' το αεροδρόμιο περιμένοντας σε σειρά προτεραιότητας. Η χωρητικότητα των αεροδιαδρόμων υπαγορεύεται απ' τον ελάχιστο διαχωρισμό ασφαλείας και όταν υπάρχει μεγάλη κίνηση η καθυστέρηση για την προσγείωση μπορεί να είναι σημαντική. Η απόκλιση αυτή απ' την συντομότερη διαδρομή, την ευθεία, κοστίζει. Έχει αρχικά οικονομικό κόστος καθώς ακολουθώντας την τεθλασμένη διαδρομή διανύουν μεγαλύτερη απόσταση συνεπώς καταναλώνουν περισσότερα καύσιμα. Καταναλώνοντας περισσότερα καύσιμα εκπέμπουν περισσότερους ρύπους επιβαρύνοντας το περιβάλλον. Τέλος κοστίζει σε χρόνο αφού δεν είναι η πιο σύντομη. Η απόκλιση μεμονωμένα μπορεί να μην φαίνεται μεγάλη, παίζει όμως σημαντικό ρόλο ειδικά αν κάνει κανείς την αναγωγή στον συνολικό παγκόσμιο αριθμό πτήσεων καταλαβαίνει ότι το κόστος είναι μεγάλο. Η αύξηση της εναέριας κυκλοφορίας σε παγκόσμια κλίμακα αναγκάζει τα αεροσκάφη σε ολοένα και περισσότερο τεθλασμένες διαδρομές. Αυτό συμβαίνει γιατί είναι ιδιαίτερα κρίσιμο να διατηρηθεί η απόσταση διαχωρισμού ασφαλείας μεταξύ τους. Περισσότερες πτήσεις αυξάνουν την πιθανότητα να βρεθούν δύο αεροσκάφη σε συγκλίνουσες πορείες. Σε αυτή την περίπτωση τουλάχιστον ένα απ' τα δύο θα πρέπει να αποκλίνει απ' την πορεία του έτσι ώστε να διασφαλιστεί μια ασφαλή απόσταση διαχωρισμού. Επίσης περισσότερες πτήσεις μεταφράζονται σε μεγαλύτερες ουρές αναμονής για προσγείωση στα αεροδρόμια. 10

12 Βλέπουμε ότι η συνεχής πύκνωση της εναέριας κυκλοφορίας καθιστά τις πτήσεις περισσότερο κοστοβόρες, χρονοβόρες και ρυπογόνες και θέτει ερωτήματα για την ακεραιότητα της ασφάλειας. Είναι απαραίτητη η αναβάθμιση των μέσων ελέγχου της εναέριας κυκλοφορίας έτσι ώστε να γίνει εφικτή η αποδοτική και αποτελεσματική διαχείριση ολόκληρου του όγκου των αεροσκαφών που συνεχώς αυξάνεται, σήμερα και στο μέλλον. Πιο απλουστευμένα στον προβληματικό χώρο εντοπίζονται δύο κύρια στοιχεία που απορρέουν απ' την πύκνωση της κυκλοφορίας. Η αύξηση του κινδύνου σύγκρουσης και η μείωση της αποδοτικότητας των πτήσεων. Οι ανάγκες που προκύπτουν απ' αυτά τα δύο είναι η εξασφάλιση διαρκούς διαχωρισμού ασφαλείας κάτω από όλες τις συνθήκες και η ελαχιστοποίηση του χρόνου που τα αεροσκάφη παραμένουν στον αέρα. (FAA, 2012) Διαθεσιμότητα πληροφοριών της εναέριας κυκλοφορίας στο κοινό Αναλύσαμε το θέμα της ασφάλειας και αποδοτικότητας των πτήσεων αλλά δεν έχουμε αναφερθεί ακόμα στη σχέση της εναέριας κυκλοφορίας με το ευρύ κοινό. Αυτό γιατί στην πραγματικότητα δεν έχουν καμία σχέση. Το ευρύ κοινό, όποιοι δηλαδή δεν σχετίζονται με κάποιο τρόπο με την αεροπορία, δεν έχουν πρόσβαση στα στοιχεία της εναέριας κυκλοφορίας. Προσφάτως σχετικά τα αεροδρόμια άρχισαν γνωστοποιούν στις ιστοσελίδες τους, την εκτιμώμενη ώρα άφιξης των πτήσεων η οποία είναι κατά προσέγγιση και αρκετές φορές σε ενδεχόμενη καθυστέρηση δεν ανανεώνεται άμεσα. Παλαιότερα δε δεν υπήρχε ούτε αυτή η υπηρεσία και η ώρα άφιξης μιας πτήσης ήταν εξαρχής δηλωμένη και δεν ενημερωνόταν στην πορεία. Το ευρύ κοινό λοιπόν ήταν αποκομμένο απ την εικόνα της εναέριας κυκλοφορίας, δεν είχε πρόσβαση στις πληροφορίες για το που βρίσκεται μια πτήση ανά πάσα στιγμή και το μόνο στοιχείο που γνωστοποιούνταν σε αυτό ήταν μια προσέγγιση στην ώρα που αναμένεται μια πτήση. Απ τη φύση της η εναέρια κυκλοφορία είναι δύσκολο για κάποιον να την παρακολουθήσει χωρίς τα απαραίτητα ηλεκτρονικά μέσα. Τα μέσα αυτά ήταν στη διάθεση μόνο τον ελεγκτών εναέριας κυκλοφορίας και οι πληροφορίες που συγκέντρωναν δεν γινόντουσαν διαθέσιμες στο ευρύ κοινό. Παλαιότερα με την τότε υπάρχουσα τεχνολογία ήταν δύσκολο να φανταστεί κανείς τι χρήση θα μπορούσε να έχει και τι εφαρμογές θα μπορούσαν να αναπτυχθούν με την διάθεση των πληροφοριών στο ευρύτερο κοινό. Με την εξέλιξη όμως της τεχνολογίας αυτό όχι μόνο έγινε πραγματοποιήσιμο αλλά και ανέδειξε κάποιες ανάγκες που είχε το κοινό. Ποιο είναι όμως αυτό το κοινό και για ποιο λόγο να έχει ενδιαφέρον κάποιος για την εικόνα της εναέριας κυκλοφορίας ανά πάσα στιγμή; Πολλές είναι οι ομάδες ατόμων που έχουν άμεσο ή έμμεσο ενδιαφέρον για την εναέρια κυκλοφορία. Ας ξεκινήσουμε αρχικά απ την προφανή ομάδα των ατόμων που ταξιδεύουν. Οι ταξιδιώτες ένα απ τα βασικά πράγματα που θέλουν να γνωρίζουν είναι αν η πτήση τους πρόκειται να καθυστερήσει και αν ναι πόση ώρα. Επέκταση αυτής της ομάδας είναι οι συγγενείς, οι φίλοι και οι συνεργάτες των ταξιδιωτών οι οποίοι θέλουν να γνωρίζουν ακριβώς την ώρα άφιξης της πτήσης είτε για να τους παραλάβουν από το αεροδρόμιο είτε για να 11

13 βεβαιωθούν ότι έφτασαν στον προορισμό τους με ασφάλεια. Ταξιδιωτικά πρακτορεία επίσης χρειάζονται να ξέρουν που βρίσκεται ακριβώς μια πτήση για να ενημερώνουν τους ενδιαφερόμενους για τυχόν καθυστερήσεις ή αλλαγές. Πέρα απ τους ελεγκτές εναέριας κυκλοφορίας που έχουν στη διάθεσή τους τις πληροφορίες, στα αεροδρόμια υπάρχει ένας τεράστιος αριθμός εργαζομένων οι οποίοι εξυπηρετούν με διάφορους τρόπους τις πτήσεις που έρχονται και φεύγουν. Αυτοί δεν έχουν άμεση πρόσβαση στο που βρίσκεται μια πτήση και σε τι φάση είναι. Για παράδειγμα τα άτομα που είναι υπεύθυνα να παραλάβουν ένα αεροσκάφος όταν προσγειωθεί και να το οδηγήσουν στην θέση παρκαρίσματος έτσι ώστε να τοποθετήσουν τις σκάλες για να αποβιβαστούν οι επιβάτες ενημερώνονται για το που βρίσκεται το αεροσκάφος μέσω ασυρμάτου ενώ θα μπορούσαν να έχουν οι ίδιοι άμεση πρόσβαση και να ειδοποιούνται με ένα αυτοματοποιημένο σύστημα για το που βρίσκεται το αεροσκάφος που πρέπει να αναλάβουν. Με το ίδιο σύστημα θα μπορούσαν να ενημερώνονται και οι οδηγοί των λεωφορείων που παραλαμβάνουν τους επιβάτες απ τα αεροσκάφη, οι πυροσβεστικές ομάδες, τα άτομα που φορτώνουν τις αποσκευές, οι ομάδες έρευνας και διάσωσης κοκ. Άλλη μία ομάδα που χρειάζεται να γνωρίζει ανά πάσα στιγμή που βρίσκεται ο στόλος των αεροσκαφών της είναι οι αεροπορικές εταιρείες. Ακόμα και στις αεροπορικές εταιρείες δεν γνωστοποιούνται όλες οι πληροφορίες απ τα κέντρα ελέγχου εναέριας κυκλοφορίας και έτσι δεν μπορούν να παρακολουθήσουν σε πραγματικό χρόνο τον στόλο τους. Δεν υπάγονται ακριβώς στο ευρύ κοινό και παρόλο που εδώ και κάποια χρόνια υπάρχουν διάφορες τεχνολογίες που χρησιμοποιούν δορυφορικές επικοινωνίες για να παρακολουθούν και να επικοινωνούν με τα αεροσκάφη τους, αυτές χαρακτηρίζονται από εξαιρετικά μεγάλο λειτουργικό και εξοπλιστικό κόστος. Ιδιοκτήτες μικρότερων ενοικιαζόμενων αεροσκαφών και εκείνοι με τη σειρά τους χρειάζονται να ξέρουν ανά πάσα στιγμή που βρίσκονται τα αεροσκάφη τους. Μια άλλη ομάδα που έχει άμεσο ενδιαφέρον για διαρκή ενημέρωση της κατάστασης των πτήσεων είναι αυτή των εταιρειών διεθνούς εμπορίου. Όπως είπαμε τεράστιος όγκος εμπορευμάτων μεταφέρεται καθημερινά σε διάφορους διεθνείς προορισμούς χρησιμοποιώντας τον εμπορικό στόλο αεροσκαφών. Είναι πολύ σημαντικό τόσο για τις μεταφορικές εταιρείες όσο και για τους εμπόρους τον αγαθών να μπορούν να παρακολουθούν τα αγαθά που μεταφέρονται και να γνωρίζουν με ακρίβεια ποια θα είναι η χρονική στιγμή της παράδοσης. Στην ίδια κατηγορία μπορούμε να ενσωματώσουμε τις εταιρείες ταχυμεταφορών, logistics, τους παραλήπτες πακέτων και φορτίων και τους διαχειριστές αποθηκών. Υπάρχουν ομάδες που είναι αρκετά μικρότερες σε σχέση με τις προαναφερθέντες αλλά αξίζει να αναφερθούμε σε αυτές. Υπάρχουν οι λεγόμενοι απλοί παρατηρητές οι οποίοι παρακολουθούν την εναέρια κυκλοφορία σαν χόμπι και άλλοι που φωτογραφίζουν τα αεροσκάφη, οι λεγόμενοι Plane Spotters. Θα ήταν εξαιρετικά χρήσιμο σε αυτούς να γνωρίζουν την θέση ενός αεροσκάφους που λείπει απ την συλλογή τους. Ακόμα και οι ομάδες έρευνας και διάσωσης χρειάζονται να έχουν πρόσβαση στις πληροφορίες της εναέριας κυκλοφορίας για να μπορούν να γνωρίζουν με ακρίβεια το τελευταίο στίγμα που εξέπεμψε κάποιο αεροσκάφος και να επέμβουν άμεσα στην περιοχή αυτή. 12

14 Παρατηρούμε ότι υπάρχουν αρκετές ομάδες που θα επωφελούνταν αρκετά αν είχαν πρόσβαση στις πληροφορίες της εναέριας κυκλοφορίας. Σε αυτές που αναφέραμε μπορούμε να προσθέσουμε και κάποιες όχι τόσο προφανείς για να δείξουμε το εύρος τον πιθανών εφαρμογών που θα μπορούσε να έχει η απελευθέρωση των πληροφοριών στο κοινό. Περιβαλλοντικοί και οικολογικοί οργανισμοί έχοντας στη διάθεσή τους τα δεδομένα της εναέριας κυκλοφορίας μπορούν να έχουν πλήρη εικόνα της κυκλοφορίας πάνω από κάθε περιοχή για κάθε χρονική στιγμή και θα μπορούν να εξάγουν στατιστικά στοιχεία και να μελετήσουν τις επιδράσεις των εκπομπών των αεροσκαφών στο κλίμα, σε περιοχές υψηλής και χαμηλής εναέριας κυκλοφορίας και να κάνουν τις ανάλογες συγκρίσεις. Αυτό μπορεί να οδηγήσει στον επανασχεδιασμό και οργάνωση των αεροδιαδρόμων έτσι ώστε να είναι πιο αποδοτικοί και να μειωθούν οι συνέπειες στο περιβάλλον. Βλέπουμε ότι η διάθεση των πληροφοριών εναέριας κυκλοφορίας στο ευρύ κοινό μπορεί να αποτελέσει έναυσμα για την ανάπτυξη πολλών εφαρμογών που θα μεγιστοποιήσουν την αποδοτικότητα σε διάφορους τομείς και σε αρκετές περιπτώσεις θα βελτιώσουν την ποιότητα υπηρεσιών που απολαμβάνουν οι εμπλεκόμενοι. Για να καταστεί η πληροφορία διαθέσιμη στο ευρύ κοινό σήμερα ο βέλτιστος τρόπος θα ήταν μέσω του διαδικτύου. Με αυτόν τον τρόπο οι ταξιδιώτες με πρόσβαση στο διαδίκτυο από σταθερά σημεία ή ακόμα από συσκευές όπως smartphones ή tablets θα μπορούν να ενημερώνονται για την εξέλιξη μιας πτήσης που τους ενδιαφέρει και να πληροφορηθούν για τυχόν καθυστερήσεις. Με τον ίδιο τρόπο συγγενείς ή συνεργάτες αυτών που ταξιδεύουν μπορούν να προγραμματίσουν έγκαιρα κάποια δραστηριότητα που σχετίζεται με την άφιξη μιας πτήσης. Το προσωπικό του αεροδρομίου θα μπορεί να οργανωθεί καλύτερα και αποτελεσματικότερα για τις αφίξεις και αναχωρήσεις πτήσεων ώστε να προβεί στις απαραίτητες ενέργειες για να εξυπηρετήσει τα αεροσκάφη και τους επιβάτες. Οι αεροπορικές εταιρείες και οι ιδιοκτήτες μικρών αεροσκαφών θα είναι σε θέση να παρακολουθούν σε πραγματικό χρόνο ολόκληρο τον στόλο των αεροσκαφών τους και να συντονίζουν πιο εύκολα τις διαδικασίες. Εταιρείες courier και logistics θα μπορούν να παρακολουθούν οι ίδιες την πορεία και την εξέλιξη των μεταφορών τους και παράλληλα να ενημερώνουν τους δικούς τους πελάτες. Τέλος οι ομάδες έρευνας και διάσωσης θα είναι σε θέση να γνωρίζουν την πορεία κάθε αεροσκάφους και να έχουν καλύτερη εκτίμηση του στίγματος σε περίπτωση συμβάντος. 13

15 1.3 Ποιος είναι ο σκοπός της Διπλωματικής Εργασίας Η παρούσα Διπλωματική Εργασία αποσκοπεί στην σχεδίαση και την υλοποίηση ενός συστήματος παρακολούθησης και απεικόνισης πτήσεων σε πραγματικό χρόνο. Αυτό θα πραγματοποιηθεί εκμεταλλευόμενοι τα δεδομένα απ τις εκπομπές του συστήματος ads-b όπως αυτό θα αναλυθεί στην συνέχεια. Το σύστημα αυτό θα είναι εφάμιλλο με αυτά των επίγειων σταθμών λήψης που έχουν στη διάθεσή τους οι ελεγκτές εναέριας κυκλοφορίας. Θα διαθέτει τις ίδιες δυνατότητες και λειτουργίες και θα καθιστά τις ληφθέντες πληροφορίες, προσβάσιμες σε όλους μέσω κάποιας διαδικτυακής διεπαφής, ενός ιστότοπου. Παρ' όλα αυτά δεν αποσκοπεί στην διασφάλιση της ασφάλεια των πτήσεων αλλά θα έχει χαρακτήρα ενημερωτικό και πειραματικό μέσα στα ακαδημαϊκά πλαίσια. Η διεκπεραίωση της ΔΕ θα πρέπει να γίνει εφαρμόζοντας και αναδεικνύοντας συγκεκριμένες αρχές και μεθοδολογίες σχεδίασης που έχουν διδαχθεί. Η εκπόνηση της ΔΕ θα πρέπει να ολοκληρωθεί με την παρουσίαση των αεροσκαφών που βρίσκονται εν πτήση στην εγγύς περιοχή πάνω σε ένα χάρτη ο οποίος θα είναι μέρος μιας διεπαφής προσβάσιμης μέσω του διαδικτύου. Στον χάρτη αυτόν οι χρήστες θα είναι σε θέση να αναγνωρίσουν τα αεροσκάφη και να δουν τις πληροφορίες πτήσης που είναι διαθέσιμες για το κάθε ένα. Για να γίνει αυτό προϋπόθεση είναι ο σχεδιασμός και η υλοποίηση ενός λογισμικού που θα λαμβάνει τα δεδομένα ads-b από έναν δέκτη, θα τα αποκωδικοποιεί και στην συνέχεια θα τα αποθηκεύει σε μια βάση δεδομένων. Στην συνέχεια θα πρέπει αυτές οι πληροφορίες που αποθηκεύτηκαν στην βάση δεδομένων να εξάγονται και να οπτικοποιούνται πάνω στον χάρτη. Εικόνα 2 Σχηματική αναπαράσταση των τμημάτων του συστήματος 14

16 Είναι φανερό ότι το αντικείμενο της παρούσας ΔΕ είναι ένα πληροφοριακό σύστημα και αφορά κυρίως τον προγραμματισμό. Θα γίνει μια θεωρητική προσέγγιση στη σχεδίαση του συστήματος αλλά θα υλοποιηθεί επίσης έτσι ώστε να είναι πλήρως λειτουργικό. Μπορούμε να διαχωρίσουμε το σύστημα λήψης που σχεδιάζουμε σε δύο τμήματα. Το πρώτο αφορά το κομμάτι του λογισμικού που θα λαμβάνει δεδομένα από μια εξωτερική συσκευή,τον δέκτη, θα συγχρονίζεται μαζί του, θα αποκωδικοποιεί τα δεδομένα και θα τα διαχειρίζεται με τέτοιο τρόπο έτσι ώστε τελικά να τα αποθηκεύει σε μία βάση δεδομένων. Το δεύτερο κομμάτι αφορά τη σχεδίαση της διαδικτυακής εφαρμογής που θα αντλεί τις πληροφορίες αυτές απ την βάση δεδομένων και θα τις οπτικοποιεί στον χάρτη της διεπαφής. 1.4 Μεθοδολογία Για την σχεδίαση και την υλοποίηση του εν λόγο πληροφοριακού συστήματος πρέπει να ακολουθήσουμε μια συγκεκριμένη μεθοδολογία. Μετά από εκτενή έρευνα στις πλέον διαδεδομένες μεθόδους ανάπτυξης λογισμικού και στον τρόπο που προσεγγίζει η κάθε μία την σχεδιαστική διαδικασία καταλήξαμε ότι αυτή που αρμόζει καλύτερα στην περίπτωσή μας είναι το μοντέλο της Επαναληπτικής Αυξητικής Ανάπτυξης (Iterative and Incremental Development Model). Η μέθοδος επαναληπτικής και αυξητικής ανάπτυξης λογισμικού είναι ένα απ τα βασικά μοντέλα των τροποποιημένων μεθόδων ανάπτυξης καταρράκτη (Modified Waterfall Models), το οποίο θα αναλυθεί στην συνέχεια μαζί με τους λόγους που μας οδήγησαν στην επιλογή της συγκεκριμένης μεθοδολογίας μεταξύ των άλλων Το μοντέλο του καταρράκτη Waterfall model Το μοντέλο του καταρράκτη είναι μια μεθοδολογία ανάπτυξης λογισμικού κατά την οποία η διαδικασία σχεδιασμού έχει σειριακό χαρακτήρα και εξελίσσεται αυστηρά μόνο προς μια κατεύθυνση, από πάνω προς τα κάτω (top to bottom αποσύνθεση του προβλήματος σε μικρότερες επιμέρους ενότητες απαιτήσεων), όπως ένας καταρράκτης. Αποτελείται από τις ακόλουθες διαδικασίες οι οποίες εκτελούνται με την σειρά που παρουσιάζονται. 15

17 Ορισμός Σχεδιαστικών Απαιτήσεων Σχεδιασμός Αρχιτεκτονικής Λογισμικού Υλοποίηση Κώδικα Δοκιμή Λογισμικού Παράδοση και Συντήρηση Εικόνα 3 Σχηματική αναπαράσταση του μοντέλου καταρράκτη Αρχικά ορίζουμε τον προβληματικό χώρο και στη συνέχεια σπάμε το πρόβλημα σε επιμέρους μικρότερα κομμάτια απ τα οποία προκύπτουν οι σχεδιαστικές απαιτήσεις. Κάθε μια απαίτηση δημιουργεί ένα σύνολο λειτουργικών προδιαγραφών οι οποίες επιδέχονται διαφόρων ειδών λύσεις. Απ αυτές τις λύσεις πρέπει να επιλεγούν οι καταλληλότερες και να συνδυαστούν με τις λύσεις των υπόλοιπων προδιαγραφών. Αυτό γίνεται στο στάδιο του σχεδιασμού της αρχιτεκτονικής του λογισμικού, όπου καθορίζεται η δομή του και ο τρόπος που θα συνδυάζονται οι επιμέρους λύσεις για να δημιουργήσουν ένα λειτουργικό σύστημα. Αφού προσδιοριστούν πλήρως η δομή και τα στοιχεία που πρέπει να περιέχει το λογισμικό προχωράμε στο επόμενο βήμα αυτό της υλοποίησης του κώδικα. Η δημιουργία του κώδικα μπορεί να γίνει από ένα άτομο ή μια ομάδα ατόμων αναλόγως με το μέγεθος του και τις απαιτήσεις του συστήματος. Στην συνέχεια περνάμε στη φάση των δοκιμών όπου το λογισμικό ελέγχεται για λάθη και γίνονται οι όποιες διορθώσεις χρειάζονται για να περάσουμε στην φάση της τελικής παράδοσης και εγκατάστασης του λογισμικού που συνοδεύεται απ την διαρκή συντήρησή του. 16

18 Η ιδιαιτερότητα του μοντέλου καταρράκτη είναι ότι η εξέλιξη του λογισμικού είναι μονόδρομη και κάποιος πρέπει να περνάει στην επόμενη φάση ανάπτυξης μόνο όταν έχει ολοκληρωθεί πλήρως και τελειοποιηθεί η προηγούμενη. Το μοντέλο αυτό που θεωρείται απ τα πρώτα ιστορικά αφομοιώθηκε από τον κλάδο των κατασκευαστών hardware, όπου τις περισσότερες φορές μετά την υλοποίηση ενός τμήματος η οποιαδήποτε μετατροπή είναι αδύνατη (εξ αυτού ο μονόδρομος χαρακτήρας), έχει δεχθεί έντονη κριτική για το αν είναι καλή πρακτική να ακολουθείται. Αυτό συμβαίνει γιατί αρκετές φορές προβλήματα και δυσκολίες παρουσιάζονται κατά τη διάρκεια της υλοποίησης οι οποίες είναι αδύνατον να προβλεφτούν στη φάση του αρχικού σχεδιασμού. Υλοποιώντας ένα λογισμικό για πρώτη φορά μπορεί να εμφανίσει αρκετές ιδιαιτερότητες και ανάγκες που δεν είχαν ληφθεί υπ όψιν στις σχεδιαστικές απαιτήσεις. Είναι φανερό ότι σε τέτοιες περιπτώσεις χρειάζεται να επιστρέψουμε στην προηγούμενη σχεδιαστική φάση και να σχεδιάσουμε εκ νέου την πορεία μας. Αυτός είναι ο λόγος που δεν επιλέξαμε το μοντέλο του καταρράκτη για την ανάπτυξη του λογισμικού αλλά ένα τροποποιημένο μοντέλο αυτής της μεθοδολογίας αυτό της Επαναληπτικής Αυξητικής Ανάπτυξης. (Cockburn, 2008) Το μοντέλο Επαναληπτικής Αυξητικής Ανάπτυξης - Iterative and Incremental Development Model Όταν ξεκίνησε η παραγωγή του κώδικα για την Δ.Ε. δεν υπήρχε πλήρης εικόνα των λειτουργικών προδιαγραφών και αυτό γιατί τα έγγραφα που περιέγραφαν την δομή των μηνυμάτων είναι πολύ δύσκολο να βρεθούν. Η ανάπτυξη του λογισμικού άρχισε στήνοντας την πλατφόρμα για την επικοινωνία με τον δέκτη και αφήνοντας ανοιχτό το κομμάτι της αποκωδικοποίησης για πολύ αργότερα όταν συγκεντρώθηκαν όλα τα απαραίτητα έγγραφα. Χωρίς λοιπόν να έχουν ορισθεί πλήρως οι λειτουργικές προδιαγραφές το μοντέλο καταρράκτη δεν μπορούσε να ακολουθηθεί. Αντί αυτού λοιπόν επιλέχτηκε το μοντέλο Επαναληπτικής Αυξητικής Ανάπτυξης. Η μεθοδολογία αυτή είναι στην ουσία ένα απ τα τροποποιημένα μοντέλα καταρράκτη που προέκυψαν σταδιακά με τα χρόνια αφού έγινε φανερή η ανάγκη για πιο ευέλικτες διαδικασίες σχεδίασης που να μπορούν αν διαχειριστούν δυναμικές καταστάσεις. Σύμφωνα με την μεθοδολογία αυτή λοιπόν το λογισμικό σχεδιάζεται, υλοποιείται και δοκιμάζεται επαναληπτικά και αυξητικά. Δηλαδή κάθε φορά ένα μικρό μέρος του λογισμικού αναπτύσσεται και προστίθεται στο υπόλοιπο. Το μοντέλο καταρράκτη εφαρμόζεται κυκλικά προσθέτοντας σε κάθε επανάληψη ένα νέο κομμάτι λογισμικού και περισσότερες λειτουργίες σε αυτό. Με αυτόν τον τρόπο το λογισμικό μπορεί να αναπτύσσεται και να δοκιμάζεται απ την πρώτη κιόλας στιγμή παρόλο που οι υπόλοιπες απαιτήσεις από αυτό δεν έχουν ακόμα γνωστοποιηθεί. Ο κύκλος ανάπτυξης ξεκινάει με ένα βραχυπρόθεσμο στόχο, την υλοποίηση ενός μικρού κομματιού του λογισμικού. Αυτό σχεδιάζεται υλοποιείται και ελέγχεται και αν 17

19 είναι απαραίτητο διορθώνεται ξανά και ξανά μέχρι να είναι πλήρως λειτουργικό. Όταν ολοκληρωθεί πλήρως προχωράμε στο επόμενο κομμάτι λογισμικού επαναλαμβάνοντας τον ίδιο κύκλο κάθε φορά. Τα τμήματα που υλοποιήθηκαν σε κάθε κύκλο ανάπτυξης περιγράφονται ξεχωριστά το καθένα στο κεφάλαιο 4. Κάθε τμήμα σχεδιάστηκε, αναπτύχθηκε, δοκιμάστηκε μέχρι να λειτουργεί σωστά και μετά προστέθηκε στο υπόλοιπο λογισμικό, αυξάνοντας έτσι σταδιακά τις λειτουργικές του δυνατότητες, μέχρι να σχηματιστεί ένα λογισμικό που να ικανοποιεί όλες τις απαιτήσεις και τις προδιαγραφές, τόσο αυτές που είχαν καταγραφεί στην αρχή της σχεδιαστικής διαδικασίας όσο και αυτές που παρουσιάστηκαν κατά την διάρκεια της εξέλιξή της. Στο παρακάτω διάγραμμα φαίνεται ο κύκλος σχεδίασης για κάθε τμήμα που προστίθεται στο λογισμικό. (Craig Larman, 2003) Ορισμός Σχεδιαστικών Απαιτήσεων Σχεδιασμός Αρχιτεκτονικής Λογισμικού Υλοποίηση Κώδικα Δοκιμή Λογισμικού Παράδοση και Συντήρηση Εικόνα 4 Σχηματική αναπαράσταση του μοντέλου Επαναληπτικής Αυξητικής Ανάπτυξης 18

20 1.5 Έρευνα - Υπάρχουσα τεχνολογία - Πρωτόκολλα Διάφορες τεχνολογίες χρησιμοποιούνται σήμερα για τον έλεγχο της εναέριας κυκλοφορίας. Χαρακτηριστικό όλων παλαιότερων ή νεότερων είναι ότι παρέχουν πεπερασμένη διακριτική ικανότητα ή αλλιώς ακρίβεια. Η θέση δηλαδή του αεροσκάφους που υποδεικνύουν δεν είναι η ακριβής αλλά κατά προσέγγιση. Για μικρό αριθμό αεροσκαφών αυτό δεν αποτελεί πρόβλημα καθώς σε μιας μικρής πυκνότητας κυκλοφορία οι διαχωρισμοί είναι μεγάλοι, οπότε η ανοχή σε λάθος είναι και αυτή μεγάλη. Σε μια πυκνή εναέρια κυκλοφορία οι αποστάσεις μεταξύ των αεροσκαφών μικραίνουν και τείνουν να φτάσουν τον ελάχιστο επιτρεπόμενο διαχωρισμό ασφαλείας. Σε αυτή την περίπτωση η ανοχή σε λάθος είναι πάρα πολύ μικρή και απαιτείται μεγάλη ακρίβεια στην θέση και στις πληροφορίες που λαμβάνουν οι χειριστές εναέριας κυκλοφορίας ώστε να καθοδηγήσουν τα αεροσκάφη Το πρωτεύον ραντάρ Το πλέον διαδεδομένο μέσο που χρησιμοποιούν σήμερα οι ελεγκτές εναέριας κυκλοφορίας για να εντοπίσουν αεροσκάφη και να προσδιορίσουν την θέση τους, την διεύθυνσή τους, και την ταχύτητα τους είναι το ραντάρ. Τα ραντάρ μπορούν και προσδιορίζουν την απόσταση και την διεύθυνση των αεροσκαφών που βρίσκονται εντός της εμβέλειας της κεραίας τους. Η διεύθυνση υπολογίζεται απ' την θέση της περιστρεφόμενης κεραίας όταν λάβει μια επιστροφή του παλμού που εξέπεμψε και η απόσταση απ' τον χρόνο που χρειάστηκε να επιστρέψει ο παλμός. Ο λοβός όμως της κεραίας γίνεται πιο ευρύς όσο η απόσταση μεγαλώνει γεγονός που μειώνει την ακρίβεια της θέσης. Επιπροσθέτως για να προσδιοριστεί η ταχύτητα των αεροσκαφών χρειάζονται αρκετά στίγματα δηλαδή πολλές περιστροφές της κεραίας που απέχουν αρκετά δευτερόλεπτα μεταξύ τους. Χαρακτηριστικό του πρωτεύοντος ραντάρ είναι ότι δεν απαιτεί κάποιου είδους συνεργασία ή απόκριση απ' τα αεροσκάφη. Είναι εντελώς ανεξάρτητο δηλαδή απ' τον εξοπλισμό που φέρουν τα αεροσκάφη. Ας δούμε αναλυτικά την λειτουργία του ραντάρ. Τα radar (radio detection and ranging) είναι συστήματα ανίχνευσης αντικειμένων. Λειτουργούν χρησιμοποιώντας κεραίες που εκπέμπουν παλμούς ηλεκτρομαγνητικών κυμάτων οι οποίοι όταν συναντήσουν οποιοδήποτε αντικείμενο είτε ανακλώνται είτε διαχέονται. Και στις δύο περιπτώσεις ένα μικρό ποσοστό της ενέργειας που εκπέμφθηκε θα επιστρέψει στην κεραία του ραντάρ. Τα ηλεκτρομαγνητικά κύματα ανακλώνται αρκετά καλά από αντικείμενα με καλή ηλεκτρική αγωγιμότητα και ιδιαιτέρως από μέταλλα. Γενικά τα μικροκύματα διαχέονται όταν υπάρξει μεγάλη αλλαγή στη διηλεκτρική ή διαμαγνητική σταθερά του μέσου στο οποίο διαδίδονται. Αυτό σημαίνει ότι ένα συμπαγές αντικείμενο μέσα στον κενό ή τον αέρα με σημαντική διαφορά στην ατομική πυκνότητα συνήθως θα 19

21 ανακλάσει τα ηλεκτρομαγνητικά κύματα. Σε αντίθεση με το ορατό φως, τις υπέρυθρες και υπεριώδεις ακτίνες τα μικροκύματα υφίστανται μικρή απορρόφηση απ' το μέσο μέσα στο οποίο κινούνται γεγονός που επιτρέπει στα ραντάρ να εντοπίζουν αντικείμενα σε πολύ μεγάλες αποστάσεις. Επίσης στοιχεία όπως σύννεφα, βροχή και ομίχλη που μπλοκάρουν το ορατό φως είναι πρακτικά διάφανα για τα μικροκύματα. Όπως προαναφέραμε η απόσταση από κάποιο "ίχνος" προσδιορίζεται μετρώντας τον χρόνο που χρειάζεται ένας παλμός του ραντάρ για να επιστρέψει. Η απόσταση είναι το μισό του χρόνου επί την ταχύτητα του παλμού στο μέσο που διαδίδεται τον αέρα, αφού το σήμα πρέπει να ταξιδέψει μέχρι τον στόχο και πίσω. Επειδή τα ηλεκτρομαγνητικά κύματα διαδίδονται με την ταχύτητα του φωτός απαιτείται μεγάλη ακρίβεια στα ηλεκτρονικά συστήματα που μετράνε τον χρόνο. Στα περισσότερα ραντάρ δεν είναι δυνατή η ταυτόχρονη εκπομπή και λήψη παλμών οπότε αυτά τα δύο εναλλάσσονται με ένα πολύ γρήγορο προκαθορισμένο ρυθμό. Ο ρυθμός αυτός καθορίζει την μέγιστη εμβέλεια του ραντάρ καθώς η διάρκεια που βρίσκεται το σύστημα σε κατάσταση λήψης υπαγορεύει την μέγιστη απόσταση που θα προλάβει ένας παλμός να καλύψει και να επιστρέψει προτού το σύστημα ξαναρχίσει την εκπομπή. Ένα ραντάρ είναι δύσκολο να έχει ταυτόχρονα καλή κάλυψη και σε κοντινούς και σε μακρινούς στόχους. Αυτό συμβαίνει γιατί οι κοντινοί στόχοι χρειάζονται σύντομους παλμούς με σύντομα διαστήματα λήψης ενδιάμεσα, αφού ο χρόνος που χρειάζεται για να ανακλαστεί και να επιστρέψει ένας παλμός είναι μικρός. Αυτό όμως μεταφράζεται σε λιγότερη εκπομπή ενέργειας ανά μονάδα χρόνου και συνεπώς η ανακλώμενη απ' τους μακρινούς στόχους ενέργεια είναι κι αυτή μικρότερη και δυσκολότερη να ανιχνευτεί. Απ' την άλλη η μεγιστοποίηση της εμβέλειας επιβάλει τη χρήση μεγαλύτερης διάρκειας παλμών, χάνοντας όμως έτσι τις κοντινές πρώτες ανακλάσεις, ώστε να εκπέμπεται περισσότερη ενέργεια, με μεγαλύτερα διαστήματα λήψης μεταξύ τους. (Radar Basics) Transponder To transponder (transmitter-responder) είναι μια ηλεκτρονική συσκευή με την οποία εξοπλίζονται όλα σχεδόν τα αεροσκάφη. Όταν λάβει ένα ασύρματο σήμα αιτήματος-ερώτησης παράγει και εκπέμπει μια απάντηση σε αυτό. Αποτελεί βασικό στοιχείο για να μπορούν τα αεροσκάφη να αναγνωρίζονται και να παρέχουν κάποιες σημαντικές πληροφορίες στα ραντάρ και σε άλλα συστήματα αποφυγής σύγκρουσης. Ο λόγος ύπαρξής του είναι να καλύψει κάποιες αδυναμίες του πρωτεύοντος ραντάρ. Οι πλέον σημαντικές είναι η αδυναμία προσδιορισμού του επιπέδου πτήσης του στόχου (ύψος), καθώς μετράει μόνο απόσταση και διεύθυνση, και η αδυναμία αναγνώρισης του στόχου, αφού οι ανακλάσεις των παλμών απ' τα αεροσκάφη δεν αρκούν για την ταυτοποίησή τους. 20

22 Οι ελεγκτές εναέριας κυκλοφορίας αναθέτουν σε κάθε αεροσκάφος πριν την απογείωση ένα τετραψήφιο οκταδικό κωδικό (Squwak) τον οποίο εισάγουν οι κυβερνήτες στην κονσόλα του transponder. Αυτός ο αριθμός θα συσχετιστεί αμέσως με το ίχνος του αεροσκάφους που έχουν οι ελεγκτές στις οθόνες τους και θα είναι η ταυτότητα που θα το ξεχωρίζει απ' τους υπόλοιπους στόχους. Σε κάθε απάντηση που θα εκπέμπει το transponder συμπεριλαμβάνεται και το Squwak. Πέρα απ' το Squwakτο transponder περιλαμβάνει κάποια ταμεία/μνήμες (registers) στα οποία δρομολογούνται ανά τακτά χρονικά διαστήματα και αποθηκεύονται δεδομένα απ' τα συστήματα πλοήγησης, με πρώτο απ' όλα το επίπεδο πτήσης. Το transponder για να εκπέμψει οποιαδήποτε πληροφορία χρειάζεται κάποια εξωγενή ράδιο-ανάκριση από κάποιο άλλο σύστημα, όπως το δευτερεύον ραντάρ παρακολούθησης ή το TCAS που θα αναλύσουμε στη συνέχεια. Όταν λάβει στην σχετική ερώτηση ανατρέχει στην ανάλογη μνήμη, συγκροτεί ένα μήνυμα που περιλαμβάνει την ζητούμενη πληροφορία και το εκπέμπει. (International Civil Aviation Organization, 2004) Το δευτερεύον ραντάρ Secondary Surveillance Radar Τo δευτερεύον ραντάρ SSR λειτουργεί ακριβώς όπως το πρωτεύον, μόνο που μπορεί ταυτόχρονα να ζητήσει απ' τα αεροσκάφη να παρέχουν κάποιες πρόσθετες πληροφορίες, όπως το ύψος το οποίο πετάνε και την ταυτότητά τους. Λειτουργεί βασισμένο στις ίδιες αρχές λειτουργίας του πρωτεύοντος ραντάρ και μετρά την απόσταση και την διεύθυνση των στόχων αλλά την ίδια στιγμή στέλνει ένα σήμα ανάκρισης προς τους στόχους για να τους παρακινήσει να στείλουν με τη σειρά τους περαιτέρω πληροφορίες. Η διαδικασία αυτή βασίζεται στην ύπαρξη ενεργού transponder πάνω στο αεροπλάνα, με το οποίο όπως είπαμε εξοπλίζονται πλέον όλα τα αεροσκάφη. Το σήμα ανάκρισης του SSR παρακινεί το transponder να εκπέμψει μία απάντηση που περιέχει τα δεδομένα που ζητήθηκαν. Είναι σημαντικό να τονίσουμε τη βασική διαφορά του απ το πρωτεύον ραντάρ, στη λειτουργία του οποίου οι στόχοι έχουν παθητικό ρόλο. Κάθε αντικείμενο που μπορεί να ανακλάσει ραδιοκύματα θα εντοπιστεί απ το ραντάρ και θα παρουσιαστεί στην οθόνη του χειριστή. Το SSR είναι κατά μια έννοια ένα συνεργατικό σύστημα που απαιτεί την συμμετοχή των αεροσκαφών και την ανταλλαγή πραγματικών δεδομένων όχι απλά ηλεκτρομαγνητικών παλμών. (International Civil Aviation Organization, 2004) TCAS Ένα άλλο σύστημα αποφυγής εναέριας σύγκρουσης είναι το λεγόμενο TCAS (Traffic Collision Avoidance System) το οποίο παρακολουθεί τον εναέριο χώρο γύρω απ' το αεροσκάφος και ειδοποιεί τους κυβερνήτες για την παρουσία άλλων αεροσκαφών που είναι εξοπλισμένα με ενεργό transponder και είναι ικανά να ανταποκριθούν σε 21

23 ράδιο-ανακρίσεις. Πρέπει να τονίσουμε ότι η λειτουργία του TCAS είναι εντελώς ανεξάρτητη από επίγειους σταθμούς και τους ελεγκτές εναέριας κυκλοφορίας, βασίζεται αποκλειστικά στην επικοινωνία μεταξύ αεροσκαφών. Κάθε αεροσκάφος που είναι εξοπλισμένο με το σύστημα TCAS εκπέμπει ένα σήμα ανάκρισης (Uplink 1030mhz) προς όλα τα αεροσκάφη που βρίσκονται στον εναέριο χώρο γύρω απ' αυτό, σχετικά με την θέση τους. Τα αεροσκάφη εφόσον είναι εξοπλισμένα με ενεργό transponder εκπέμπουν μια απάντηση σε αυτό το ερώτημα (Downlink 1090mhz). Αυτός ο κύκλος ερώτησης απάντησης πραγματοποιείται αρκετές φορές ανά δευτερόλεπτο. Το σύστημα TCAS σχηματίζει έτσι μια τρισδιάστατη χαρτογράφηση του εναέριου χώρου γύρω απ' το αεροσκάφος γνωρίζοντας την απόσταση κάθε αεροσκάφους (απ' τον χρόνο που χρειάστηκε να λάβει την απάντηση), το επίπεδο πτήσης (έτσι όπως αναφέρθηκε απ' το transponder του αεροσκάφους) και την διεύθυνση (απ' την κατευθυντικότητα της κεραίας). Στη συνέχεια προεκτείνει αυτές τις παραμέτρους χρονικά για να προσδιορίσει αν η μελλοντική θέση των γειτονικών αεροσκαφών μπορεί να αποτελέσει απειλή για πιθανή πρόσκρουση. Σε περίπτωση που ανιχνευτεί ότι ένα άλλο αεροσκάφος βρίσκεται σε συγκλίνουσα πορεία το επόμενο βήμα είναι η αυτόματη συνεννόηση για την πραγματοποίηση ελιγμών αποφυγής και απ' τις δυο πλευρές. Οι ελιγμοί αυτοί στην πραγματικότητα είναι η αντιδιαμετρική μεταβολή του ρυθμού ανόδου/καθόδου και των δύο αεροσκαφών. Αφού το σύστημα καταλήξει στον κατάλληλο ελιγμό ενημερώνει τους κυβερνήτες μέσω οπτικών και ηχητικών σημάτων. Εικόνα 5 Προστατευτικός όγκος του TCAS Κάθε αεροσκάφος που είναι εξοπλισμένο με το TCAS περιβάλλεται από έναν όγκο που είναι υπό διαρκή επίβλεψη του συστήματος και θεωρείται προστατευόμενος και δεν 22

24 πρέπει υπό καμία συνθήκη να παραβιάζεται από άλλα αεροσκάφη. Το μέγεθος αυτού του όγκου μεταβάλλεται και εξαρτάται από το επίπεδο πτήσης, την ταχύτητα και την κατεύθυνση των διερχόμενων αεροσκαφών. Το TCAS μπορεί επίσης να λάβει και να αξιοποιήσει τις εκπομπές ads-b που θα αναλύσουμε στη συνέχεια από τα γειτονικά αεροσκάφη αφού και αυτές χρησιμοποιούν την ίδια συχνότητα (1090MHz). Αυτό είναι γνωστό ως υβριδική παρακολούθηση και χρησιμοποιείται σήμερα με σκοπό την μείωση του ρυθμού ανάκρισης των αεροσκαφών απ' το TCAS και ταυτόχρονα την μείωση της χρήσης του καναλιού 1030/1090 MHz που μακροπρόθεσμα θα επεκτείνει τον επιχειρησιακό χρόνο ζωής του συστήματος, καθώς σε περιοχές πυκνής εναέριας κυκλοφορίας το εύρος του καναλιού είναι οριακό. Ακόμα η εμβέλεια των εκπομπών ads-b είναι μεγαλύτερη γεγονός που μπορεί να αυξήσει τον προστατευόμενο όγκο γύρω από κάθε αεροσκάφος και να καταστήσει έτσι πιο γρήγορο τον εντοπισμό κάποιας απειλής. Εικόνα 6 Ενδείξεις του TCAS στις οθόνες πλοήγησης Παρόλο που η χρήση του TCAS αυξάνει αρκετά την ασφάλεια των πτήσεων υπάρχουν κάποια αδύναμα σημεία που έχουν φέρει στην επιφάνεια αρκετούς ενδοιασμούς. Η εξάρτησή του απ' την ακρίβεια του επιπέδου πτήσης που αναφέρουν τα διερχόμενα αεροσκάφη και το ενδεχόμενο να μην εκτελέσει κάποιο τον προτεινόμενο ελιγμό αποφυγής σύγκρουσης, είναι τα κύρια σημεία που αναδεικνύουν οι έρευνες γύρω απ' την εκτενή χρήση του TCAS. Επιπροσθέτως έχουν αναφερθεί περιπτώσεις στις οποίες το σύστημα προτείνει ως ελιγμό αποφυγής την κάθοδο προς το έδαφος σε μη ασφαλές επίπεδο πτήσης και σε άλλες περιπτώσεις την άνοδο σε επίπεδο πτήσης πάνω απ' το ανώτατο όριο που αντέχει κατασκευαστικά το αεροσκάφος. Μέχρι σήμερα οι προτάσεις του συστήματος για ελιγμούς αποφυγής σύγκρουσης περιορίζονται στην μεταβολή του ρυθμού ανόδου/καθόδου του αεροσκάφους. Σε ορισμένες σύνθετες καταστάσεις όμως, όπως σε ένα σενάριο που περιλαμβάνει περισσότερα από δύο αεροσκάφη των οποίων οι πορείες συγκλίνουν, είναι αποτελεσματικότερο και ασφαλέστερο να γίνουν ελιγμοί αποφυγής και στον οριζόντιο άξονα. Τέλος εξαιρετικά 23

25 σημαντικό είναι πως ελιγμοί αποφυγής που προτείνει το σύστημα, το κατά πόσο ακολουθούνται απ' τους κυβερνήτες, και ο λόγος που προέκυψαν εξαρχής, δεν γίνονται γνωστοί στους ελεγκτές εναέριας κυκλοφορίας γεγονός που μπορεί να δημιουργήσει αντικρουόμενες οδηγίες απ' το σύστημα και τον επίγειο έλεγχο. (FAA, 2011) 1.6 Το πρωτόκολλο ADS-B (Automatic dependent surveillance broadcast) Τo ads-b είναι κατά κύριο λόγο μια τεχνική για τον έλεγχο της εναέριας κυκλοφορίας. Σε αντίθεση με το πρωτεύον ραντάρ είναι ένα συνεργατικό σύστημα με την έννοια ότι απαιτεί την συνεργασία του υπό παρακολούθηση στόχου των αεροσκαφών δηλαδή. Ένα αεροσκάφος εξοπλισμένο με ads-b προσδιορίζει το ίδιο την θέση του και την κινητική του κατάσταση και τα εκπέμπει περιοδικά προς πιθανούς αποδέκτες των πληροφοριών αυτών (Γνωστό και ως adsb-out). Τα αεροσκάφη χρησιμοποιούν το παγκόσμιο δορυφορικό σύστημα πλοήγησης (GPS) και σε κάποιες σπάνιες περιπτώσεις αδρανειακά συστήματα για να συγκεντρώσουν τις πληροφορίες αυτές. Είναι σημαντικό να κατανοήσουμε ότι η εκπομπή της πληροφορίας γίνεται αυθόρμητα ανά τακτά διαστήματα ανεξάρτητα απ' το αν υπάρχει ή όχι κάποιος σταθμός λήψης, αντίθετα με την λειτουργία του δευτερεύοντος ραντάρ που η εκπομπή είναι υποκινούμενη απ' τον σταθμό λήψης. Αποδέκτες των πληροφοριών μπορεί να είναι κάποιος επίγειος σταθμός παρακολούθησης ή κάποιο άλλο αεροσκάφος που είναι εξοπλισμένο με είσοδο ads-b αλλιώς adsb-in. Το πρωτόκολλο ads-b, στα ελληνικά αυτόματη εξαρτημένη εκπομπή παρακολούθησης, είναι αυτόματο υπό την έννοια ότι δεν χρειάζεται ανθρώπινη παρέμβαση ή εξωγενής παρακίνηση από άλλο σταθμό για να γίνει η εκπομπή της πληροφορίας και εξαρτημένο καθώς βασίζεται στα εγκατεστημένα συστήματα πλοήγησης και επικοινωνίας των αεροσκαφών Τα τμήματα ADS-B Ένα ολοκληρωμένο σύστημα ads-b αποτελείται από τρία επιμέρους τμήματα. Το πρώτο είναι το υποσύστημα παραγωγής και εκπομπής μηνυμάτων στην πηγή δηλαδή το αεροσκάφος. Αυτό περιλαμβάνει την συλλογή των πληροφοριών από διάφορες πηγές την μετατροπή και την κατάλληλη κωδικοποίηση τους. Δεδομένα λαμβάνονται από τα συστήματα πλοήγησης του αεροσκάφους και οδηγούνται στο λεγόμενο transponderόπου επεξεργάζονται κατάλληλα για αποστολή. Το δεύτερο υποσύστημα είναι το πρωτόκολλο επικοινωνίας, δηλαδή η διαμόρφωση των πληροφοριών για αποστολή με ασύρματα μέσα, τα ραδιοκύματα και η τελική εκπομπή αυτών από το αεροσκάφος στο περιβάλλοντα χώρο. Υπάρχουν δύο ραδιοσυχνότητες που χρησιμοποιούνται για αυτό το σκοπό η κάθε μια με τα δικά της χαρακτηριστικά. Η γενική τάση που τείνει να γίνει ο κανόνας είναι η χρήση των 1090MHz (Extended Squiter ES) από εμπορικούς αερομεταφορείς και μεγάλα ιδιωτικά αεροσκάφη και των 978MHz (UAT) από την γενική αεροπορία. Το τρίτο τμήμα είναι το σύστημα λήψης. Αποτελείται από μια διάταξη λήψης των ασύρματων μηνυμάτων, τους αλγόριθμους 24

26 μετατροπής και το λογισμικό αποκωδικοποίησης, την συγκρότηση αναφορών, την αποθήκευση τους και τέλος την παρουσίαση αυτών στους παρατηρητές-ελεγκτές της εναέριας κυκλοφορίας. (FAA, 2012) Η διπλωματική εργασία αυτή αφορά την σχεδίαση και την υλοποίηση του συστήματος επεξεργασίας των ληφθέντων μηνυμάτων και την απεικόνισή του περιεχομένου τους Τι προσφέρει το ADS-B Αναφέραμε νωρίτερα πως οι δύο βασικές ανάγκες που πρέπει να ικανοποιηθούν είναι η εξασφάλιση διαρκούς διαχωρισμού ασφαλείας μεταξύ των αεροσκαφών και η ελαχιστοποίηση του χρόνου που παραμένουν στον αέρα. Με την χρήση της τεχνολογίας ads-b μπορούμε να επιτύχουμε και τα δύο. Ένα αεροσκάφος εξοπλισμένο με adsb-out παρέχει στους ελεγκτές εναέριας κυκλοφορίας πληροφορίες σχετικά με τη θέση και την κινητική κατάστασή του σε πραγματικό χρόνο και με πολύ μεγάλη ακρίβεια συγκριτικά με τα συστήματα που βασίζονται στα ραντάρ. Συνεπώς οι ελεγκτές γνωρίζουν διαρκώς τις αποστάσεις μεταξύ των αεροσκαφών και είναι σε θέση να δράσουν άμεσα για να τις διατηρήσουν σε ασφαλή επίπεδα. Το παραπάνω ισχύει και για αεροσκάφη που τροχοδρομούν. Σε αντίθεση με τα ραντάρ που δεν έχουν την δυνατότητα να παρακολουθούν αεροσκάφη που βρίσκονται στο έδαφος το ads-b λειτουργεί και εξακολουθεί να εκπέμπει τις πληροφορίες πριν την απογείωση και μετά την προσγείωση. Η διαθεσιμότητα αναφορών με μεγάλη ακρίβεια καθιστά πραγματοποιήσιμη την μείωση του ελάχιστου διαχωρισμού ασφαλείας. Αυτό σημαίνει ότι οι ελεγκτές μπορούν να επιτρέψουν στα αεροσκάφη να ταξιδεύουν πιο κοντά το ένα στο άλλο διατηρώντας όμως το ίδιο επίπεδο ασφάλειας. Η ενέργεια αυτή έχει πολλά θετικά αποτελέσματα. Αρχικά ο εναέριος χώρος αποκτά μεγαλύτερη χωρητικότητα που σημαίνει πως οι αεροδιάδρομοι και οι τερματικές περιοχές μπορούν να εξυπηρετήσουν μεγαλύτερο αριθμό αεροσκαφών. Μεγάλος αριθμός αεροσκαφών μπορεί πλέον να προσεγγίζει ταυτόχρονα και με ασφάλεια τους διαδρόμους προσγείωσης μειώνοντας το χρόνο αναμονής. Επίσης η μείωση αυτή του ελάχιστου διαχωρισμού ασφαλείας τείνει να ελαττώσει την τεθλασμένη διαδρομή που ακολουθούν τα αεροσκάφη και να της δώσει περισσότερο χαρακτήρα ευθείας. Κοντινότερες αποστάσεις διαχωρισμού επιτρέπουν στα αεροσκάφη να αποκλίνουν λιγότερο απ' την πορεία τους και κατά συνέπεια εξοικονομούν πολύτιμο χρόνο, καύσιμα και εκπέμπουν λιγότερους ρύπους. Στην πραγματικότητα η τεχνολογία ads-b μας φέρνει ένα βήμα πιο κοντά υλοποίηση του σχεδίου ελεύθερης πτήσης ("freeflight") που συζητείται τα τελευταία χρόνια. Σύμφωνα με αυτή την ιδέα η χρήση των αεροδιαδρόμων καταργείται και κάθε αεροσκάφος θα ακολουθεί την ευθεία που ενώνει το σημείο αναχώρησης με τον προορισμό του, την πιο σύντομη διαδρομή δηλαδή. Ο κεντρικός επίγειος έλεγχος καταργείται και η ρύθμιση της κυκλοφορίας επιτελείται αυτόματα και δυναμικά με την επικοινωνία μεταξύ ηλεκτρονικών συστημάτων των αεροσκαφών Κάτι τέτοιο σήμερα είναι ακόμα επικίνδυνο καθώς μια τέτοια άτακτη εναέρια κυκλοφορία απαιτεί παροχή τεράστιας ακρίβειας πληροφοριών στους ελεγκτές, περιορισμός που η τεχνολογία 25

27 ads-b μπορεί να ικανοποιήσει. Σταδιακά ο εξοπλισμός των αεροσκαφών με ads-b θα είναι υποχρεωτικός από τον νόμο. Ήδη η Αυστραλία είναι η πρώτη χώρα με δίκτυο επίγειων σταθμών λήψης εθνικής εμβέλειας και στις Ηνωμένες Πολιτείες μέχρι το 2020 θα είναι υποχρεωτικός ο εξοπλισμός adsb-out σε όλα τα μεγάλα αεροσκάφη στα πλαίσια του NextGen. Το Next Generation Air Transportation System είναι η προσπάθεια των Ηνωμένων Πολιτειών να αντιμετωπίσουν την σημερινή συμφόρηση στον εναέριο χώρο της χώρας και να διαχειριστούν την μελλοντική αυξανόμενη ζήτηση. Η Ευρώπη και συγκεκριμένα το Eurocontrol, ο κεντρικός οργανισμός ελέγχου της εναέριας κυκλοφορίας, με τη σειρά του ακολουθεί στα ίδια βήματα προς την πλήρη υιοθέτηση της τεχνολογίας ads-b. Πέρα απ' την κάλυψη των δύο βασικών αναγκών η χρήση της τεχνολογίας ads-b έχει και άλλα ευεργετικά αποτελέσματα και εφαρμογές. Αρχικά ένα πλήρως εξοπλισμένο αεροσκάφος με adsb-out και adsb-in πέρα απ' την ικανότητα να αναφέρει το ίδιο τη θέση του, θα έχει και την δυνατότητα να παρακολουθεί μέσα στον θάλαμο διακυβέρνησης ζωντανά την εναέρια κυκλοφορία στην γύρω περιοχή λαμβάνοντας απευθείας σήματα από άλλα αεροσκάφη. Ακόμα και ένα αεροσκάφος που είναι εξοπλισμένο μόνο με adsb-out θα επωφεληθεί απ' το γεγονός ότι οι ελεγκτές εναέριας κυκλοφορίας μπορούν να το παρακολουθούν με αξιοπιστία και ακρίβεια διότι μπορούν να το καθοδηγούν με ασφάλεια και αποδοτικότητα μέσα στον εναέριο χρόνο. Σε μικρά αεροσκάφη γενικής αεροπορίας που συχνά δεν χρησιμοποιούν όργανα για την πλοήγησή τους αλλά την όραση (πτήση VFR) το adsb-in μπορεί να ενισχύσει την εξασφάλιση οπτικής επαφής με διερχόμενο αεροσκάφος αλλά και την οπτική προσέγγιση στον διάδρομο προσγείωσης. Η τεχνολογία ads-b μπορεί να καταστήσει πραγματοποιήσιμη την λειτουργία των αεροδρομίων σε συνθήκες πολύ χαμηλής ορατότητας που ήταν απαγορευτικές στο παρελθόν, αφού όπως είπαμε η ακριβής αναφορά της θέσης είναι εφικτή και στο έδαφος. Μπορεί και διευρύνει την κάλυψη των υπηρεσιών ελέγχου εναέριας κυκλοφορίας σε αρκετές απομακρυσμένες περιοχές που βρίσκονται εκτός εμβέλειας των ραντάρ. Μια άλλη καινοτόμα εφαρμογή που υποστηρίζει το ads-b είναι η δυνατότητα εκπομπής της πρόθεσης αλλαγής κινητικής κατάστασης. Πιο συγκεκριμένα όταν ένα αεροσκάφος πρόκειται να αλλάξει κάποια στιγμή κατεύθυνση, ταχύτητα ή ύψος ώστε να ακολουθήσει το σχέδιο πτήσης του, το σύστημα ads-b είναι ικανό να εκπέμψει αυτές τις πληροφορίες προκειμένου να γίνει γνωστή η πρόθεσή του και να γίνει μια πρόβλεψη-προσέγγιση της μελλοντικής θέσης του αεροσκάφους. Έτσι, σε ένα ενοποιημένο σύστημα ελέγχου εναέριας κυκλοφορίας όπως το NextGen, οι ελεγκτές μπορούν να βελτιστοποιήσουν τον τρόπο που καθοδηγούν τα αεροσκάφη μέσα και έξω από περιοχές αυξημένης κυκλοφορίας και να εξασφαλίσουν πιο ομαλή, συνεχή άνοδο και κάθοδο χωρίς ενδιάμεσα στάδια αναμονής, αυξάνοντας ταυτόχρονα τον αριθμό αεροσκαφών που μπορεί να εξυπηρετήσει ένας διάδρομος. Μία πολλή χρήσιμη εφαρμογή που υποστηρίζεται μέσω του ads-b είναι το λεγόμενο TIS-B (Traffic information services broadcast). Η εφαρμογή αυτή επιτρέπει σε αεροσκάφη που είναι εξοπλισμένα με είσοδο adsb-in να λαμβάνουν από επίγειους 26

28 σταθμούς πληροφορίες για το σύνολο της εναέριας κυκλοφορίας της περιοχής στην οποία βρίσκονται, συμπεριλαμβάνοντας δηλαδή και τα αεροσκάφη που δεν φέρουν εξοπλισμό ads-b αλλά παρακολουθούνται απλά από τα επίγεια ραντάρ. Επιτυγχάνεται επίσης η διασύνδεση μεγάλων εμπορικών αεροσκαφών που χρησιμοποιούν την συχνότητα 1090ΕS με τα μικρά αεροσκάφη που χρησιμοποιούν την 978UAT και μπορεί να βρεθούν σε εγγύτητα όταν βρίσκονται σε χαμηλό υψόμετρο κοντά σε τερματικές περιοχές αεροδρομίων. Η συνολική εικόνα της εναέριας κυκλοφορίας είναι πλέον διαθέσιμη σε όλους. Η χρήση του ads-b μπορεί να ενισχύσει την απόδοση της λειτουργίας του ΤCAS μειώνοντας τον αριθμό των ενεργών ανακρίσεων μεταξύ των transponderτων αεροσκαφών, αυξάνοντας έτσι την εμβέλεια δράσης σε μια περιοχή πυκνής κυκλοφορίας. Παράλληλα μειώνει και τον αριθμό ψεύτικων συναγερμών συνδυάζοντας τις διαθέσιμες πληροφορίες πρόθεσης αλλαγής κινητικής κατάστασης των αεροσκαφών. Η ακρίβεια που παρέχει το ads-b επιτρέπει στην ουσία την λεπτομερή καταγραφή δεδομένων ολόκληρου του ταξιδιού ενός αεροσκάφους. Είναι εφικτό έτσι να γίνεται εκ' των υστέρων έλεγχος του κατά πόσο το σχέδιο πτήσης ακολουθήθηκε και κατά πόσο οι κυβερνήτες συμμορφώνονται με τους κανονισμούς και τις οδηγίες. Τέλος πολύ σημαντικό είναι το γεγονός ότι οι επιχειρήσεις έρευνας και διάσωσης μπορούν να επωφεληθούν εξαιρετικά από το ads-b. Γνωρίζοντας την ακριβή θέση των αεροσκαφών μπορούν να επέμβουν άμεσα στην περιοχή που υπάρχει ανάγκη. (FAA, 2012) 27

29 Εικόνα 7 28

30 ΚΕΦΑΛΑΙΟ 2 Ανάλυση Σχεδιαστικών Απαιτήσεων 2.1 Απαιτήσεις χρήσης Το υπό σχεδίαση πληροφοριακό σύστημα πρέπει να ικανοποιεί κάποιες απαιτήσεις χρήσης. Αυτές ορίζονται ως οι λειτουργίες που θέλουν οι χρήστες να εκτελεί το σύστημα και οι πληροφορίες που θέλουν να τους παρέχει Γενικά χαρακτηριστικά του συστήματος Η εφαρμογή αφού πέρα απ την θεωρητική προσέγγιση θα υλοποιηθεί κιόλας πρέπει να είναι πλήρως λειτουργική και αξιόπιστη. Το λογισμικό απ τη φύση του προορίζεται για αδιάλειπτη λειτουργία. Αυτό σημαίνει ότι θα πρέπει να λειτουργεί συνεχώς χωρίς να απαιτεί την φυσική παρουσία ενός ανθρώπου για να το ελέγχει. Συνεπώς θα πρέπει να λειτουργεί αδιάκοπα,αποδοτικά, χωρίς να παρουσιάζει προβλήματα. Θα πρέπει επίσης η εφαρμογή να είναι εύχρηστη και να επιτρέπει στους χρήστες να αλληλεπιδρούν μαζί της με ευκολία και επιτυχία. Τέλος σε ότι αφορά το κομμάτι της διεπαφής είναι επιθυμητό ένα αισθητικά άρτιο αποτέλεσμα έτσι ώστε να είναι ευχάριστη στους χρήστες και να τους παρακινεί να την χρησιμοποιήσουν Λειτουργικές απαιτήσεις Απ την λειτουργία του συστήματος θέλουμε τα εξής: Να παρουσιάζει την εναέρια κυκλοφορία πάνω σε έναν χάρτη Ο χάρτης να είναι προσβάσιμος απ το διαδίκτυο Να εμφανίζει κάθε αεροσκάφος σωστά τοποθετημένο και προσανατολισμένο πάνω στον χάρτη Να εμφανίζει της πληροφορίες πτήσης (Αριθμός πτήσης, Επίπεδο πτήσης, Ταχύτητα, Κατεύθυνση, Ρυθμό ανόδου/καθόδου, Εταιρεία, Τύπος αεροσκάφους, Αφετηρία, Προορισμός, Εκτιμώμενη ώρα άφιξης και Ώρα λήψης τελευταίου στίγματος) μόλις επιλεγεί ένα συγκεκριμένο αεροσκάφος Να εμφανίζει φωτογραφίες του κάθε αεροσκάφους όταν αυτό επιλεγεί Να εμφανίζει το ίχνος της διαδρομής που έχει ακολουθήσει κάθε αεροσκάφος όταν αυτό επιλεγεί Να εμφανίζει το ίχνος όλων των αεροσκαφών που είναι εντός εμβέλειας την δεδομένη στιγμή 29

31 Να εμφανίζει όλα τα ίχνη όλων των αεροσκαφών σε ημερήσια ή μηνιαία βάση Να είναι δυνατή η αναζήτηση κάποιου αεροσκάφους με βάση τον αριθμό πτήσης του Να είναι δυνατή η αναζήτηση κάποιου αεροσκάφους με βάση το registration ή το aircraft address του Να εμφανίζει λίστα με όλα τα αεροσκάφη που βρίσκονται τη δεδομένη στιγμή εντός εμβέλειας του συστήματος Να εμφανίζει λίστα με όλα τα αεροσκάφη που έχουν βρεθεί εντός εμβέλειας του συστήματος Να εμφανίζει το ιστορικό όλων των θέσεων του κάθε αεροσκάφους όταν αυτό ζητηθεί Να εμφανίζονται στον χάρτη όλα τα διεθνή αεροδρόμια και να παρέχεται η δυνατότητα να εμφανίζονται όσα αεροσκάφη βρίσκονται στην τερματική περιοχή κάποιου. Να εμφανίζει αν υπάρχει καθυστέρηση σε μια συγκεκριμένη πτήση Να εμφανίζει την συχνότητα πτήσεων πάνω από μια συγκεκριμένη περιοχή Να υπάρχει δυνατότητα εμφάνισης μόνο των αεροσκαφών που ανήκουν στον στόλο μιας συγκεκριμένης εταιρείας Να υπάρχει δυνατότητα οι χρήστες να επιλέξουν οι ίδιοι ένα σύνολο αεροσκαφών που θέλουν να εμφανίζονται στον χάρτη Να υπάρχει δυνατότητα επιλογής αεροναυτικού χάρτη στον οποίο θα διακρίνονται οι αεροδιάδρομοι, τα αεροδρόμια και τα ραδιοβοηθήματα Να υπάρχει δυνατότητα ειδοποίησης όταν ένα συγκεκριμένο αεροσκάφος βρεθεί εντός εμβέλειας του συστήματος Να υπάρχει δυνατότητα ειδοποίησης όταν ένα συγκεκριμένο αεροσκάφος ή πτήση προσγειωθεί σε ένα συγκεκριμένο αεροδρόμιο 30

32 2.2 Λειτουργικές προδιαγραφές Έχοντας συγκεντρώσει τις λειτουργίες που θέλουμε να πραγματοποιεί το σύστημα μπορούμε να προχωρήσουμε στον προσδιορισμό τον λειτουργικών προδιαγραφών. Των στοιχείων και των διαδικασιών δηλαδή που πρέπει το σύστημα να έχει και να εκτελεί έτσι ώστε να ικανοποιεί τις απαιτήσεις που έχουν οι χρήστες απ τη λειτουργία του. Αν το διαχωρίσουμε στα βασικά επιμέρους τμήματά του, την διάταξη λήψης, το λογισμικό αποκωδικοποίησης, τη βάση δεδομένων και την διεπαφή μπορούμε να επισημάνουμε τις λειτουργίες που πρέπει να διενεργεί το καθένα Διάταξη λήψης Ο ρόλος της διάταξης λήψης είναι η προσαρμογή των ηλεκτρομαγνητικών κυμάτων που ταξιδεύουν στο χώρο και φέρουν την διαμορφωμένη πληροφορία, σε ενσύρματη γραμμή μεταφοράς και η αποδιαμόρφωση της χρήσιμης πληροφορίας. Πιο συγκεκριμένα τα αεροσκάφη εκπέμπουν πακέτα πληροφοριών στην συχνότητα των 1090MHz με διαμόρφωση θέσης παλμού (pulse position modulation-ppm). Περισσότερα για την διαμόρφωση ppm θα δούμε στη συνέχεια. Στη διάταξη λήψης θα πρέπει να γίνεται η αποδιαμόρφωση του σήματος και η εξαγωγή των πληροφοριών σε δυαδική μορφή για την προώθησή τους στον Η/Υ που τρέχει το λογισμικό αποκωδικοποίησης. Η διάταξη λήψης είναι ένα κομμάτι που αγοράστηκε έτοιμο προς χρήση απ το εμπόριο και οι προδιαγραφές του είναι δεδομένες Λογισμικό αποκωδικοποίησης Σειρά έχει το λογισμικό αποκωδικοποίησης, το οποίο λαμβάνει σαν είσοδο μια συνεχή ροή δυαδικών δεδομένων από την θύρα που είναι συνδεδεμένος ο δέκτης. Το λογισμικό θα πρέπει να διαβάζει τη ροή αυτή, να συγχρονίζεται μαζί της, να ξεχωρίζει τα bytes εκείνα που αποτελούν ένα αυτούσιο πακέτο χρήσιμης πληροφορίας και να τα απομονώνει απ' τα υπόλοιπα που δεν αποτελούν κομμάτι κάποιου μηνύματος. Στη συνέχεια θα πρέπει να αποκωδικοποιεί τα πακέτα από τη δυαδική μορφή σε αναγνώσιμα μηνύματα χρησιμοποιώντας τους κατάλληλους αλγόριθμους. Έπειτα θα πρέπει να συγκεντρώνει τις πληροφορίες που δέχεται για κάθε αεροσκάφος μία-μία μέχρι να συνθέσει την πλήρη διανυσματική εικόνα των αεροσκαφών μαζί με τα υπόλοιπα δεδομένα πτήσης για την χρονική στιγμή της λήψης και να την αποθηκεύει με κατάλληλο τρόπο σε κάποια βάση δεδομένων. Από αυτή τη βάση δεδομένων θα πρέπει να αντλεί τις πληροφορίες η διεπαφή για να τις εμφανίσει στους χρήστες. Το σύστημα όπως προαναφέραμε θα πρέπει να είναι εφάμιλλο με αυτά που έχουν στην διάθεσή τους οι ελεγκτές εναέριας κυκλοφορίας και αφού απ τη φύση του είναι μια εφαρμογή που σχετίζεται τόσο άμεσα με την ασφάλεια των πτήσεων θα πρέπει να 31

33 είναι αξιόπιστο, τα δεδομένα που θα παράγει θα πρέπει να είναι αληθή και με να έχουν μεγάλη ακρίβεια. Θα πρέπει να διαχωρίζει και να απορρίπτει ψευδή δεδομένα ή δεδομένα που έχουν αλλοιωθεί κατά την λήψη τους. Αυτό σημαίνει ότι θα πρέπει να περιέχει δομές τέτοιες που να ελέγχουν κατά πόσο οι πληροφορίες είναι ορθές Βάση δεδομένων Η κινητική κατάσταση των αεροσκαφών μαζί με τις στατικές πληροφορίες, αφού αποκωδικοποιηθούν θα πρέπει με κάποιο τρόπο να αποθηκεύονται. Για αυτό το σκοπό θα πρέπει να υπάρχει μια βάση δεδομένων στην οποία να δημιουργούνται εγγραφές για κάθε αεροσκάφος που να περιέχουν τις ζητούμενες πληροφορίες για κάθε στιγμιότυπο λήψης. Η βάση δεδομένων αυτή κάθε αυτή στην δομή που αποφασίσαμε να της δώσουμε δεν έχει ενεργητικό ρόλο, αλλά λειτουργεί σαν μια δεξαμενή αποθήκευσης και γι' αυτό μας ενδιαφέρει περισσότερο η αρχιτεκτονική της, η οποία θα πρέπει να εξυπηρετεί και να διευκολύνει τόσο την εγγραφή στοιχείων απ' το λογισμικό αποκωδικοποίησης όσο και την ανάγνωση των στοιχείων αυτών από την πλευρά της διεπαφής. Η βάση δεδομένων θα πρέπει να έχει έναν πίνακα που να περιέχει ένα πεδίο για κάθε πληροφορία πτήσης που δεχόμαστε (Αριθμός πτήσης, Επίπεδο πτήσης, Ταχύτητα, Κατεύθυνση, Ρυθμό ανόδου/καθόδου, και Ώρα λήψης τελευταίου στίγματος) που να λειτουργεί σαν αρχείο, στον οποίο θα αποθηκεύονται όλα τα στίγματα των αεροσκαφών για να μπορούμε να ανατρέχουμε σε αυτά όταν χρειαστεί. Επίσης η δομή της θα πρέπει να βελτιστοποιηθεί έτσι ώστε να επιτρέπει την γρήγορη αναζήτηση και εξαγωγή αποτελεσμάτων σε σύνθετα ερωτήματα, όπως προκύπτουν από τις απαιτήσεις χρήσης Διεπαφή - Ιστότοπος Ο ρόλος της διεπαφής είναι να αποτελέσει τη γέφυρα μεταξύ των πληροφοριών που αποθηκεύονται στην ΒΔ και των χρηστών και να επιτρέψει την αλληλεπίδραση μεταξύ τους. Όπως προαναφέραμε στις απαιτήσεις η διεπαφή θα πρέπει να περιέχει έναν χάρτη πάνω στον οποίο θα εμφανίζονται τα αεροσκάφη, σωστά προσανατολισμένα και τοποθετημένα, τα οποία όταν επιλεγούν θα εμφανίζονται οι πληροφορίες πτήσης τους. Για να γίνει αυτό αρχικά θα πρέπει να υπάρξει μια σύνδεση της διεπαφής με την βάση δεδομένων. Στην συνέχεια η διεπαφή θα πρέπει να επιλέγει το σύνολο των εγγραφών που θα πρέπει αν εμφανιστούν και να προσαρμόζει τις πληροφορίες σε μια μορφή κατάλληλη για να τροφοδοτήσει τον χάρτη. Πιο συγκεκριμένα την διεπαφή θα αποτελέσει μια ιστοσελίδα η οποία θα φιλοξενεί έναν χάρτη. Στον χάρτη αυτόν θα παρουσιάζεται η εικόνα της εναέριας κυκλοφορίας. Για να επιτευχθεί αυτό θα πρέπει ο χάρτης να αντλεί τις πληροφορίες για τα 32

34 αεροσκάφη που βρίσκονται εντός εμβέλειας του δέκτη την συγκεκριμένη χρονική στιγμή απ την βάση δεδομένων. Θα πρέπει επίσης να παρέχει στους χρήστες τα κατάλληλα εργαλεία για να δημιουργούν τα ανάλογα ερωτήματα (queries)που θα δρομολογούνται στην βάση δεδομένων, η οποία θα επιστρέφει το σύνολο των εγγραφών που αντιστοιχούν σε αυτό που ζήτησαν οι χρήστες να εμφανιστεί στον χάρτη. Για κάθε μία απ τις απαιτήσεις χρήσης που σχετίζεται με την εμφάνιση ενός υποσυνόλου των εγγραφών της ΒΔ στον χάρτη με βάση συγκεκριμένων κριτηρίων, όπως παραδείγματος χάρη η εμφάνιση του ιστορικού θέσεων ενός αεροσκάφους ή του ιστορικού θέσεων ενός ένα αεροσκάφους για μια συγκεκριμένη χρονική περίοδο ή του συνόλου αεροσκαφών που εκτελούν μια συγκεκριμένη πτήση, η διεπαφή θα πρέπει να παρέχει στους χρήστες τα ανάλογα μενού και τις ανάλογες επιλογές για να συντάξουν τα κατάλληλα ερωτήματα προς την ΒΔ. 2.3Αναμενόμενα αποτελέσματα Τα αποτελέσματα που θέλουμε να δούμε με την ολοκλήρωση της ΔΕ μπορούν να χωριστούν σε δύο κατηγορίες. Η πρώτη κατηγορία περιλαμβάνει τα στοιχεία που θα παρέχει το σύστημα σαν έξοδο, τις χρήσιμες πληροφορίες δηλαδή και τον τρόπο που γίνεται η διαχείριση και η παρουσίασή τους. Η δεύτερη κατηγορία περιλαμβάνει τις εσωτερικές λειτουργίες του υπό-σχεδίαση συστήματος την αρχιτεκτονική του και την δομή των επιμέρους τμημάτων του. Ο λόγος που γίνεται ο διαχωρισμός αυτός είναι το γεγονός ότι οι χρήστες του συστήματος έρχονται σε επαφή και αντιλαμβάνονται μόνο το πρώτο κομμάτι, τις πληροφορίες που διατίθενται μέσω της διεπαφής και αγνοούν πλήρως τις εσωτερικές λειτουργικές διεργασίες του συστήματος. Γι ' αυτό τον λόγο θα γίνει ξεχωριστή προσέγγιση στο καθένα Αναμενόμενα αποτελέσματα απ την έξοδο του συστήματος Διάνυσμα θέσης - Vector Ας ξεκινήσουμε απ' την πρώτη κατηγορία, τις πληροφορίες που περιμένουμε να δούμε, την διαχείριση και την παρουσίαση. Σκοπεύουμε να υλοποιήσουμε ένα σύστημα adsb-in, αυτό σημαίνει θα μπορούμε να παρακολουθήσουμε την εναέρια κυκλοφορία σε πραγματικό χρόνο. Πιο συγκεκριμένα για κάθε αεροσκάφος εντός εμβέλειας της διάταξης λήψης περιμένουμε να γίνει αντιστοίχιση με ένα διάνυσμα τοποθετημένο και προσανατολισμένο σωστά μέσα σε τρεις διαστάσεις. Για να γίνει αυτό χρειάζονται τρεις συντεταγμένες, δύο γωνίες και ένα μέτρο. Αυτά είναι το γεωγραφικό πλάτος (latitude), το γεωγραφικό μήκος (longtitude), το επίπεδο πτήσης (ύψος - flightlevel), η διεύθυνση πορείας του αεροσκάφους (course - η γωνία που σχηματίζει η κατεύθυνση του 33

35 αεροσκάφους με τον πραγματικό βορρά), η κάθετη ταχύτητα (verticalspeed ο ρυθμός ανόδου/καθόδου)και η ταχύτητα εδάφους. Η ταχύτητα των αεροσκαφών αναφέρεται πάντα ως ταχύτητα εδάφους (groundspeed) και θεωρείται πάντα ένα διάνυσμα παράλληλο με το έδαφος. Η δεύτερη γωνία που χρειαζόμαστε, αυτή που σχηματίζει ο διαμήκης άξονας του αεροσκάφους με ένα επίπεδο παράλληλο προς το έδαφος, απορρέει απ' τον ρυθμό ανόδου/καθόδου. Γνωρίζοντας αυτά τα έξι στοιχεία γνωρίζουμε πλήρως την κινητική κατάσταση των αεροσκαφών. Μπορούμε να αναπαραστήσουμε την εναέρια κυκλοφορία σε ένα τρισδιάστατο περιβάλλον ή σε ένα δισδιάστατο όπως ένας χάρτης. Στην περίπτωση του χάρτη χρειαζόμαστε απλά τρεις συντεταγμένες, μία γωνία και ένα μέτρο. Λαμβάνοντας διαδοχικά διανύσματα της κινητικής κατάστασης μπορούμε να αναπαραστήσουμε ολόκληρη τη διαδρομή των αεροσκαφών Στατικές πληροφορίες Πέρα απ' την διανυσματική αναπαράσταση είναι αναγκαίες κι άλλες πληροφορίες που πρέπει να έχει στη διάθεσή του ένα κέντρο ελέγχου εναέριας κυκλοφορίας. Πρώτο και σημαντικότερο την ταυτότητα του αεροσκάφους. Κάθε αεροσκάφος έχει ένα μοναδικό δεκαεξαδικό αριθμό ορισμένο ως ταυτότητα. (ICAO Aircraft Address AA ή HEXid) Ο αριθμός αυτός δεν αλλάζει. Επιπλέον θα πρέπει να ξέρουμε ποια πτήση εκτελεί κάθε αεροσκάφος την δεδομένη στιγμή, από που αναχώρησε, ποιος είναι ο προορισμός του, τι τύπος αεροσκάφους είναι και σε ποιον αερομεταφορέα ανήκει. Κάποια απ' αυτά τα στοιχεία είναι στατικά, δεν αλλάζουν ποτέ, άλλα πάλι είναι δυναμικά και διαφοροποιούνται με το χρόνο. Σε κάθε περίπτωση αυτές οι πληροφορίες χρειάζονται μαζί με την κινητική κατάσταση του αεροσκάφους για να συμπληρώσουν την εικόνα Στατιστικά στοιχεία Απ' τη στιγμή που οι παραπάνω πληροφορίες γίνουν διαθέσιμες καθίσταται δυνατή η αποθήκευσή/καταγραφή και η επεξεργασία τους με απώτερο σκοπό την εξαγωγή συμπερασμάτων. Το γεγονός ότι για το σύνολο της διαδρομής των αεροσκαφών έχουμε στη διάθεσή μας εγγραφές/στιγμιότυπα που το καθένα περιέχει πληροφορίες σχετικά με το δρομολόγιο και με την κινητική κατάσταση, μας επιτρέπει να χρησιμοποιήσουμε τα στοιχεία αυτά για την δημιουργία στατιστικών δεδομένων. Για παράδειγμα θα μπορούμε να δούμε συχνότητες πτήσεων πάνω από μια συγκεκριμένη περιοχή ή πόσο συχνά εμφανίζεται το ίδιο αεροσκάφος. Ακόμα είναι εφικτή η παρακολούθηση των καθυστερήσεων στις πτήσεις και ο συσχετισμός τους με την συνολική εικόνα της εναέριας κυκλοφορίας εκείνη τη στιγμή. Θα μπορούμε να διακρίνουμε σε βάθος χρόνου περιοχές υψηλής/χαμηλής κυκλοφορίας, υψηλών/χαμηλών ταχυτήτων, και πως διαφοροποιούνται αυτά ανάλογα με την ώρα, τη μέρα και τον μήνα, δεδομένα τα 34

36 οποία μπορούν να παίξουν καίριο ρόλο στον επανασχεδιασμό των αεροδιαδρόμων και την βελτιστοποίηση της κυκλοφορίας Διεπαφή - Χάρτης Όλα αυτά που αναφέραμε μέχρι στιγμής περιμένουμε να παρουσιάζονται με κάποιο τρόπο, κάποια διεπαφή, έτσι ώστε οι χρήστες να βρίσκουν αυτό που ψάχνουν, να έχουν πρόσβαση σε αυτό, να αλληλεπιδρούν μαζί του και να το επεξεργάζονται με όποιο τρόπο θέλουν. Σαν απαίτηση έχουμε ότι η διεπαφή αυτή θα πρέπει να είναι προσβάσιμη απ το διαδίκτυο και να περιέχει έναν χάρτη πάνω στον οποίο θα εμφανίζονται τα αεροσκάφη σαν διανύσματα τα οποία όταν επιλεγούν θα εμφανίζουν όλες τις παραμέτρους απ τα στοιχεία πτήσης. Η διεπαφή θα πρέπει πρώτα να αντλεί τις πληροφορίες για κάθε αεροσκάφος απ τη βάση δεδομένων και στη συνέχεια να αναπαριστά τα αεροσκάφη πάνω στο χάρτη Αναμενόμενα αποτελέσματα απ τις εσωτερικές λειτουργίες του συστήματος Λογισμικό αποκωδικοποίησης Η δεύτερη κατηγορία αποτελεσμάτων που περιμένουμε απ' την ΔΕ αφορά τις εσωτερικές λειτουργίες του συστήματος. Αυτές δεν γίνονται αντιληπτές απ τους χρήστες οι οποίοι αλληλεπιδρούν μόνο με τις εξόδους και τα αποτελέσματα του συστήματος. Για να δημιουργηθούν όμως αυτά τα αποτελέσματα υπάρχει μια μεγάλη σειρά διεργασιών και επεξεργασίας των δεδομένων που φτάνουν στην είσοδο του συστήματος. (Οι είσοδοι του συστήματος μας είναι στην ουσία το δεύτερο τμήμα του adsb,το περιεχόμενο του πρωτοκόλλου επικοινωνίας, οι ασύρματες πληροφορίες που εκπέμπονται απ' τα αεροσκάφη. Η δομή τους θα αναλυθεί στην συνέχεια στο κεφάλαιο 3.) Ο σχεδιασμός και η υλοποίηση των εσωτερικών λειτουργιών αποτελεί κομμάτι των αποτελεσμάτων που προσδοκούμε απ' την ΔΕ. Θα πρέπει να παρουσιάσουμε και να δικαιολογήσουμε λεπτομερώς τη ροή επεξεργασίας των δεδομένων αυτών απ' την είσοδο, την διαλογή τους, τον συγχρονισμό τους, τον διαχωρισμό τους, τους αλγόριθμους αποκωδικοποίησής τους, την αρχιτεκτονική των συνδυασμών τους, την δομή της αποθήκευσή τους και τέλος την εμφάνισή τους στην έξοδο του συστήματος. Στα προσδοκώμενα αποτελέσματα της ΔΕ συμπεριλαμβάνονται το λογισμικό που συγχρονίζεται με τον δέκτη, διαβάζει τα δεδομένα, τα αποκωδικοποιεί, τα συνδυάζει και τα αποθηκεύει στη βάση δεδομένων όσο και το λογισμικό που αντλεί τα δεδομένα απ τη βάση και τα παρουσιάζει στη διεπαφή. 35

37 2.4 Ποιες γλώσσες προγραμματισμού χρησιμοποιήθηκαν Για την υλοποίηση του συστήματος παρακολούθησης και απεικόνισης πτήσεων σε πραγματικό χρόνο χρειάστηκε να χρησιμοποιήσουμε διάφορες γλώσσες προγραμματισμού για να υλοποιήσουμε το κάθε τμήμα του. Αυτό συμβαίνει γιατί κάθε τμήμα εκτελεί μια συγκεκριμένη λειτουργία για την οποία υπάρχει και η κατάλληλη γλώσσα προγραμματισμού. Για το τμήμα του λογισμικού αποκωδικοποίησης επιλέχτηκε η γλώσσα προγραμματισμού C# (csharp). Μία μοντέρνα, εύκολη στη σύνταξη, αντικειμενοστραφή γλώσσα προγραμματισμού, με τεράστιες δυνατότητες και αρκετά φιλικό περιβάλλον ανάπτυξης που έχει διάφορες δομές για να αποφεύγονται και να διορθώνονται γρήγορα τα λάθη. Σχεδιασμένη απ την Microsoftστα πλαίσια του.νετ την πλατφόρμα της εταιρείας για ανάπτυξη εφαρμογών, ενδείκνυται για δημιουργία προγραμμάτων σε περιβάλλον Windows. Η C# παρέχει μια τεράστια συλλογή βιβλιοθηκών που μας παρέχουν έτοιμα κομμάτια κώδικα για να μπορέσουμε να εκτελέσουμε διάφορες λειτουργίες. Συγκεκριμένα για την εφαρμογή μας χρησιμοποιήθηκαν κάποιες βιβλιοθήκες της C# για να μπορέσουμε να διαβάσουμε δεδομένα απ την σειριακή θύρα του Η/Υ, να συνδεθούμε στη βάση δεδομένων MySql και να προσθέσουμε εγγραφές, να δημιουργήσουμε κάποιες συλλογές δεδομένων που θα κρατάνε τα αντικείμενα των κλάσεων και για διάφορες άλλες διεργασίες. (Clark, 2011) Για το κομμάτι της αποθήκευσης των δεδομένων επιλέχθηκε η βάση δεδομένων MySql, η πιο διαδεδομένη βάση δεδομένων ανοιχτού κώδικα. Επιτρέπει την συσχέτιση των δεδομένων των πινάκων και λειτουργεί και σαν serverδίνοντας πρόσβαση από το διαδίκτυο. Οι λειτουργίες που προσφέρει καλύπτουν πλήρως τις απαιτήσεις της εφαρμογής μας, και το γεγονός ότι είναι ανοιχτού κώδικα συμβαδίζει με τον ακαδημαϊκό χαρακτήρα του project. Είναι συμβατή και προσπελάσιμη τόσο απ την πλευρά του λογισμικού αποκωδικοποίησης που θα δημιουργεί τόσο και απ την πλευρά της διεπαφής που θα διαβάζει τις εγγραφές. (Λέκκας, 2011) Για το τμήμα της διεπαφής χρησιμοποιήθηκε ένας συνδυασμός από γλώσσες προγραμματισμού. Αρχικά η διεπαφή είναι ένας ιστότοπος οπότε χρησιμοποιήθηκε η HTML η βασική γλώσσα σήμανσης με την οποία δημιουργούνται οι ιστοσελίδες του διαδικτύου. Στην συνέχεια ο χάρτης που θα περιέχει η ιστοσελίδα υλοποιήθηκε με την βοήθεια του Google Maps API, τη διεπαφή των προγραμματιστικών κανόνων που παρέχει η εφαρμογή GoogleMaps για να επιτρέπει την δημιουργία και την χρήση χαρτών σε ιστοσελίδες τρίτων. Η υλοποίηση του χάρτη όπως υπαγορεύεται απ το APIέγινε στην γλώσσα προγραμματισμού Javascript. Μια γλώσσα η οποία επιτρέπει την ανάπτυξη δυναμικού περιεχομένου εντός της ιστοσελίδας, όπως ένας χάρτης, και το βασικό χαρακτηριστικό της είναι ότι ο κώδικας εκτελείται τοπικά στην πλευρά του πελάτη, δηλαδή στονbrowserτου Η/Υ του χρήστη, (client-side), και όχι στον serverόπως συμβαίνει με άλλες γλώσσες. Είναι μια γλώσσα με εξαιρετικά εύκολη σύνταξη και με σχετικά σύντομο χρόνο εκμάθησης. (Google Maps API v3, 2013) 36

38 Τέλος για να εξασφαλίσουμε στον χάρτη τα στοιχεία απ την βάση δεδομένων που θα πρέπει να εμφανίσει χρησιμοποιούμε την PHP μια γλώσσα προγραμματισμού που σε αντίθεση με την javascriptείναι server-side δηλαδή ο κώδικας εκτελείται στην πλευρά του διακομιστή (server). O σκοπός της PHPείναι η δημιουργία δυναμικού περιεχομένου στις ιστοσελίδες που στην προκειμένη περίπτωση είναι οι πληροφορίες που υπάρχουν στην βάση δεδομένων. Ο διακομιστής επεξεργάζεται τον κώδικα και τα ερωτήματα της PHP, παράγει τα ζητούμενα αποτελέσματα αναζήτησης απ την βάση δεδομένων και επιστρέφει στον φυλλομετρητή (browser) ένα αρχείο XML που περιέχει όλες τις πληροφορίες που χρειάζεται ο χάρτης για να παρουσιάσει επιτυχώς τα αεροσκάφη. Η xmlείναι μια γλώσσα σήμανσης που περιέχει ένα σύνολο κανόνων για την δημιουργία αρχείων κειμένου που περιέχουν πληροφορίες, οι οποίες είναι αναγνώσιμες τόσο από ανθρώπους όσο και από λογισμικά. Στην πραγματικότητα δεν κάνει κάποια λειτουργία απλά επιτρέπει την μεταφορά των πληροφοριών απ την βάση δεδομένων στον χάρτη του κάθε χρήστη. (Google Maps API v3, 2013) Εικόνα 8 Γλώσσες προγραμματισμού και μορφή δεδομένων 37

39 ΚΕΦΑΛΑΙΟ 3 Διάταξη λήψης-δομή μηνυμάτων 3.1 Δέκτης Η διάταξη λήψης είναι το πρώτο τμήμα του συστήματος και μας επιτρέπει να λάβουμε τα ασύρματα μηνύματα υπό μορφή ηλεκτρομαγνητικών κυμάτων, να τα από-διαμορφώσουμε και να τα μετατρέψουμε σε μια δυαδική ροή την οποία εν συνεχεία μπορούμε να επεξεργαστούμε σε έναν Η/Υ κατά βούληση. Αποτελείται απ την κεραία, την γραμμή μεταφοράς και τέλος τον δέκτη. Η κεραία είναι μια κατεξοχήν μεταλλική κατασκευή η οποία μετατρέπει τα ηλεκτρομαγνητικά κύματα που ταξιδεύουν στον περιβάλλοντα χώρο σε ηλεκτρικό σήμα στα άκρα της και το αντίστροφο, βασιζόμενη στο φαινόμενο της επαγωγής. Το μέγεθος της κεραίας είναι άμεσα συσχετισμένο με την συχνότητα στην οποία λειτουργεί και κατ επέκταση με το μήκος κύματος (λ=c/f μήκος κύματος = ταχύτητα στο κενό / συχνότητα λειτουργίας). Οι διαστάσεις της κεραίας λοιπόν θα πρέπει να είναι συγκρίσιμες του μήκους κύματος δηλαδή στην περίπτωσή μας για την συχνότητα 1090MHz κοντά στα 27 εκατοστά. Τα γεωμετρικά χαρακτηριστικά μιας κεραίας επηρεάζουν και την κατευθυντικότητα της, δηλαδή σε περιοχές γύρω της μπορεί να εκπέμψει και να λάβει σήματα. Για την δική μας εφαρμογή επιθυμούμε να μπορούμε να λαμβάνουμε μηνύματα από όλες τις κατευθύνσεις γύρω απ την κεραία μας και γι αυτό το λόγο η κεραία που έχει επιλεχτεί είναι μια κάθετη κεραία. Τα ηλεκτρομαγνητικά κύματα που ταξιδεύουν στο χώρο επάγουν μια τάση στα ηλεκτρόνια του υλικού της κεραίας προκαλώντας την ταλάντωσή τους κατ υπόδειξη της συχνότητας του ηλεκτρομαγνητικού κύματος. Η ταλάντωση αυτή δημιουργεί ένα εναλλασσόμενο ρεύμα στα άκρα της κεραίας που μπορεί να μεταφερθεί μέσω της γραμμής μεταφοράς, του ομοαξονικού καλωδίου στην περίπτωσή μας, στον δέκτη. Εκεί ο δέκτης αναλαμβάνει την αποδιαμόρφωση του σήματος, την απομόνωση της χρήσιμης πληροφορίας και την μετατροπή της σε δυαδική ροή στην θύρα του Η/Υ. Η διαμόρφωση ενός σήματος είναι η διαδικασία κατά την οποία συνδυάζεται ένα σήμα που περιέχει την πληροφορία με ένα άλλο σήμα που είναι ικανό να εκπεμφθεί. Αυτό πραγματοποιείται διαφοροποιώντας μία ή περισσότερες απ τις παραμέτρους ενός φέροντος σήματος (πλάτος/φάση/συχνότητα), κατάλληλο προς εκπομπή με ένα σήμα διαμόρφωσης που περιέχει την πληροφορία. Συνήθως ένα αναλογικό σήμα όπως αυτό της φωνής ή μια ψηφιακή ροή δεδομένων διαμορφώνουν ένα υψίσυχνο φέρον σήμα που είναι κατάλληλο για να εκπεμφθεί από ένα πομπό. 38

40 Τα σήματα που περιέχουν την πληροφορία από μόνο τους δεν είναι δυνατόν να εκπεμφθούν, για παράδειγμα η συχνότητα της ανθρώπινης φωνής απέχει πολύ απ τις ραδιοσυχνότητες ή ακόμα και απ τη συχνότητα λειτουργίας του τηλεφωνικού δικτύου όπως και μια δυαδική ροή δεν γίνεται να εκπεμφθεί από μόνη της σε κάποια ραδιοσυχνότητα. Γι αυτό λοιπόν διαμορφώνουμε ένα φέρον σήμα με το σήμα που περιέχει την πληροφορία. Υπάρχουν πολλών ειδών διαμορφώσεις άλλες αναλογικές, άλλες ψηφιακές. Τα γνωστά σε πολλούς αρχικά FMκαι AM είναι δύο είδη αναλογικής διαμόρφωσης (Frequency modulation Amplitude modulation). Στη διαμόρφωση FMδιαμορφώνουμε το φέρον σήμα κατά συχνότητα ενώ στην ΑΜ κατά πλάτος. Εικόνα 9 Διαμόρφωση FM και AM Τα σήματα ads-b είναι διαμορφωμένα με την ψηφιακή διαμόρφωση θέσης παλμού Pulse Position Modulation (PPM). Στη διαμόρφωση ppm τα bits ενός μηνύματος στέλνονται ως παλμοί. Κάθε παλμός ενός bit μπορεί να σταλεί σε μια απ τις δύο χρονικές στιγμές που του αναλογούν, ανάλογα με την τιμή που είχε το bit 1 ή 0. Πιο συγκεκριμένα σε κάθε bit αναλογεί ένα χρονικό παράθυρο της τάξης των μs (microsecond). Ανάλογα με την τιμή του bit ο παλμός μπορεί να σταλεί στο πρώτο μισό ή στο δεύτερο μισό του χρονικού παραθύρου αν είχε την τιμή 1 ή 0 αντίστοιχα. Ο δέκτης λοιπόν μπορεί να λάβει την ροή των bits είτε προσδιορίζοντας την ακριβή χρονική στιγμή της εκπομπής του παλμού,αφού είναι σωστά συγχρονισμένος με τον πομπό, είτε με ένα σχετικό τρόπο μετρώντας την χρονική καθυστέρηση μεταξύ των παλμών. Ο συγχρονισμός γίνεται συνήθως με χρήση ενός εισαγωγικού παλμού (preamble) που διαρκεί 8μs και αποτελείται από 4 παλμούς των 0,5μs. Οι συνολικές πιθανές θέσεις εκπομπής του παλμού για ένα μήνυμα που αποτελείται από Μ bits είναι 2 M. (The ARRL, 2011) 39

41 Εικόνα 10 Διαμόρφωση PPM Tα αεροσκάφη λοιπόν που είναι εξοπλισμένα με σύστημα adsb-out συλλέγουν δεδομένα απ τα registers του transponder όπως τα περιγράψαμε νωρίτερα, και απ τα συστήματα πλοήγησης, και στη συνέχεια δημιουργούν μηνύματα διαμορφωμένα κατά ppm τα οποία εκπέμπουν περιοδικά. Τα ηλεκτρομαγνητικά κύματα αυτής της συχνότητας διαδίδονται γύρω απ το αεροσκάφος σε όποια απόσταση υπάρχει οπτική επαφή. Στον σταθμό λήψης adsb-in το ηλεκτρικό σήμα οδηγείται απ το κεραιοσύστημα στον δέκτη όπου από-διαμορφώνεται δηλαδή διαχωρίζεται το σήμα διαμόρφωσης απ το φέρον σήμα και η πληροφορία, η δυαδική ροή δηλαδή εξάγεται στη θύρα επικοινωνίας του Η/Υ. Ο δέκτης λοιπόν εξάγει μια δυαδική ροή δεδομένων με τον εξής τρόπο. Κάθε πακέτο αποτελείται από 14 bytes και έχει πάντα μπροστά του το λεγόμενο startflag δηλαδή το byte 255 ή αλλιώς σε δεκαεξαδική αναπαράσταση 0xFF. Δηλαδή η ροή δεδομένων θα είναι κάπως έτσι αν αριθμήσουμε τα bytes. FF A 0B 0C 0D FF A 0B 0C 0D FF Για να διαβάσει κάποιος τη ροή δεδομένων θα πρέπει να πρώτα να συγχρονιστεί με αυτήν. Να τονίσουμε σε αυτό το σημείο ότι το ByteFF μπορεί να εμφανιστεί και μέσα στο πακέτο των 14 byte, στην περίπτωση αυτή δεν είναι ένα startflag αλλά αποτελεί κομμάτι του μηνύματος. Για τον λόγο αυτόν δεν αρκεί κανείς απλά να αναζητήσει ένα byteff και να το θεωρήσει ως αρχή του μηνύματος. Η σωστή προσέγγιση είναι να αναζητήσουμε ένα byteff και στην συνέχεια αφού μετρήσουμε 14 bytes που ακολουθούν να ελέγξουμε αν το αμέσως επόμενο είναι ξανά FF. Σε αυτή την περίπτωση και μόνο μπορούμε να είμαστε σίγουροι ότι τα 14 bytes που μεσολαβούν είναι ένα αυτούσιο μήνυμα. Ακόμα και για άλλες εκπομπές που δεν είναι ads-b και αποτελούνται από 7 bytes ο δέκτης εξάγει πάλι 14 bytes. Στην περίπτωση αυτή μόλις αναγνωρίσουμε ότι πρόκειται για ένα μήνυμα 7 bytes απλά αγνοούμε τα πρόσθετα. 40

42 Ο δέκτης που επιλέξαμε για την εφαρμογή μας είναι ο PGR Plane Gadget Radar της εταιρείας RadarGadgets και είναι αρκετά απλός. Περιλαμβάνει μια πλακέτα πάνω στην οποία βρίσκονται η είσοδος του ομοαξονικού καλωδίου της κεραίας, τα ηλεκτρονικά κυκλώματα αποδιαμόρφωσης και μια θύρα USB στην οποία εξάγεται η ροή των δεδομένων. Ανάλογα με το ύψος που τοποθετείται η κεραία μεταβάλλεται και η εμβέλεια του δέκτη. Η μέση εμβέλεια αναφέρεται στα 300 χλμ με μέγιστη στα 500 χλμ. 3.2 Toφορμάτ DF Δομή του μηνύματος Τα αρχικά DF17 σημαίνουν Downlink Format 17. Υπάρχουν πολλά διαφορετικά formatράδιο-εκπομπών των αεροσκαφών όσο και των επίγειων σταθμών ελέγχου της εναέριας κυκλοφορίας, το καθένα με το δικό του σκοπό και τα δικά του χαρακτηριστικά. Υπάρχουν format που χρησιμοποιούν οι επίγειοι σταθμοί για να ανακρίνουν τα transponder των αεροσκαφών ή ακόμα και για να τους στείλουν δεδομένα όπως για παράδειγμα δελτία καιρού (Uplink Format) και άλλα που χρησιμοποιούν τα αεροσκάφη ως απαντήσεις προς τους επίγειους σταθμούς ή προς τα γύρω αεροσκάφη (Downlink Format). Εικόνα 11 Δομή του μηνύματος ADS-B Πηγή: Eurocontrol 41

43 Το DF17 είναι το format που χρησιμοποιείται απ τα αεροσκάφη για την αυθόρμητη εκπομπή των μηνυμάτων ads-b και συνεπώς είναι το format που μας αφορά για τον σχεδιασμό του συστήματός μας. Τα μηνύματα DF17 αποτελούνται από 112 bits και είναι γνωστά και ως Extended Squitter, extendedυπό την έννοια ότι είναι διπλάσια σε μέγεθος απ τα κοινά format και squitter αφού η εκπομπή τους γίνεται αυθόρμητα χωρίς να χρειάζεται εξωτερική ανάκριση. Η συνολική διάρκεια εκπομπής του μηνύματος είναι 112μs ένα για κάθε bit. Τα πρώτα 5 bits ορίζουν το format, στην περίπτωσή μας θα πρέπει να είναι πάντα ίσο με 17 δηλαδή σε δυαδικό σύστημα. Ακολουθούν 3 bits τα λεγόμενα Capability bits τα οποία περιγράφουν την δυνατότητα του transponderνα υποστηρίξει τις διάφορες λειτουργίες του asd-b. Στη συνέχεια έχουμε 24 bits που είναι η ταυτότητα του αεροσκάφους. Σαν συντομογραφία τα συναντάμε ως ΑΑ Aircraft Address. Τα 24 αυτά bits αν τα μετατρέψουμε σε δεκαεξαδικό σύστημα αποτελούν την ταυτότητα του αεροσκάφους. Όπως προαναφέραμε κάθε αεροσκάφος έχει έναν μοναδικό δεκαεξαδικό αριθμό ως ταυτότητα (Aircraft ICAO Address). Ακολουθούν 56 bits, αυτά είναι τα bits που περιέχουν όλες τις πληροφορίες ads-b. Η ομάδα αυτή των 56 bits ονομάζεται ΜΕ απ το messageκαι μπορεί να περιέχει πληροφορίες σχετικά με την θέση, την κινητική κατάσταση, την πτήση και άλλες παραμέτρους του αεροσκάφους. Αυτή στην ουσία η ομάδα ΜΕ είναι το ζητούμενο, αυτό που περιέχει όλες της πληροφορίες που χρειαζόμαστε. Τα τελευταία 24 bits είναι τα parity bits PI,τα οποία χρησιμεύουν στον εντοπισμό και στη διόρθωση λαθών που έγιναν στη λήψη μέσω μιας πολυωνυμικής συνάρτησης. (Eurocontrol Air Traffic Management (ATM) Training Program) Είναι πολύ σημαντικό στο σημείο αυτό να τονίσουμε ότι για να σχηματιστεί πλήρης εικόνα της θέσης και της κινητικής κατάστασης ενός αεροσκάφους χρειάζονται παραπάνω από ένα μηνύματα ads-b. Για παράδειγμα ένα μήνυμα ads-b μπορεί να περιέχει μια ομάδα ΜΕ που να αφορά την ταχύτητα και τη κατεύθυνση του αεροσκάφους όχι όμως το γεωγραφικό στίγμα, το επίπεδο πτήσης και τον αριθμό πτήσης. Στην καλύτερη των περιπτώσεων χρειάζονται 4 μηνύματα ένα για την ταχύτητα και την κατεύθυνση ένα για τον αριθμό πτήσης και δύο για το γεωγραφικό στίγμα και το επίπεδο πτήσης όπως θα αναλύσουμε στην συνέχεια. Αυτά τα 4 μηνύματα δεν γνωρίζουμε ούτε με ποια σειρά θα έρθουν, ούτε πότε θα έρθουν ούτε καν αν θα έρθουν όλα. Αυτό παίζει μεγάλο ρόλο στην αρχιτεκτονική του λογισμικού όπως θα δούμε στην συνέχεια. Ο λόγος που χρειάζονται 4 διαφορετικά μηνύματα και δεν αποστέλλονται όλες η πληροφορίες σε ένα μήνυμα είναι η αποδοτικότερη εκμετάλλευση του καναλιού και η δυνατότητα να χρησιμοποιηθεί το κανάλι των 1090MHz από όσο το δυνατό μεγαλύτερο αριθμό αεροσκαφών. Όπως θα δούμε αναλυτικότερα και στην συνέχεια κάποιες πληροφορίες που παραμένουν σταθερές για μεγάλο χρονικό διάστημα όπως ο αριθμός πτήσης ή το 42

44 ημισφαίριο που βρίσκεται το αεροπλάνο δεν είναι απαραίτητο να εκπέμπονται τόσο συχνά όσο αυτές που αλλάζουν με ταχείς ρυθμούς όπως το ύψος ή το στίγμα του αεροσκάφους. Για τον λόγο αυτό και για να γίνεται καλύτερη εκμετάλλευση του διαθέσιμου bandwidth του καναλιού οι πληροφορίες χωρίζονται σε TypeCodes όπως θα δούμε παρακάτω και εκπέμπονται ανά διαφορετικά χρονικά διαστήματα. Με τον τρόπο αυτό αρκούν 112 bits για να λειτουργήσει το σύστημα αποτελεσματικά και ταυτόχρονα μπορούν όλα τα αεροσκάφη ακόμα και σε συνωστισμένες περιοχές να χρησιμοποιούν το κανάλι. Το βασικό ζητούμενο για να τοποθετήσουμε ένα αεροσκάφος πάνω στον χάρτη είναι να μας γνωστοποιηθεί το στίγμα του. Αν γνωρίζουμε τον αριθμό πτήσης και την ταχύτητά του αλλά δεν γνωρίζουμε που βρίσκεται δεν μπορούμε να παρουσιάσουμε αυτό το αεροσκάφος πάνω σε κάποιο χάρτη. Το βασικό στοιχείο λοιπόν που θα πρέπει να εξασφαλίσουμε είναι το γεωγραφικό στίγμα. Απ τη στιγμή που αυτό συμβεί μπορούμε να αναπαραστήσουμε τη θέση του αεροσκάφους πάνω στο χάρτη ανεξάρτητα απ το αν έχουμε ή όχι λάβει μήνυμα για την ταχύτητά του ή τον αριθμό πτήσης του. Ο τύπος της πληροφορίας που μπορεί να περιέχεται μέσα σε μια ομάδα ΜΕ λέγεται TypeCode. Υπάρχουν 31 διαφορετικά TypeCodes και 12 κατηγορίες αυτών. Οι κατηγορίες που μας ενδιαφέρουν εμάς για την εφαρμογή μας είναι οι εξής: Identification Type code = 1-4 Airborne Position Type code = 9-18 και20-22 Surface Position Type code = 5-8 Airborne Velocity Type code = 19 Τα πρώτα 5 bits του ΜΕ υποδεικνύουν το Typecode. Μηνύματα με typecode Identification περιέχουν ΜΕ πληροφορίες σχετικά με τον αριθμό πτήσης του αεροσκάφους. Όταν αυτός δεν είναι γνωστός ή διαθέσιμος τότε περιέχουν το tail number του αεροσκάφους ένα άλλο είδος ταυτότητας μοναδικό για κάθε αεροσκάφος. Τα μηνύματα με typecode Airborneposition περιέχουν το στίγμα του αεροσκάφους όταν αυτό βρίσκεται στον αέρα μαζί με επίπεδο πτήσης(ύψος). Τα μηνύματα με typecode Surfaceposition περιέχουν το στίγμα του αεροσκάφους όταν αυτό βρίσκεται στο έδαφος μαζί με την ταχύτητά του και την κατεύθυνση του. 43

45 Τέλος τα μηνύματα με typecode AirborneVelocity περιέχουν τα μέτρα δύο διανυσμάτων, της ταχύτητας του αεροσκάφους στον άξονα Βορρά Νότου και της ταχύτητας του αεροσκάφους στον άξονα Ανατολής Δύσης, και τον ρυθμό ανόδου/καθόδου, το πόσο γρήγορα δηλαδή αλλάζει επίπεδο πτήσης το αεροσκάφος. Αργότερα θα δούμε πως με πρόσθεση των δύο διανυσμάτων και με τριγωνομετρία μπορούμε να προσδιορίσουμε την ακριβή πορεία και ταχύτητα του αεροσκάφους. (ICAO, 2011) Να σημειωθεί ότι για τον προσδιορισμό του στίγματος είτε στο έδαφος είτε στον αέρα χρειαζόμαστε δύο μηνύματα Surface ή Airborneposition. Παραθέτουμε στην συνέχεια τρεις πίνακες απ τον Διεθνή Οργανισμό Πολιτικής Αεροπορίας (ICAO) που υποδεικνύουν λεπτομερώς την δομή των μηνυμάτων για αυτές τις κατηγορίεςtypecode. Στην αριστερή στήλη αναπαριστούνται τα 56 bits του ΜΕ και δίπλα τους σε τι αντιστοιχούν. 44

46 Πίνακας 1 Δομή μηνύματος ID Πηγή: ICAO 45

47 Ο παραπάνω πίνακας αφορά ένα μήνυμα Identification. Παρατηρούμε ότι τα πρώτα 5 bits προσδιορίζουν το typecode το οποίο θα πρέπει να είναι 1ή 2 ή 3 ή 4. Στη συνέχεια Τα τρία επόμενα bits προσδιορίζουν σε ποια κατηγορία ανήκει το αεροσκάφος σύμφωνα με το υπόμνημα στα δεξιά. Ο πρώτος χαρακτήρας του αριθμού πτήσης υποδεικνύεται απ τα bits 9-14 κοκ. Οι χαρακτήρες είναι κωδικοποιημένοι σύμφωνα με τον παρακάτω πίνακα του Annex10 volumeiv του Διεθνή Οργανισμού Πολιτικής Αεροπορίας(ICAO). Πίνακας 2 Αντιστοίχηση χαρακτήρων σε δυαδική μορφή Πηγή: ICAO Για παράδειγμα ο χαρακτήρας J θα αποτελούνταν απ τα bits

48 Πίνακας 3 Δομή μηνύματος Airborne Position Πηγή: ICAO 47

49 Ο παραπάνω πίνακας μας δείχνει τη δομή των μηνυμάτων Airborneposition. Παρατηρούμε ότι στα 56 bits περιέχονται τόσο το επίπεδο πτήσης (Altitude) όσο και το γεωγραφικό πλάτος και μήκος. Ένα μήνυμα όμως δεν είναι αρκετό για να υπολογίσουμε ένα μοναδικό και αδιαμφισβήτητο στίγμα. Αυτό συμβαίνει γιατί οι εκπομπές ads-b χρησιμοποιούν το λεγόμενο CPR, Compact Position Reporting χάριν αποδοτικότητας. Μια απλή δυαδική αναπαράσταση των συντεταγμένων θα χρειαζόταν πολλά περισσότερα bits απ ότι η μέθοδος CPR. Αυτό γίνεται γιατί με τη μέθοδο CPR κάποια απ τα πρώτα ψηφία που παραμένουν σταθερά για μεγάλα διαστήματα, ίσως και για πάντα, όπως το πρώτο ψηφίο που υποδεικνύει σε ποιο απ τα δύο ημισφαίρια βρίσκεται το αεροσκάφος, δεν μεταδίδονται. Για τον λόγο αυτό όμως, ότι τα πρώτα ψηφία δεν μεταδίδονται, πολλαπλές θέσεις πάνω στη γη μπορούν να παράγουν το ίδιο μήνυμα χωρίς να μπορούμε να ξέρουμε ποια είναι η σωστή. Η μέθοδος CPR μπορεί να προσδιορίσει την σωστή θέση χρησιμοποιώντας δύο είδη μηνυμάτων τα μονά και τα ζυγά τα οποία εκπέμπονται εναλλάξ. Με την λήψη ενός μονού και ενός ζυγού μηνύματος, τα οποία δεν απέχουν παραπάνω από 10 δευτερόλεπτα μεταξύ τους όταν το αεροσκάφος βρίσκεται στον αέρα και παραπάνω από 50 δευτερόλεπτα όταν το αεροσκάφος βρίσκεται στο έδαφος, μπορούμε να προσδιορίσουμε ακριβώς την πραγματική θέση του αεροσκάφους. Ο αλγόριθμος CPR, οι παράμετροι και οι εσωτερικές συναρτήσεις παρατίθενται στη βιβλιογραφία. Ο τελευταίος πίνακας παρακάτω παρουσιάζει τη δομή των μηνυμάτων AirborneVelocity και αφορά την ταχύτητα του αεροσκάφους όταν αυτό βρίσκεται στον αέρα. Και πάλι τα 5 πρώτα bits καθορίζουν το typecode. Στη συνέχεια έχουμε δύο ομάδες bit. Η πρώτη μας δίνει το μέτρο του διανύσματος της ταχύτητας στον άξονα ανατολής-δύσης. Το πρόσημο αν δηλαδή κατευθύνεται ανατολικά ή δυτικά καθορίζεται απ το bit 14. Αν έχει τιμή 0 κατευθύνεται ανατολικά, αν έχει τιμή 1κατευθύνεται δυτικά. Η δεύτερη ομάδα μας δίνει το μέτρο του διανύσματος της ταχύτητας στον άξονα βορρά-νότου και το πρόσημο το καθορίζει το bit 25. Γνωρίζοντας αυτά τα δύο διανύσματα μπορούμε να τα προσθέσουμε και να υπολογίσουμε την πραγματική κατεύθυνση και ταχύτητα του αεροσκάφους. Στη συνέχεια τα bits περιέχουν τον ρυθμό ανόδου/καθόδου του αεροσκάφους. Γνωρίζοντας λοιπόν το format των πακέτων μηνυμάτων που λαμβάνουμε μπορεί κανείς να απομονώσει τα bits που τον ενδιαφέρουν και να τα χειριστεί αναλόγως. 48

50 Πίνακας 4 Δομή μηνύματος Airborne Velocity Πηγή: ICAO 49

51 ΚΕΦΑΛΑΙΟ 4 Σχεδίαση πληροφοριακού συστήματος 4.1 Λογισμικό αποκωδικοποίησης Ένα αφαιρετικό διάγραμμα ροής του λογισμικού παρουσιάζεται στο παρακάτω σχήμα. Παρουσιάζεται συνοπτικά η λειτουργία του λογισμικού. Κάθε μπλοκ του διαγράμματος αποτελείται με τη σειρά του από έναν αριθμό σύνθετων διεργασιών, απ τις οποίες όσες παρουσιάζουν αρχιτεκτονικό ενδιαφέρον θα παρασταθούν με διαγράμματα ροής στην συνέχεια. Εικόνα 12 Διάγραμμα ροής λογισμικού 50

52 4.1.1 Ανάγνωση ροής δεδομένων Η πρώτη λειτουργία που πρέπει να εκτελεί το λογισμικό είναι η ανάγνωση της συνεχούς ροής δεδομένων απ' τη θύρα του Η/Υ στην οποία είναι συνδεδεμένος ο δέκτης. Αφού προσδιορίσουμε την κατάλληλη βιβλιοθήκη που χρειαζόμαστε να φορτωθεί για αυτό το σκοπό (System.IO.Ports) δημιουργούμε μια κλάση Adsblistener η οποία θα αποτελέσει την πλατφόρμα αμφίδρομης επικοινωνίας μεταξύ του λογισμικού και του δέκτη. Στη συνέχεια ανοίγουμε την θύρα επικοινωνίας του Η/Υ _serialport = newserialport()και θέτουμε τις κατάλληλες παραμέτρους όπως το όνομα, την ταχύτητά της και τον αριθμό των bits. Δημιουργούμε την κατάλληλη μέθοδο που με την οποία θα στέλνουμε δεδομένα στη θύρα, _serialport.writeline(string.format("<0>: 1", name, message)) με σκοπό να δίνουμε εντολές στον δέκτη σχετικά με την έναρξη και την διακοπή της λήψης και ταυτόχρονα ξεκινάμε ένα καινούργιο thread, μια παράλληλη δηλαδή ροή προγράμματος στην οποία θα πραγματοποιείται η ανάγνωση απ' την θύρα. Το μεγαλύτερο κομμάτι του λογισμικού εντάσσεται μέσα σε αυτό το thread της ανάγνωσης ThreadreadThread = newthread(read) Συγχρονισμός ανάγνωσης ροής Αφού εξασφαλίσουμε ότι η θύρα είναι ανοιχτή και είναι δυνατή η ανάγνωση της ροής δεδομένων απ' τον δέκτη πρέπει να διαχωρίσουμε κάθε έγκυρο μήνυμα απ' την υπόλοιπη ροή. Όπως προαναφέραμε ο δέκτης εξάγει μια ροή δεδομένων στην οποία κάθε μήνυμα ads-b ξεκινάει με ένα "start flag" 0xFF δηλαδή το byte 255 και ακολουθούν τα 14 bytes χρήσιμης πληροφορίας. Θα πρέπει να γίνει συγχρονισμός του ρυθμού ανάγνωσης με τη ροή δεδομένων. Στο σημείο αυτό συναντήθηκε το πρώτο μεγάλο πρόβλημα που κληθήκαμε να δώσουμε λύση. Έπρεπε να δημιουργήσουμε έναν αλγόριθμο, για να συγχρονιστούμε με τη ροή και να μπορέσουμε να τη διαβάσουμε, που να κάνει ότι περιγράψαμε νωρίτερα στο κεφάλαιο 3 με λόγια. Να αναζητά στη ροή ένα byte 255 χωρίς να ξέρουμε αν αυτό αποτελεί την αρχή του μηνύματος ή είναι κομμάτι από κάποιο μήνυμα. Στη συνέχεια να μετρά 14 bytes και να ελέγχει αν το αμέσως επόμενο το 15 ο δηλαδή έχει την τιμή 255. Αν αυτό συμβεί σημαίνει ότι έχουμε εντοπίσει ένα αυτούσιο μήνυμα στη ροή δεδομένων το οποίο θα πρέπει να απομονώσουμε για να το επεξεργαστούμε. Αν αυτό όμως αυτό δεν συμβεί θα πρέπει να συνεχίσουμε να ψάχνουμε στα 14 bytes για το byte 255 και αν κανένα από αυτά δεν έχει τέτοια τιμή να συνεχίσουμε να ψάχνουμε στην υπόλοιπη ροή δεδομένων για αυτή την τιμή. Έπρεπε να δούμε το πρόβλημα αφαιρετικά και να ορίσουμε κάποιες μεταβλητές που θα μας βοηθούσαν να πραγματοποιήσουμε το ζητούμενο. Αυτές η μεταβλητές είναι η bytepos και η found. H πρώτη έχει το ρόλο να υποδεικνύει το byte το οποίο ελέγχουμε ανά πάσα στιγμή και βασιζόμενοι σε αυτό μπορούμε να προσδιορίσουμε κάποιες ενέργειες που εκτελούνται κατ επανάληψη μέσα σε loops και πόσες φορές πρέπει να εκτελεστεί το loop. Η δεύτερη μεταβλητή found μπορεί να πάρει μόνο δύο τιμές 0 και 1 οι οποίες υποδεικνύουν αν έχουμε ή όχι εντοπίσει ένα byte με την τιμή 255. Αυτό 51

53 καθορίζει το μονοπάτι του κώδικα που ακολουθείται κάθε φορά που επαναλαμβάνεται ένα loop. Με τη βοήθεια αυτών των δύο μεταβλητών που ορίσαμε δημιουργήθηκε ένας αλγόριθμος που συγχρονίζεται με την ροή εντοπίζει πακέτα μηνυμάτων και τα απομονώνει. Για να διαχωρίσουμε λοιπόν τα μηνύματα απ' την υπόλοιπη ροή πρέπει να συγχρονιστούμε με τον εξής τρόπο. Αρχικά δημιουργούμε δύο array το byte[] databuffer = new byte[16] και το byte[] validmessage = new byte[14] το πρώτο μεγέθους 16 θέσεων και το δεύτερο 14 θέσεων. Καλούμε την _serialport.read(databuffer, k, 1) και με ένα loop γεμίζουμε το array με 16 bytes που διαβάσαμε απ την θύρα. Στην συνέχεια ελέγχουμε ένα προς ένα τα bytesμέσα στο array για να δούμε αν κάποιο από αυτά είναι το byte 255. Αν δεν βρεθεί κάποιο το array αδειάζει και ξαναδιαβάζουμε άλλα 16 bytes απ τη θύρα και η διαδικασία επαναλαμβάνεται μέχρι να βρεθεί κάποιο byte 255 το startflag δηλαδή. Όταν βρούμε ένα byte 255 γίνονται οι εξής ενέργειες: Αν τύχει αυτό το byte να είναι στην αρχή του array databuffer τότε το αφήνουμε ως έχει, διαφορετικά μετατοπίζουμε αυτό και όλα τα υπόλοιπα bytes που δεν έχουν ελεγχθεί ακόμα στην αρχή του array και συμπληρώνουμε όσα χρειάζονται απ τη θύρα για γεμίσει το array των 16 θέσεων. Αμέσως μετά ελέγχουμε αν το byte στην θέση 15, το τελευταίο byte του array δηλαδή, είναι 255. Αν αυτό είναι αληθές σημαίνει οτι έχουμε εντοπίσει ένα έγκυρο μήνυμα το οποίο βρίσκεται μεταξύ του αρχικού byte 255 και του τελευταίου. Δηλαδή τα bytes που βρίσκονται απ την θέση 1 μέχρι τη θέση 14 του arrayαποτελούν το έγκυρο μήνυμα. Μεταφέρουμε λοιπόν αυτά τα bytesστο arrayvalidmessage για να το επεξεργαστούμε στην συνέχεια. Αν κατά τον έλεγχο του τελευταίου byte του databuffer διαπιστωθεί οτι δεν είναι το 255 αυτό σημαίνει οτι τα ενδιάμεσα bytes δεν αποτελούν ένα αυτούσιο μήνυμα και θα πρέπει να ξαναρχίσουμε να ελέγχουμε ένα προς ένα τα bytes προς αναζήτηση του startflag. 52

54 Εικόνα 13 Διάγραμμα ροής αλγόριθμου συγχρονισμού Προσδιορισμός Downlink format και Typecode Αφού εξασφαλίσουμε ένα validmessage το επόμενο βήμα είναι να δούμε τι ακριβώς περιέχει. Το πρώτο πράγμα που μας ενδιαφέρει είναι να προσδιορίσουμε αν πρόκειται για ένα μήνυμα που εκπέμφθηκε από ένα σύστημα ads-b ή όχι. Οι εκπομπές ads-b ξεκινούν πάντα με τα εξής bits: Γι αυτό το λόγο μετατρέπουμε το πρώτο byte του μηνύματος από δεκαεξαδική μορφή αναπαράστασης σε δυαδική, χωρίζουμε τα πέντε πρώτα bits και στην συνέχεια ελέγχουμε αν αυτά είναι τα Αν αυτό είναι αληθές τότε σημαίνει οτι το συγκεκριμένο μήνυμα πρόκειται για ένα μήνυμα εκπομπής ads-b και μας αφορά. Σημαίνει επίσης οτι το μήνυμα αυτό είναι κωδικοποιημένο 53

55 σύμφωνα με το downlinkformat 17 (DF17) όπως το περιγράψαμε στο κεφάλαιο 3 Διάταξη λήψης. Αν τα πέντε πρώτα bitsείναι διαφορετικά από τότε το μήνυμα αυτό αποτελεί εκπομπή κάποιου άλλου πρωτόκολλου και το πετάμε. Στη συνέχεια αφού έχουμε στα χέρια μας ένα μήνυμα ads-b πρέπει να προσδιορίσουμε τον τύπο του μηνύματος δηλαδή το typecode. Θα χρειαστεί να δούμε αν είναι ένα μήνυμα θέσης, ή ένα μήνυμα ταχύτητος ή ένα μήνυμα ταυτότητας. Μετατρέπουμε ολόκληρο το μήνυμα από δεκαεξαδικό σύστημα σε δυαδικό και έπειτα απομονώνουμε τα bits που αφορούν το typecode. inttypecodedec = Convert.ToInt32(typeCodekaiStatusbinary.Substring(0, 5), 2); Από εκεί και πέρα ανάλογα με την τιμή που έχει η μεταβλητή μας typecodedec μπορούμε να δούμε τι τύπος μηνύματος είναι και να το διαχειριστούμε αναλόγως Αποκωδικοποίηση μηνύματος ταυτότητας αεροσκάφους ID Αν η μεταβλητή typecodedec έχει τιμή 1 ή 2 ή 3 ή 4 τότε σημαίνει ότι αυτό το μήνυμα DF17 είναι ένα μήνυμα ταυτότητοςidentification. Το μήνυμα αυτό μας δίνει συνήθως τον αριθμό πτήσης και όταν αυτός δεν είναι διαθέσιμος τότε το μήνυμα περιέχει το registration του αεροσκάφους, μια συμβολοσειρά που είναι μοναδική για κάθε αεροσκάφος και αποτελεί ένα είδος πινακίδας αναγνώρισης, αλλιώς γνωστό και ως tailnumber. Ένα μήνυμα ID περιέχει 8 χαρακτήρες, απ τους οποίους ο κάθε ένας κωδικοποιείται από 6 bits, σύμφωνα με τον πίνακα 1 που παραθέσαμε στο κεφάλαιο 3. Σημαντικό είναι να μην συγχέουμε ένα μήνυμα ID που αποτελεί ένα συγκεκριμένο typecode μηνύματος με το HEXid του αεροσκάφους που είναι η ταυτότητά του μοναδική και σταθερή. Χρησιμοποιώντας λοιπόν τον πίνακα αυτόν μπορούμε να απομονώσουμε τα bits κάθε χαρακτήρα σε 8 μεταβλητές: string bincharacter1 έως string bincharacter8. Στην συνέχεια δημιουργούμε μία μέθοδο την idme η οποία στην ουσία είναι ο πίνακας 2 που επίσης παραθέσαμε στο κεφάλαιο 3, σε μορφή κώδικα. Η μέθοδος αυτή δέχεται σαν παράμετρο τις μεταβλητές bincharacter και ανάλογα με την ακολουθία των bits που περιέχει κάθε μεταβλητή επιστρέφει τον αντίστοιχο χαρακτήρα. Στην συνέχεια ενώνουμε τους χαρακτήρες που επέστρεψε η μέθοδος idme για να συνθέσουμε τον αριθμό πτήσης ή το tailnumber του αεροσκάφους. Όπως αναφέραμε νωρίτερα για να συγκεντρώσουμε όλες τις πληροφορίες που θέλουμε για ένα αεροσκάφος χρειαζόμαστε παραπάνω από ένα μηνύματα, τα οποία υπάρχει περίπτωση να μην τα λάβουμε ποτέ στο σύνολό τους για διάφορους λόγους. Για παράδειγμα αν ένα αεροσκάφος βρίσκεται οριακά εντός της εμβέλειας του δέκτη μπορούμε να λάβουμε μόνο ένα μήνυμα από αυτό και μετά να βρεθεί εκτός εμβέλειας οπότε να μην συνεχίσουμε να λαμβάνουμε απ αυτό άλλες πληροφορίες. Ένας άλλος λόγος είναι ο θόρυβος (παρεμβολές) που υπάρχει πάντα στις ασύρματες επικοινωνίες και γίνεται ιδιαίτερα αισθητός στα ασθενή σήματα από απομακρυσμένα αεροσκάφη, 54

56 και μπορεί να αλλοιώσει το περιεχόμενο του μηνύματος ή ακόμα να το καταστήσει εντελώς άχρηστο. Το γεγονός ότι δεν μπορούμε να εξασφαλίσουμε ότι θα λάβουμε οπωσδήποτε ένα μήνυμα ταυτότητας από τα αεροσκάφη ανά πάσα στιγμή δημιουργεί το εξής πρόβλημα. Στην περίπτωση που ένα διερχόμενο αεροσκάφος στείλει μία φορά τον αριθμό πτήσης του και ο σταθμός μας τον λάβει και τον καταγράψει, και στη συνέχεια το αεροσκάφος αυτό προσγειωθεί σε ένα κοντινό αεροδρόμιο, ξανά-απογειωθεί, και βρεθεί πάλι εντός εμβέλειας του δέκτη μας αλλά δεν λάβουμε κάποιο καινούργιο μήνυμα ταυτότητας, ο σταθμός μας θα έχει ακόμα κρατήσει τον παλιό αριθμό πτήσης. Τα δεδομένα που διαθέτει το σύστημα που σχεδιάζουμε όπως αναφέρεται στις απαιτήσεις μας πρέπει να είναι ακριβή και αξιόπιστα. Για τον λόγο αυτό κρίθηκε αναγκαίο μαζί με την καταγραφή του ID του αεροσκάφους να γίνεται καταγραφή και της χρονικής στιγμής που έγινε λήψη του μηνύματος, με σκοπό αν ένα μήνυμα ID είναι παλιότερο από κάποιο εύλογο χρονικό διάστημα να διαγράφεται απ το σύστημα Δημιουργία της κλάσης Aircraft Σε αυτό το σημείο αφού συναντήσαμε το πρόβλημα με την εγκυρότητα του αριθμού πτήσης, έπρεπε να δημιουργήσουμε μια δομή που θα συγκέντρωνε όλες τις πληροφορίες για ένα αεροσκάφος και θα εξασφάλιζε ότι είναι πρόσφατες και έγκυρες προτού αυτές αποθηκευτούν στην βάση δεδομένων. Γι αυτό δημιουργήσαμε την κλάση Aircraft. Η κλάση αυτή θα δημιουργεί ως αντικείμενά της όσα αεροσκάφη βρεθούν εντός της εμβέλειας του δέκτη, τα οποία θα περιέχουν όλες τις πληροφορίες που ζητάμε. Οι μεταβλητές που θα περιέχει ένα αεροσκάφος είναι οι εξής: ID ο εξαψήφιος μοναδικός αριθμός για κάθε αεροσκάφος σε δεκαεξαδική αναπαράσταση, Flightoαριθμός πτήσης, Lat το γεωγραφικό πλάτος, Lon το γεωγραφικό μήκος, Alt το επίπεδο πτήσης, Course η κατεύθυνση, Groundspeed η ταχύτητα, Verticalrate ο ρυθμός ανόδου/καθόδου, Landed αν βρίσκεται στο έδαφος ή στον αέρα (παίρνει τιμές TRUE/FALSE), Frame ολόκληρο το τελευταίο μήνυμα που λάβαμε και αφορά το συγκεκριμένο αεροσκάφος, Flightidstamp η χρονική σφραγίδα της λήψης του ID, Velocitytstamp η χρονική σφραγίδα της λήψης της ταχύτητας. Για να μπορούμε να δημιουργούμε αντικείμενα-αεροσκάφη και να ανατρέχουμε σε αυτά όποτε χρειάζεται βάση τον δεκαεξαδικό αριθμό ταυτότητάς τους,το HEXid, δημιουργήσαμε μια συλλογή δεδομένων γνωστή στην C# ως dictionary. Ένα dictionaryγια κάθε εγγραφή έχει ένα πεδίο με μία λέξη κλειδί και ένα πεδίο με δεδομένα. Στην περίπτωσή μας στο dictionarypinakasaircrafts το κλειδί θα είναι το HEXid του αεροσκάφους και στα δεδομένα θα θέτουμε ολόκληρο το αντικείμενο που κατασκευάστηκε απ την κλάση Aircraft. Με αυτόν τον τρόπο μπορούμε να 55

57 καλούμε ένα αεροσκάφος με το HEXid του και να έχουμε πρόσβαση στις ιδιότητές του, τις παραμέτρους πτήσης δηλαδή. Σε κάθε κύκλο του λογισμικού κάθε φορά που λαμβάνουμε ένα έγκυρο μήνυμα και περιέχει κάποιο typecodeπου μας αφορά, παραδείγματος χάρη τον αριθμό πτήσης, αφού συνθέσουμε την τελική πληροφορία, ελέγχουμε αν στο pinakasaircrafts υπάρχει ήδη το HEXid του αεροσκάφους και στην συνέχεια καλούμε το αντικείμενο και αποθηκεύουμε-ενημερώνουμε σε αυτό τον αριθμό πτήσης. Στην περίπτωση που δεν υπάρχει δημιουργούμε ένα νέο αντικείμενο της κλάσης Aircraft και το αποθηκεύουμε στο pinakasaircrafts με το αντίστοιχο κλειδί. Η κλάση Aircraft έχει το δικό της constructorτη μέθοδο δηλαδή που δημιουργεί αντικείμενα. Η μέθοδος αυτή έχει σχεδιαστεί έτσι ώστε στις αρχικές παραμέτρους που δέχεται εκτός απ τις πληροφορίες που θέλουμε να αποθηκεύσουμε, να δέχεται και τον τύπο μηνύματος που λάβαμε και αποκωδικοποιήσαμε το typecode δηλαδή έτσι ώστε κάθε φορά που δημιουργεί ένα αντικείμενο να συμπληρώνει μόνο τις μεταβλητές που σχετίζονται με το συγκεκριμένο typecode και οι υπόλοιπες να συμπληρώνονται στην συνέχεια όταν ανατρέχουμε στο dictionaryπρος ενημέρωση των μεταβλητών των αεροσκαφών Αποκωδικοποίηση μηνύματος θέσης Airborne Position Αν η μεταβλητή typecodedec έχει τιμή 9 έως 22 τότε σημαίνει ότι αυτό το μήνυμα DF17 είναι ένα μήνυμα AirbornePosition. Ανατρέχοντας στον πίνακα 3 μπορούμε να δούμε τη δομή του μηνύματος. Το μήνυμα αυτό περιέχει ή το ζυγό ή το μονό κομμάτι του γεωγραφικού πλάτους και μήκους και το επίπεδο πτήσης σε πόδια. Το 22 ο bit απ τα 56 του ΜΕ προσδιορίζει αυτό ακριβώς αν το συγκεκριμένο μήνυμα είναι μονό ή ζυγό, 1 ή 0 αντίστοιχα. Το γεγονός ότι χρειαζόμαστε δύο μηνύματα για να προσδιορίσουμε το ακριβές στίγμα του αεροσκάφους καθιστά δύσκολη την προσέγγιση του προβλήματος με κώδικα. Αυτό συμβαίνει γιατί δεν γνωρίζουμε ποιο κομμάτι απ τα δύο θα λάβουμε πρώτο όπως επίσης αν λάβουμε ένα απ τα δύο μέρη, τίποτα δεν μας εγγυάται ότι θα λάβουμε και το δεύτερο. Σε συνδυασμό με τον περιορισμό ότι πρέπει οι λήψεις των δύο κομματιών να μην απέχουν χρονικά μεταξύ τους πάνω από 10 δευτερόλεπτα και το γεγονός ότι στο ενδιάμεσο χρόνο μπορεί να λαμβάνουμε μηνύματα άλλου είδους και από άλλα αεροσκάφη συνίσταται ένα σύνθετο πρόβλημα. Έπρεπε να γίνει ανάλυση του προβλήματος και προσεκτικός σχεδιασμός της ροής του λογισμικού. Ο τρόπος που προσεγγίστηκε το πρόβλημα είναι ο εξής: Αρχικά ορίσαμε μια καινούργια κλάση την Zevgi η οποία θα δημιουργεί αντικείμενα-μηνύματα που θα περιείχαν σαν μεταβλητές τα μονά και ζυγά κομμάτια των συντεταγμένων μαζί με την χρονική σφραγίδα που έγινε η λήψη του κάθε ένα. Στη συνέχεια ορίστηκε ένα dictionary το οποίο θα λαμβάνει σαν κλειδί το HEXid κάθε αεροσκάφους και σαν δεδομένα τα αντικείμενα της κλάσης Zevgi, τα μονά και ζυγά κομμάτια των 56

58 συντεταγμένων δηλαδή. Το σκεπτικό είναι τα αντικείμενα της κλάσης να δρουν σαν μια προσωρινή δεξαμενή αποθήκευσης των μονών ή των ζυγών κομματιών μέχρι να συμπληρωθεί το αντικείμενο με ένα μονό και ένα ζυγό μέρος που δεν απέχουν χρονικά παραπάνω από 10 δευτερόλεπτα. Αναλυτικότερα η ροή του προγράμματος έχει ως εξής: Ας υποθέσουμε ότι λαμβάνουμε ένα μονό μήνυμα θέσης. Αρχικά απομονώνουμε τα bits απ το ΜΕ που αφορούν το επίπεδο πτήσης και στην συνέχεια τα μετατρέπουμε σε πόδια χρησιμοποιώντας τον αλγόριθμο που περιγράφεται στην παράγραφο του Αnnex 10 τόμος 4 του ICAO. Επόμενο βήμα είναι να ελέγξουμε αν υπάρχει ήδη το ίδιο HEXid του αεροσκάφους στο dictionary pinakasoddeven. Αν υπάρχει ήδη και δεν περιέχει ζυγό κομμάτι, σημαίνει ότι περιέχει μονό το οποίο είναι παλιότερο από αυτό που μόλις λάβαμε άρα το σβήνουμε και ενημερώνουμε με το καινούργιο μαζί με την καινούργια σφραγίδα της ώρας. Αν υπάρχει ήδη και περιέχει ένα ζυγό κομμάτι με έναν σύντομο αλγόριθμο ελέγχουμε αν η χρονική σφραγίδα του ζυγού απέχει λιγότερο από 10 δευτερόλεπτα από αυτή του μονού που μόλις λάβαμε και αυτό ισχύει προχωράμε στην αποκωδικοποίηση του στίγματος σύμφωνα με τον αλγόριθμο CPR, προσέχοντας να σβήσουμε στο τέλος το ζυγό κομμάτι απ το αντικείμενο αφού μόλις το χρησιμοποιήσαμε και θα πρέπει το ενδεχόμενο καινούργιο ζυγό που θα λάβουμε να βρει κενή την θέση για να αποθηκευτεί. Στην περίπτωση που η χρονική σφραγίδα του ζυγού είναι παλιότερη από 10 δευτερόλεπτα το σβήνουμε και απλά αποθηκεύουμε το μονό κομμάτι. Τέλος στην περίπτωση που δεν υπάρχει τέτοιο HEXid στο dictionary pinakasoddeven δημιουργούμε ένα καινούργιο αντικείμενο της κλάσης Zevgi, και το αντιστοιχίζουμε με το κατάλληλο κλειδί. Ακριβώς η αντίστοιχη διαδικασία επαναλαμβάνεται στην περίπτωση που λάβουμε πρώτα ένα ζυγό κομμάτι. Εντέλει αφού βρεθούμε με ένα στίγμα συντεταγμένων και το ύψος στο οποίο πετάει το αεροσκάφος μπορούμε να προβούμε στην αποθήκευση των πληροφοριών στο αντίστοιχο αντικείμενο της κλάσης Aircraft και στην βάση δεδομένων. Να επισημάνουμε όμως ότι σκοπίμως επιλέχτηκε να γίνεται η εγγραφή στη βάση δεδομένων σε αυτό το σημείο της ροής του προγράμματος. Αναφέραμε νωρίτερα ότι για να αναπαραστήσουμε ένα αεροσκάφος πάνω σε ένα χάρτη πέρα απ τις άλλες πληροφορίες είναι απαραίτητες οι συντεταγμένες, χωρίς αυτές δεν μπορούμε να τα τοποθετήσουμε πάνω στον χάρτη. Στο σημείο αυτό της ροής έχουμε εξασφαλίσει τουλάχιστον το στίγμα του αεροσκάφους και πολύ πιθανόν και τις υπόλοιπες πληροφορίες που ζητάμε αφού αυτές περιέχονται μέσα σε ένα μόνο μήνυμα, άρα δεν αργούν τόσο να συλλεχτούν όσο το στίγμα. Στην συνέχεια γίνεται ένας έλεγχος για το αν οι τιμές στις μεταβλητές της ταχύτητας, διεύθυνσης και αριθμού πτήσης είναι παλιότερες από κάποιο εύλογο χρονικό διάστημα το οποίο μπορεί να ορισθεί κατά περίσταση απ τον χρήστη και σε αυτήν την περίπτωση σβήνονται για να διασφαλίσουμε την εγκυρότητα των δεδομένων που περνάνε στη βάση δεδομένων. Έπειτα δημιουργήθηκε ένας αλγόριθμος ο οποίος 57

59 υπολογίζει την απόσταση των αεροσκαφών από τις συντεταγμένες του δέκτη με απώτερο σκοπό να ορίσουμε μια μέγιστη απόσταση εμβέλειας του δέκτη και έτσι να εξαλείψουμε την πιθανότητα να περάσει στην βάση δεδομένων κάποιο αεροσκάφος που βρίσκεται σε μια γεωγραφική θέση που είναι πρακτικά αδύνατον να λάβουμε κάποιο σήμα από αυτό. Η διαδικασία της εγγραφής στην βάση δεδομένων περιλαμβάνει τις ακόλουθες ενέργειες. Αρχικά ανατρέχουμε στο dictionary pinakasaircrafts και καλούμε το αντικείμενο με το HEXid του αεροσκάφους που μόλις υπολογίσαμε το στίγμα του. Στην συνέχεια περνάμε όλες τις μεταβλητές, ακόμα και αυτές που ίσως δεν έχουν ακόμα συμπληρωθεί με πληροφορίες, σαν παραμέτρους στις εντολές εγγραφής στην βάση δεδομένων. 58 Εικόνα 14 Διάγραμμα ροής συγκέντρωσης των Odd και Even τμημάτων

60 4.1.7 Αποκωδικοποίηση μηνύματος ταχύτητας AirborneVelocity Αν η μεταβλητή typecodedec έχει την τιμή 19 ή σε δυαδικό τότε αυτό σημαίνει ότι έχουμε λάβει ένα μήνυμα ταχύτητας. Όπως αναλύσαμε στη δομή του DF17 τα μηνύματα Airborne Velocity περιέχουν το μέτρο δύο διανυσμάτων, της ταχύτητας στον άξονα Βορρά-Νότου και την ταχύτητα στον άξονα Ανατολής-Δύσης καθώς και τον ρυθμό ανόδου/καθόδου. Αρχικά ελέγχουμε τις τιμές των bit 14 και 25, όπως αυτά υποδεικνύονται στον πίνακα 4 που παραθέσαμε στο 3 ο κεφάλαιο. Τα bits αυτά μας δείχνουν την κατεύθυνση του διανύσματος που βρίσκεται πάνω στους άξονες το μέτρο του οποίου περιέχεται στα επόμενα bits. Οι τιμές 0 και 1 αντικατοπτρίζουν Βορρά-Ανατολή και Νότο-Δύση αντίστοιχα. Στον άξονα Βορρά-Νότου ορίζουμε θετική φορά την Βόρεια και στον άξονα Ανατολής-Δύσης ορίζουμε θετική φορά την Ανατολική. Έχοντας λοιπόν δύο διανύσματα με κοινή αρχή και κάθετα μεταξύ τους μπορούμε να χρησιμοποιήσουμε το πυθαγόρειο θεώρημα για να βρούμε το μέτρο της συνισταμένης τους, την πραγματική ταχύτητα του αεροσκάφους δηλαδή, και απλή τριγωνομετρία για να βρούμε την διεύθυνση του διανύσματος δηλαδή την κατεύθυνση του αεροσκάφους. Η ρίζα του αθροίσματος των τετραγώνων των δύο μέτρων μας δίνει το μέτρο του αθροίσματός τους. Η γωνία θ μπορεί να υπολογιστεί με τον εξής τρόπο. Γνωρίζοντας το μέτρο Ανατολής-Δύσης και το μέτρο του αθροίσματος των δύο διανυσμάτων μπορούμε να υπολογίσουμε το ημίτονο της γωνίας θ. Χρησιμοποιώντας την εντολή Math.Asin της C# μπορούμε να βρούμε το αντίστροφο, την γωνία που αντιστοιχεί στο ημίτονο αυτό. Όμως επειδή σε ένα ημίτονο αντιστοιχούν δύο γωνίες έπρεπε Εικόνα 15 Πρόσθεση των δύο διανυσμάτων ταχύτητας να φτιάξουμε έναν αλγόριθμο που να επιλέγει την σωστή γωνία. Αυτός ο αλγόριθμος μπορεί να αναπαρασταθεί με τον παρακάτω πίνακα. 59

61 ΑΞΟΝΑΣ N-S ΑΞΟΝΑΣ E-W ΓΩΝΙΑ 0 0 θ θ θ θ Πίνακας 5 Υπολογισμός γωνίας ανάλογα με το τεταρτημόριο Με αυτόν τον τρόπο προκύπτει και η κατεύθυνση του αεροσκάφους. Το επόμενο βήμα είναι η αποκωδικοποίηση του ρυθμού ανόδου/καθόδου (verticalrate). Αφού απoμονώσουμε τα bits που αφορούν το ρυθμό ανόδου/καθόδου μαζί με τα αμέσως προηγούμενο που υποδεικνύει το πρόσημο όπως φαίνεται στον πίνακα 4 τα μετατρέπουμε σε δεκαδικό σύστημα και πολλαπλασιάζουμε με 64 (πόδια ανά λεπτό) για να προκύψει το νούμερο που αναζητούμε. Τέλος πραγματοποιούμε έναν έλεγχο στο κατά πόσο οι τιμές που προέκυψαν απ τους υπολογισμούς μας είναι ρεαλιστικές, για παράδειγμα δεν μπορεί ένα πολιτικό αεροσκάφος να ταξιδεύει με 550 κόμβους. Αν προκύψει ένα τέτοιο αποτέλεσμα σημαίνει ότι είναι λάθος της διαδικασίας αποκωδικοποίησης και θα πρέπει να παραληφθεί απ την διαδικασία εγγραφής στη βάση δεδομένων. Μετά απ τον έλεγχο αυτόν και αφού βεβαιωθούμε ότι οι τιμές είναι μέσα σε λογικά πλαίσια προχωρούμε στο να καλέσουμε το αντικείμενο-αεροσκάφος απ το dictionary pinakasaircrafts και να ενημερώσουμε ή να δημιουργήσουμε της σχετικές μεταβλητές ταχύτητας με τις καινούργιες τιμές, έτσι ώστε στην επόμενη λήψη έγκυρου στίγματος να αποθηκευτούν στην βάση δεδομένων. 4.2 Βάση Δεδομένων MySql Τα δεδομένα που αποκωδικοποιεί και εξάγει το λογισμικό θα πρέπει να αποθηκεύονται κάπου έτσι ώστε να είναι διαθέσιμα στην διεπαφή όταν και αν αυτά χρειαστούν. Θα πρέπει να αποθηκεύονται σε μία βάση δεδομένων, στην οποία το λογισμικό θα είναι υπεύθυνο για την εγγραφή τους και την ενημέρωσή τους και το κομμάτι της διεπαφής απλά θα τα διαβάζει και στην συνέχεια θα τα παρουσιάζει. Βάση δεδομένων στον χώρο της πληροφορικής εννοούμε μια συλλογή, οργανωμένων σε πίνακες, δεδομένων που σχετίζονται μεταξύ τους, είναι ηλεκτρονικά αποθηκευμένα και διαχειρίζονται από ένα λογισμικό, το σύστημα διαχείρισης βάσης δεδομένων. Κάθε πίνακας περιέχει σειρές και στήλες. Κάθε σειρά ονομάζεται εγγραφή και περιέχει τις πληροφορίες και τα δεδομένα σχετικά με κάτι. Κάθε στήλη ονομάζεται πεδίο και είναι ο τύπος της πληροφορίας που περιέχεται στο συγκεκριμένο κομμάτι κάθε εγγραφής. 60

62 Η διαδικασία σχεδίασης της ΒΔ έχεις ως εξής: Αρχικά συγκεντρώνουμε και οργανώνουμε όλους τους τύπους των πληροφοριών που θέλουμε να αποθηκεύονται σε αυτήν. Χωρίζουμε τους τύπους πληροφορίας σε θεματικές ενότητες απ τις οποίες θα δημιουργήσουμε τους ανάλογους πίνακες και στην συνέχεια για κάθε πίνακα δημιουργούμε τα σχετικά πεδία ανάλογα με τους τύπους πληροφορίας που περιέχουν. Για κάθε πίνακα ορίζουμε ένα πρωτεύον κλειδί, μια στήλη δηλαδή που θα προσδιορίζει μοναδικά κάθε εγγραφή. Τέλος προσδιορίζουμε με ποιο τρόπο σχετίζονται τα δεδομένα ενός πίνακα με αυτά των άλλων. Κάθε εγγραφή ενός πίνακα μπορεί να σχετίζεται με εγγραφές άλλων πινάκων με μία απ τις ακόλουθες σχέσεις: Ένα προς ένα, ένα προς πολλά και πολλά προς πολλά. Η σχέση ένα προς ένα αφορά οντότητες που μπορούν να λάβουν μόνο ένα αντίκρισμα παραδείγματος χάρη κάθε πολίτης μπορεί να έχει μόνο έναν αριθμό δελτίου αστυνομικής ταυτότητας και κάθε αριθμός δελτίου ταυτότητας μπορεί να αντιστοιχεί σε έναν και μόνο πολίτη. Ο πίνακας δηλαδή Πολίτες με τον πίνακα Δελτία ταυτότητας συνδέονται με μία σχέση ένα προς ένα. Κάθε πολίτης όμως μπορεί να έχει πολλούς αριθμούς τηλεφώνου στο όνομά του, αλλά κάθε αριθμός τηλεφώνου αντιστοιχεί σε έναν πολίτη, μια σχέση ένα προς πολλά. Τέλος κάθε πολίτης μπορεί να έχει πολλές αθλητικές δραστηριότητες και κάθε αθλητική δραστηριότητα να εκτελείται από πολλούς πολίτες, μια σχέση πολλά προς πολλά. (Λέκκας, 2011) Πρώτη προσέγγιση Αρχικά δημιουργήθηκε μια βάση δεδομένων που περιείχε έναν μόνο πίνακα. Κάθε φορά που το λογισμικό λάμβανε ένα στίγμα δημιουργούσε και μία εγγραφή στον πίνακα αυτόν που περιείχε το HEXid του αεροσκάφους, το γεωγραφικό πλάτος, το γεωγραφικό μήκος, το επίπεδο πτήσης, την χρονική στιγμή της λήψης και αν υπήρχαν διαθέσιμα (αν είχε γίνει ήδη η λήψη τους δηλαδή) τον αριθμό πτήσης, την ταχύτητα, την κατεύθυνση και τον ρυθμό ανόδου/καθόδου. Αφήνοντας το λογισμικό να λειτουργήσει για ένα διάστημα 20 ωρών το πλήθος των εγγραφών είχε εκτοξευθεί στις ήδη στις καθιστώντας εξαιρετικά χρονοβόρα την διαδικασία να επιλέξουμε απ το σύνολο των εγγραφών αυτές που θα έπρεπε να εμφανίζονται στον χάρτη. Την πιο πρόσφατη εγγραφή κάθε αεροσκάφους, απ τα αεροσκάφη που έχουν εμφανιστεί στην ΒΔ τα τελευταία 10 λεπτά δηλαδή. Ένα σύνθετο ερώτημα το οποίο όσο αυξανόταν το πλήθος των εγγραφών στην ΒΔ τόσο περισσότερο χρόνο θα χρειαζόταν για να δημιουργηθούν τα αποτελέσματα Επανασχεδιασμός της βάσης δεδομένων Έγινε φανερό ότι θα πρέπει να επανασχεδιάσουμε την ΒΔ απ την αρχή με γνώμονα την ταχύτητα ανεξαρτήτως του όγκου της. Έγινε λοιπόν η εξής προσέγγιση στο πρόβλημα. Δημιουργήθηκαν δύο πίνακες αυτή την φορά ο ένας θα έχει τον ρόλο του αρχείου στο οποίο θα αποθηκεύονται όλες οι εγγραφές όπως και πριν για να μπορούμε να ανατρέξουμε σε αυτές όταν ζητηθεί για παράδειγμα όλο το ιστορικό των θέσεων ενός αεροσκάφους. Ο δεύτερος πίνακας θα περιέχει μόνο της εγγραφές που πρέπει να παρουσιαστούν στον χάρτη. Για να γίνει αυτό το λογισμικό με την λήψη ενός στίγματος 61

63 ενός αεροσκάφους θα δημιουργεί μία εγγραφή στον πίνακα του αρχείου logdb και στην συνέχεια θα ελέγχει αν υπάρχει άλλη εγγραφή του ίδιου αεροσκάφους στον δεύτερο πίνακα mapdisplay. Αν υπάρχει θα την ενημερώνει με τις καινούργιες τιμές ενώ αν δεν υπάρχει θα την προσθέτει ως καινούργια. Παράλληλα προστέθηκε στο λογισμικό αποκωδικοποίησης ένα loop με το οποίο κάθε ένα λεπτό θα γίνεται έλεγχος στον πίνακα mapdisplay για το αν υπάρχει εγγραφή από κάποιο αεροσκάφος που απέχει χρονικά περισσότερο από 10 λεπτά απ την δεδομένη στιγμή. Αν κάτι τέτοιο ισχύει η εγγραφή θα αφαιρείται. Ο μέγιστος χρόνος δηλαδή που μπορεί μια εγγραφή να παραμείνει στον πίνακα mapdisplay χωρίς να ανανεωθεί είναι 11 λεπτά. Με αυτόν τον τρόπο εξασφαλίσαμε έναν πίνακα τον mapdisplay που θα περιέχει πάντα ελάχιστες εγγραφές, μόνο αυτές που πρέπει να τροφοδοτήσουν τον χάρτη, και θα επιτρέπει την παραγωγή γρήγορων αποτελεσμάτων στα ερωτήματα που θα προέρχονται απ την διεπαφή. Βλέπουμε στην συνέχεια τα πεδία που περιέχουν οι δύο πίνακες. Ο logdb στην αρχή περιέχει έναν αύξων αριθμό ο οποίος είναι και το πρωτεύον κλειδί. Στον πίνακα mapdisplay δεν υπάρχει αύξων αριθμός, το πρωτεύον κλειδί είναι το hexidαφού σε αυτόν τον πίνακα μπορεί να υπάρξει μόνο μία εγγραφή κάθε αεροσκάφους. Θεωρήθηκε καλή πρακτική να υπάρχει ένα πεδίο Frame στον logdb που θα αποθηκεύουμε κάθε πακέτο μηνύματος, αυτούσιο σε δεκαεξαδική αναπαράσταση, που δημιούργησε το αντίστοιχο στίγμα σε κάθε εγγραφή. Έτσι θα μπορούν να γίνουν εκ των υστέρων έλεγχοι και συγκρίσεις στις τιμές που δημιουργήθηκαν από τα μηνύματα. Τέλος στον πίνακα mapdisplay υπάρχει ένα πεδίο Icon που αφορά το εικονίδιο που θα πρέπει να επιλεγεί στον χάρτη για την αναπαράσταση των αεροσκαφών ανάλογα με την κατεύθυνση που έχει το καθένα. Περισσότερα γι αυτό θα δούμε στο κεφάλαιο 5. Α/Α HexID FlightNo Lat Lon Course Groundspeed Verticalrate Distance Landed Timestamp Frame Πίνακας 6 Πεδία Logdb HexID FlightNo Lat Lon Course Groundspeed Verticalrate Distance Landed Icon Timestamp Πίνακας 7 Πεδία Mapdisplay Για την ικανοποίηση των απαιτήσεων χρήσης σχετικά με την εμφάνιση των διεθνών αεροδρομίων στον χάρτη, του προορισμού κάθε πτήσης και τις εκτιμώμενης ώρας άφιξης είναι κρίνεται απαραίτητο η βάση δεδομένων να περιέχει και άλλες πληροφορίες πέρα απ τα δεδομένα που λαμβάνουμε απ τα αεροσκάφη σχετικά με την θέση και την κινητική τους κατάσταση. Αρχικά θα πρέπει να υπάρχει άλλος ένας πίνακας που να περιέχει μία εγγραφή για κάθε διεθνές αεροδρόμιο με το όνομα του αεροδρομίου και πεδία με τις ακόλουθες πληροφορίες που κρίθηκαν αναγκαίες να περιέχονται στην εφαρμογή μας. Τον διεθνή κωδικό του αεροδρομίου ICAO ID που θα είναι και το πρωτεύον κλειδί του πίνακα, την χώρα στην οποία ανήκει, την ζώνη ώρας στην οποία βρίσκεται, τις συντεταγμένες του πύργου ελέγχου, τις συντεταγμένες του 62

64 βορειοδυτικού άκρου του, τις συντεταγμένες του νοτιοανατολικού άκρου του, τον σύνδεσμο για την ιστοσελίδα του αεροδρομίου. Σαν κεντρικό σημείο του αεροδρομίου θεωρούμε τον πύργο ελέγχου και τις συντεταγμένες των άκρων του τις χρειαζόμαστε για να μπορούμε στην συνέχεια να ελέγχουμε ποια αεροσκάφη βρίσκονται εντός της τερματικής περιοχής του αεροδρομίου. Σαν περαιτέρω πληροφορίες προς χρήστες εμπλεκόμενους με την αεροπορία θα μπορούσαμε να συμπεριλάβουμε πληροφορίες όπως τον αριθμό και την διεύθυνση των διαδρόμων του τις συχνότητες επικοινωνίας και ραδιοβοηθημάτων του αεροδρομίου καθώς επίσης και μετεωρολογικές πληροφορίες κάτι πολύ σημαντικό για την αεροπορία. Όλες αυτές οι πληροφορίες υπάρχουν διαθέσιμες στο διαδίκτυο και είναι δυνατή η δημιουργία ενός λογισμικού που θα τις συλλέγει ανά τακτά διαστήματα και θα ενημερώνει με αυτές την βάση δεδομένων. Με παρόμοιο τρόπο μπορούμε να δημιουργήσουμε άλλον ένα πίνακα που θα περιέχει φωτογραφίες και πληροφορίες για τον τύπο αεροσκάφους για όλα τα πολιτικά αεροσκάφη. Αυτός ο πίνακας θα περιέχει σαν πρωτεύον κλειδί το HEXid των αεροσκαφών, σύνδεσμο σε φωτογραφία του αεροσκάφους, τον τύπο του, το registrationκαι την εταιρεία στην οποία ανήκει. Μπορεί ακόμα να περιέχει ορισμένα τεχνικά χαρακτηριστικά του αεροσκάφους που προκύπτουν απ τον τύπο του όπως τον μέγιστο αριθμό επιβατών, τον αριθμό μηχανών, την μέγιστη απόσταση που μπορεί να καλύψει, την μέγιστη ταχύτητα κλπ. Ο πίνακας mapdisplay θα σχετίζεται με αυτόν τον πίνακα με τη σχέση ένα προς ένα ενώ αυτός ο πίνακας θα σχετίζεται με τον logdb με την σχέση ένα προς πολλά καθώς στον logdb ένα αεροσκάφος εμφανίζεται παραπάνω από μία φορά. Για να μπορεί επίσης η εφαρμογή να προσφέρει υπηρεσίες σχετικά με τον προορισμό κάθε πτήσης και την εκτιμώμενη ώρα άφιξης θα πρέπει να υπάρχει άλλος ένας πίνακας στην ΒΔ που να περιέχει τους κωδικούς όλων των πτήσεων, τις αφετηρίες και τους προορισμούς. Κάθε φορά που λαμβάνουμε από ένα αεροσκάφος τον αριθμό πτήσης, αυτό θα συσχετίζεται αμέσως με τα στοιχεία της πτήσης και θα μπορεί να γίνει μια προσέγγιση στην ώρα άφιξης γνωρίζοντας την θέση του, την ταχύτητά του και την απόστασή του απ το αεροδρόμιο στο οποίο κατευθύνεται. 63

65 Εικόνα 16 Διάγραμμα οντοτήτων E-R 64

66 ΚΕΦΑΛΑΙΟ 5 Σχεδίαση Διεπαφής Έχοντας εξασφαλίσει μια βάση δεδομένων που περιέχει πλέον ανά πάσα στιγμή όλες τις πληροφορίες που χρειαζόμαστε φτάσαμε στο σημείο που πρέπει να παρουσιάσουμε τις πληροφορίες αυτές στους χρήστες τους συστήματός μας, ώστε να αλληλεπιδράσουν μαζί τους και να τις διαχειριστούν όπως επιθυμούν. Αυτό όπως υποδεικνύεται απ τις προδιαγραφές θα γίνει μέσω ενός ιστότοπου που θα περιέχει έναν χάρτη πάνω στον οποίο θα εμφανίζονται τα αεροσκάφη και οι πληροφορίες. Θα πρέπει να λοιπόν η διεπαφή να συνδέεται στην ΒΔ, να επιλέγει όσες εγγραφές περιέχουν πληροφορίες που χρειαζόμαστε και να τις μετατρέπει στην κατάλληλη μορφή ώστε να τροφοδοτήσει με αυτές τον χάρτη. 5.1 Αλληλεπίδραση με τον χρήστη Ο βασικός σκοπός μας είναι η αλληλεπίδραση των χρηστών με το σύστημα. Λέγοντας αλληλεπίδραση εννοούμε την αμοιβαία δράση και των δύο με σκοπό την επίτευξη των στόχων των χρηστών. Η αλληλεπίδραση αυτή καθίσταται δυνατή μέσω της διεπαφής. Η διεπαφή είναι το υλικό ή το λογισμικό που χρησιμοποιεί ο χρήστης για να αλληλεπιδράσει με κάποιο μηχάνημα ή στην περίπτωσή μας με τον Η/Υ. Οι χρήστες δρουν μέσω της διεπαφής με σκοπό να διαχειριστούν το σύστημα. Ως απόκριση το σύστημα απαντά με μία ανάδραση που μεταφέρεται στους χρήστες πάλι μέσω τις διεπαφής ως ένδειξη τον αποτελεσμάτων που επέφερε η αρχική τους δράση. Η αλληλεπίδραση αυτή στοχεύει στο να μπορέσουν οι χρήστες να χρησιμοποιήσουν το σύστημα για να εκπληρώσουν τους στόχους τους. Το σύνολο των δράσεων των χρηστών και των τρόπο που αποκρίνεται το σύστημα σε αυτές ονομάζεται τεχνική αλληλεπίδρασης. Η τεχνική αλληλεπίδρασης έχει ανθρωποκεντρικό χαρακτήρα με την έννοια οτι είναι προσαρμοσμένη στα χαρακτηριστικά στις ανάγκες και στις ιδιαιτερότητες των χρηστών αλλά και στην εμπειρία που θα έχουν κατά τη χρήση του συστήματος. Η θεωρητική προσέγγιση στην σχεδίαση της διεπαφής θα μπορούσε από μόνη της να αποτελέσει θέμα ΔΕ. Παρόλα αυτά κρίθηκε απαραίτητο να παραθέσουμε μερικές αρχές και κάποια χαρακτηριστικά σχεδίασης μιας επιτυχημένης διεπαφής. Έχοντας προσδιορίσει τους πιθανούς χρήστες του συστήματος μας, τις απαιτήσεις χρήσης και τις ανάγκες τους, και έχοντας συγκεντρώσει το περιεχόμενο που θα πρέπει η εφαρμογή να τους παρέχει μπορούμε να προβούμε στον σχεδιασμό της αρχιτεκτονικής της πληροφορίας και της ροή της προς τους χρήστες. Κρίσιμο χαρακτηριστικό κάθε διεπαφής είναι η ευχρηστία της, που ορίζεται σύμφωνα με το ISO 9241 που περιγράφει τα standardsτης αλληλεπίδρασης ανθρώπου με υπολογιστή, ως η αποτελεσματικότητα, η αποδοτικότητα και η ικανοποίηση των χρηστών ως προς την επίτευξη των στόχων τους σε ένα συγκεκριμένο πλαίσιο χρήσης. Η αποτελεσματικότητα αναφέρεται στο κατά πόσο οι χρήστες καταφέρνουν να 65

67 επιτύχουν τους στόχους τους. Η αποδοτικότητα αναφέρεται στους πόρους που χρησιμοποιήθηκαν κατά την διάρκεια της χρήσης, όσο περισσότεροι τόσο λιγότερη η απόδοση. Τέλος η ικανοποίηση σχετίζεται με την εμπειρία που είχαν οι χρήστες απ την χρήση του συστήματος και κατά πόσο αυτή ήταν άνετη και εύκολη. Μπορούμε να πούμε οτι η ευχρηστία μιας διεπαφής υποδεικνύει τον βαθμό που η πρόσβαση και η πλοήγηση στις πληροφορίες γίνεται διαισθητικά και φυσικά. Σύμφωνα με τον Donald A. Norman και το βιβλίο που έγραψε το 1998 The design of everyday things τα 6 στοιχεία που χαρακτηρίζουν μία εύχρηστη διεπαφή είναι τα εξής: Visibility (Ορατότητα) Οι δυνατότητες και οι λειτουργίες του συστήματος πρέπει να είναι ορατές απ τον χρήστη και να τις αναγνωρίζει διαισθητικά Feedback (Ανάδραση) Το σύστημα θα πρέπει να γνωστοποιεί το αποτέλεσμα των ενεργειών του χρήστη Constraints (Περιορισμοί) Αυτόματη απενεργοποίηση κάποιων λειτουργιών του συστήματος κάτω από ορισμένες περιστάσεις Mapping (Αντιστοίχηση) Των στοιχείων της διεπαφής με την φυσική τους λειτουργία Consistency (Συνέπεια) Του σχεδιαστικού τρόπου σε όλη την έκταση του συστήματος Affordance (Υπονοούμενη δυνατότητα) Κάθε στοιχείο του συστήματος πρέπει να υπονοεί τον τρόπο χρήσης του Ένα άλλο χαρακτηριστικό μιας διεπαφής είναι η λειτουργικότητά της. Αναφέρεται στον βαθμό που οι λειτουργίες τις συνεισφέρουν στην επίτευξη των στόχων των χρηστών. Οι χρήστες μπορεί να έχουν σκοπό την αναζήτηση, την συλλογή, την οργάνωση, την παραγωγή, ή την αξιολόγηση πληροφοριών. Μπορεί ακόμα να χρειάζονται να επικοινωνήσουν ή να λάβουν βοήθεια και καθοδήγηση. Ο βαθμός που τα λειτουργικά εργαλεία της διεπαφής συνεισφέρουν στο να πραγματοποιηθεί ένας δεδομένος στόχος ή ένας συνδυασμός αυτών χαρακτηρίζει την λειτουργικότητά της. Η οπτικοποίηση είναι ένα χαρακτηριστικό μιας διεπαφής που συνδέεται άμεσα με τα προηγούμενα δύο. Είναι ο τρόπος που παρουσιάζεται το περιεχόμενο και οι λειτουργίες της στους χρήστες. Το περιεχόμενο θα πρέπει να επικοινωνείται με επιτυχία προς τους χρήστες. Οι χρήστες θα πρέπει να μαθαίνουν τις λειτουργίες της διεπαφής εύκολα και διαισθητικά μέσα από ένα περιβάλλον αισθητικά ευχάριστο και ενδιαφέρον. Στο ISO 9241 περιγράφονται τα 7 χαρακτηριστικά μιας άρτιας οπτικοποιημένης διεπαφής. Clarity(Σαφήνεια) Η πληροφορία πρέπει να επικοινωνείται γρήγορα και με ακρίβεια 66

68 Discriminability (Διάκριση) Η πληροφορία πρέπει να διακρίνεται γρήγορα και με ευκολία Conciseness (Περιεκτικότητα) Θα πρέπει να παρουσιάζεται μόνο όση πληροφορία είναι απαραίτητα για να μην βομβαρδίζονται οι χρήστες με πληροφορίες που δεν τους αφορούν Consistency (Συνοχή) Η μορφή της παρουσίασης της πληροφορίας πρέπει να είναι καθολική σε όλη την έκταση της διεπαφής Detectability (Ανιχνευσιμότητα) Η προσοχή των χρηστών θα πρέπει να κατευθύνεται προς την ζητούμενη πληροφορία Legibility (Αναγνωσιμότητα) Οι πληροφορίες θα πρέπει να είναι ευανάγνωστες Comprehensibility (Κατανόηση) Το περιεχόμενο των πληροφοριών θα πρέπει να είναι ξεκάθαρο με αδιαμφισβήτητο νόημα Η διαδικτυακή διεπαφή του συστήματος που σχεδιάζουμε αποτελείται από έναν ιστότοπο του οποίου οι σελίδες του χωρίζονται σε δύο κύρια στοιχεία, τον χάρτη και το υπερκείμενο (hypertext). Το υπερκείμενο μπορεί να περιέχει κείμενο, συνδέσμους, εικόνες, πίνακες και διαφόρων ειδών φόρμες όπως κουμπιά, λίστες επιλογής, ετικέτες, ή κουτιά επιλογής. Θα πρέπει να διατηρεί τις ίδιες ξεκάθαρες σχεδιαστικές γραμμές για το σύνολο του διαδικτυακού τόπου και να έχει σαφή πλαίσια με τίτλους. Η πλοήγηση στον ιστότοπο θα πρέπει να είναι καθολική εννοώντας οτι η βασική μπάρα πλοήγησης θα πρέπει να υπάρχει σε κάθε σελίδα συνήθως οριζόντια ή κάθετα. Οι σύνδεσμοι σε άλλα σημεία του ιστότοπου ή σε κάποιες λειτουργίες του θα πρέπει να είναι ορατοί και περιγραφικοί και αυτοί που έχουν ήδη επιλεγεί στο παρελθόν απ τον χρήστη να ξεχωρίζουν. Ο χάρτης όπως θα δούμε στην συνέχεια παρέχεται έτοιμος σε μια βασική μορφή και ο τρόπος που αλληλεπιδρά με τις ενέργειες των χρηστών είναι προκαθορισμένος. Μπορούμε όμως να επεξεργαστούμε τον κώδικα που δημιουργεί τον χάρτη να εξατομικεύσουμε τις λειτουργίες του και την συμπεριφορά του απέναντι στις ενέργειες των χρηστών. 67

69 5.2 Ο ιστότοπος Ο server Για να λειτουργήσει ένας ιστότοπος (website) χρειάζεται έναν web server (διακομιστή ιστού) στον οποίο θα είναι αποθηκευμένο όλο το περιεχόμενο το οποίο διατίθεται στους φυλλομετρητές ιστοσελίδων (web browsers) των χρηστών για να προβληθεί, αφού αυτοί το ζητήσουν. Στην προκειμένη περίπτωση πέρα από έναν απλό webserver χρειαζόμασταν, έναν webserver που να μπορεί να αντλήσει πληροφορίες από μια βάση δεδομένων χρησιμοποιώντας συγκεκριμένα ερωτήματα. Για αυτό τον λόγο χρησιμοποιήθηκε το πρόγραμμα XAMPP. Το λογισμικό αυτό παρέχει, μια βάση δεδομένων MySQL και έναν Apache webserverπου τρέχει την γλώσσα PHP, ρυθμισμένα έτσι ώστε να είναι συμβατά και λειτουργικά μεταξύ τους, έτοιμα προς χρήση Ο χάρτης Για την δημιουργία του χάρτη χρησιμοποιήθηκε η υπηρεσία της Google, GoogleMapsAPI. Αυτή η υπηρεσία παρέχει την δυνατότητα δημιουργίας, εξατομίκευσης και χρήση των χαρτών της Google σε ένα ιδιόκτητο site. Η Google παρέχει μια πλατφόρμα σε όσους επιθυμούν να χρησιμοποιήσουν αυτήν την υπηρεσία μέσω της οποίας μπορεί να αναπτυχθεί ένα λογισμικό που θα παράγει τον χάρτη που χρειάζεται κανείς, τον οποίο στην συνέχεια μπορεί να χρησιμοποιήσει κατά βούληση. Ο κώδικας που παράγει τον χάρτη που χρειαζόμαστε είναι γραμμένος σε γλώσσα Javascript και τοποθετείται σαν ένα απλό scriptστο αρχείο html που αποτελεί την ιστοσελίδα που θα φιλοξενεί τον χάρτη. Δημιουργήσαμε αρχικά αυτό το αρχείο html (ο κώδικας του htmlβρίσκεται στο παράρτημα της ΔΕ) που θα αποτελεί και την αρχική σελίδα του ιστότοπου, αυτή που θα εμφανίζει όλα τα αεροσκάφη εντός της εμβέλειας του δέκτη απ τα οποία έχουμε λάβει κάποιο στίγμα τα τελευταία 11 λεπτά. Όσα δηλαδή περιέχονται στον πίνακα mapdisplay της ΒΔ. Στην συνέχεια έπρεπε να βρούμε έναν τρόπο να εξάγουμε τις εγγραφές αυτές απ την ΒΔ και να τις παρουσιάσουμε κατάλληλα πάνω στον χάρτη. Όπως προαναφέραμε μια γλώσσα η οποία είναι εύκολα αναγνώσιμη από λογισμικά και χρησιμοποιείται κατά κόρον για την μεταφορά πληροφοριών μεταξύ συστημάτων είναι η XML. Για να παράγουμε λοιπόν αυτό το αρχείο xml με τις πληροφορίες που θέλουμε δημιουργήσαμε ένα scriptσε γλώσσα PHP, το οποίο βρίσκεται στο παράστημα της ΔΕ, και κάθε φορά που τρέχει στον server, δημιουργεί ένα ερώτημα SQL προς την βάση δεδομένων και τα αποτελέσματα που παίρνει, τα «τυπώνει» σε ένα αρχείο xml. Toερώτημα αυτό επιστρέφει όλα τα πεδία από όλες τις εγγραφές του πίνακα mapdisplay και εν συνεχεία το script τα μορφοποιεί κατά πρότυπο xml και τα επιστρέφει. 68

70 <markers> <marker hexid="300068" flightno="null" lat=" " lng=" " alt= "38450" course="90" groundspeed="330" verticalrate="2112" distance="8" status="0" icon="1" timestamp=" :46:14"/> <marker hexid="4690e3" flightno="aee115" lat=" " lng=" " al t="14750" course="158" groundspeed="300" verticalrate="-1728" distance= "25" status="0" icon="6" timestamp=" :49:45"/> </markers> Ενδεικτικά παραθέτουμε το παραπάνω αρχείο xml που δημιουργήθηκε απ το σύστημα. Φαίνονται τα πεδία του πίνακα μαζί με τις τιμές τους, το HEXid του αεροσκάφους, ο αριθμός πτήσης, το γεωγραφικό πλάτος, το γεωγραφικό μήκος, το επίπεδο πτήσης, η κατεύθυνση, η ταχύτητα, ο ρυθμός ανόδου/καθόδου, η απόσταση απ τον δέκτη, το αν βρίσκεται στον αέρα ή στο έδαφος, το εικονίδιο που πρέπει να λάβει κατά την αναπαράστασή του στον χάρτη και τέλος η χρονική στιγμή της λήψης του στίγματος. Σειρά είχε το script που θα δημιουργεί τον χάρτη χρησιμοποιώντας το GoogleMapsApi. Χρησιμοποιώντας τον πηγαίο κώδικα όπως διατίθεται απ την εταιρεία, δημιουργούμε έναν χάρτη στην βασική του μορφή και στην συνέχεια τροποποιώντας τον κώδικα αυτόν μπορούμε να τον εξατομικεύσουμε κάνοντάς τον να εμφανίζει ότι χρειαζόμαστε. Η βασική μορφή του χάρτη αποτελείται απ τον ίδιο τον χάρτη και τα κουμπιά ελέγχου, δηλαδή αυτά που ελέγχουν το κεντράρισμα του χάρτη, το ζουμ και το είδος του χάρτη (δορυφορική εικόνα, γεωμορφολογικός ή οδικός). Στην αρχή λοιπόν του script θέτουμε τις αρχικές παραμέτρους ώστε να δημιουργηθεί και να φορτώσει ο χάρτης και στην συνέχεια καλούμε το αρχείο Php το οποίο θα μας επιτρέψει το αρχείο xml με όλες τις πληροφορίες που χρειαζόμαστε. Στους χάρτες Google μπορούμε να δημιουργήσουμε και να τοποθετήσουμε πάνω τους διάφορα εικονίδια τα λεγόμενα markers. Μπορούμε να τοποθετήσουμε markers σε όποιο σημείο του χάρτη επιθυμούμε υποδεικνύοντας τις συντεταγμένες του και να δώσουμε στο εικονίδιο όποια μορφή θέλουμε υποδεικνύοντας ένα αρχείο εικόνας. Τα markersαφού επιλεγούν με το ποντίκι απ τον χρήστη μπορούν να εμφανίζουν ένα παράθυρο πληροφοριών (info window) στο οποίο μπορούμε να προβάλλουμε ότι κείμενο ή εικόνα θέλουμε. Θα χρησιμοποιήσουμε αυτήν την δυνατότητα για να παραστήσουμε τα αεροσκάφη ως markers πάνω στον χάρτη. Όλα όσα χρειαζόμαστε για να τοποθετήσουμε σωστά τα markers πάνω στον χάρτη, να τους αποδώσουμε την κατάλληλη εικόνα, και να παρέχουμε τις πληροφορίες στα info windows περιέχονται μέσα στο αρχείο xml. Τα markers θα τοποθετούνται πάνω στον χάρτη κατά υπόδειξη του γεωγραφικού πλάτους και μήκους που υπάρχει στο xml για κάθε αεροσκάφος. Για την αναπαράσταση των αεροσκαφών δημιουργήθηκε ένα εικονίδιο ενός αεροσκάφους. Αυτό το εικονίδιο όμως θα πρέπει να περιστρέφεται ανάλογα με την κατεύθυνση που έχει το αεροσκάφος. Για τον λόγο αυτό δημιουργήθηκαν εξαρχής 16 εικονίδια, ένα για κάθε 22.5 μοίρες ενός πλήρους κύκλου 69

71 όπως φαίνεται στο παρακάτω διάγραμμα. Το λογισμικό αποκωδικοποίησης ελέγχει σε ποιο απ τα 16 εικονίδια αντιστοιχεί η κατεύθυνση του κάθε αεροσκάφους και δίνει την ανάλογη τιμή στο πεδίο icon στην ΒΔ. Έτσι για κάθε αεροσκάφος μπορούμε να τοποθετήσουμε ένα marker πάνω στον χάρτη στο σημείο που ανταποκρίνεται στην πραγματική του θέση σωστά προσανατολισμένο σύμφωνα με την κατεύθυνση του. Εικόνα 17 Αντιστοίχιση εικονιδίου ανάλογα με την κατεύθυνση του αεροσκάφους Τέλος μεταφέρουμε τις πληροφορίες που περιέχονται στο xml σχετικά με το HEXid κάθε αεροσκάφους, τον αριθμό πτήσης, το επίπεδο πτήσης, την κατεύθυνση, την ταχύτητα, τον ρυθμό ανόδου/καθόδου, την απόσταση απ τον δέκτη και την χρονική στιγμή της λήψης, σαν παραμέτρους στα info windows έτσι ώστε κάθε φορά που ο χρήστης θα επιλέγει με το ποντίκι ένα marker δηλαδή ένα αεροσκάφος θα εμφανίζεται δίπλα σε αυτό ένα παράθυρο με τις πληροφορίες του. Σε αυτό το σημείο ολοκληρώθηκε ο βασικός σκοπός αυτής της ΔΕ. Μπορέσαμε και παρουσιάσαμε όλα τα αεροσκάφη που βρίσκονται εντός της εμβέλειας του δέκτη, μαζί με τις πληροφορίες πτήσης τους, πάνω σε έναν χάρτη που περιέχεται σε μια ιστοσελίδα. Οι επισκέπτες αυτής της ιστοσελίδας θα μπορούν να βλέπουν σε πραγματικό χρόνο την εναέρια κυκλοφορία στην περιοχή που βρίσκεται ο δέκτης. Σειρά τώρα έχει να δημιουργήσουμε τις απαραίτητες φόρμες και τα σχετικά queries έτσι ώστε οι χρήστες να μπορούν να διαμορφώσουν οι ίδιοι το περιεχόμενο που θα τους προβάλει ο χάρτης σύμφωνα με αυτά που θέλουν να δουν. Για παράδειγμα το ίχνος ενός αεροσκάφους ή μόνο τα αεροσκάφη μιας αεροπορικής συγκεκριμένης εταιρείας κλπ. 70

72 Εικόνα 18 Το σύστημα σε λειτουργία 71

73 ΚΕΦΑΛΑΙΟ 6 Αξιολόγηση Αποτελέσματος Έχοντας ολοκληρώσει την υλοποίηση του συστήματος παρακολούθησης και απεικόνισης πτήσεων σε πραγματικό χρόνο μπορούμε να προβούμε στην διαδικασία ελέγχου και αξιολόγησης των αποτελεσμάτων. Πρέπει να ελέγξουμε ότι το σύστημα λειτουργεί κανονικά, ότι παράγει σωστά αποτελέσματα και ότι οι αρχικοί στόχοι που είχαμε θέσει επετεύχθησαν. 6.1 Έλεγχος εγκυρότητας αποτελεσμάτων Ο πρώτος έλεγχος για την ακεραιότητα των αποτελεσμάτων έγινε απ την στιγμή που δημιουργήθηκε η βάση δεδομένων και άρχισαν να αποθηκεύονται τα πρώτα δεδομένα, αρκετά πριν την υλοποίηση της διεπαφής και του χάρτη. Εκεί για πρώτη φορά κατέστει δυνατό να δούμε συγκεντρωμένα τα δεδομένα που αποκωδικοποιεί το λογισμικό. Έτσι έγινε ένας έλεγχος στο κατά πόσο σχετίζονται οι εγγραφές κάθε αεροσκάφους μεταξύ τους. Πιο συγκεκριμένα κατά πόσο η κάθε εγγραφή είναι συνέχεια τις προηγούμενης, δηλαδή αν υπάρχει μια λογική συνέχεια στις τιμές οι οποίες θα πρέπει να μην μεταβάλλονται περισσότερο από όσο είναι λογικό στα χρονικά πλαίσια που απέχει η μία εγγραφή απ την προηγούμενη. Για παράδειγμα το στίγμα ενός αεροσκάφους, η ταχύτητα και η κατεύθυνσή του συνδέονται μεταξύ τους. Θα πρέπει η διαφορά του στίγματος από δύο διαφορετικές εγγραφές του ίδιου αεροσκάφους να συμφωνεί με την διαφορά που προκύπτει αν πολλαπλασιάσουμε την ταχύτητά του με την χρονική διαφορά των δύο εγγραφών αλλά και με την κατεύθυνση που υποδεικνύουν οι εγγραφές. Όπως επίσης αν η ταχύτητα ή η κατεύθυνση σε δύο εγγραφές που απέχουν μεταξύ τους μερικά δευτερόλεπτα έχουν αλλάξει παραπάνω από όσο είναι φυσικώς δυνατόν αυτό θα σήμαινε ότι υπάρχει κάποιο λάθος. Ακόμα η διαφορά του επιπέδου πτήσης θα πρέπει να συμφωνεί με τον ρυθμό ανόδου/καθόδου. Με όλους αυτούς τους ελέγχους και άλλους παρόμοιους μπορούμε να βεβαιωθούμε ότι τα δεδομένα που παράγει το λογισμικό αποκωδικοποίησης είναι έγκυρα. Να επισημάνουμε εδώ ότι το λογισμικό από μόνο του διενεργεί κάποιους ελέγχους για το αν οι τιμές που παράγει είναι μέσα σε λογικά πλαίσια για κάθε μεμονωμένη λήψη και αν αυτό δεν ισχύει τις απορρίπτει. Αφού ολοκληρώθηκε ο έλεγχος των δεδομένων και συμπεράναμε οτι είναι έγκυρα μπορούμε με ασφάλεια να τα δρομολογήσουμε προς εμφάνιση στον χάρτη. 6.2 Επίτευξη στόχων Με το πέρας του σχεδιασμού και της υλοποίησης του συστήματος θα πρέπει να δούμε κατά πόσο πετύχαμε τους στόχους μας. Ο πρωταρχικός στόχος του συστήματος ήταν η απεικόνιση των πτήσεων σε έναν χάρτη σε πραγματικό χρόνο. 72

74 Αυτό επετεύχθη με μια σειρά από ενέργειες. Αρχικά χρειαζόμασταν να γίνεται λήψη των εκπομπών ads-b των αεροσκαφών. Αυτό έγινε δυνατόν με την βοήθεια του δέκτη. Στην συνέχεια αναπτύχθηκε ένα λογισμικό που διαβάζει την δυαδική ροή δεδομένων που εξάγει ο δέκτης σε μια σειριακή θύρα. Στην συνέχεια συγχρονίζεται μαζί της και αναζητά σε αυτήν αυτούσια πακέτα μηνυμάτων. Όσα από αυτά περιέχουν δεδομένα που μπορούν να μας φανούν χρήσιμα για την εφαρμογή μας τα αποκωδικοποιεί. Έπειτα συλλέγει τις πληροφορίες για κάθε αεροσκάφος και τις οργανώνει αντιστοιχίζοντάς τες σε αντικείμενα. Τέλος αποθηκεύει τις πληροφορίες αυτές σε μία βάση δεδομένων που σχεδιάστηκε και αναπτύχθηκε κατάλληλα για τις ανάγκες τις εφαρμογής μας και την κρατά ενήμερη. Έχοντας υλοποιήσει τον πυρήνα του συστήματος σειρά είχε η ανάπτυξη ενός ιστότοπου ικανού να αντλήσει πληροφορίες απ την βάση δεδομένων, που θα φιλοξενεί ιστοσελίδες οι οποίες θα αναπαριστούν την εναέρια κυκλοφορία με διανύσματα των αεροσκαφών πάνω σε ένα χάρτη. Με αυτόν τον τρόπο πετύχαμε να καταστήσουμε προσβάσιμη την εικόνα και την κατάσταση της εναέριας κυκλοφορίας σε κάθε χρήστη του διαδικτύου. Στο σύνολό του το σύστημά μας είναι μια σύνθετη συνεργασία τριών επιμέρους εφαρμογών (Λογισμικό/ΒΔ/Διεπαφή) για την δημιουργία των οποίων χρησιμοποιήθηκαν πέντε διαφορετικές γλώσσες προγραμματισμού και γλώσσες scripting. Για κάθε γλώσσα χρειάστηκε η απαραίτητη εκμάθηση τουλάχιστον της βασικής σύνταξής της και των βασικών λειτουργικών χαρακτηριστικών της και αρκετές φορές αναγκαίο κατέστη η εκμάθηση συνδυαστικής χρήσης δύο όπως για παράδειγμα το λογισμικό C# να εισάγει εγγραφές στην ΒΔ με εντολές SQL ή η PHP να γράφει σε XML. Χρειάστηκε επίσης κατανόηση του πρωτοκόλλου ads-b και της περίπλοκης δομής των εκπομπών του. Η εκπόνηση της ΔΕ γενικότερα ήταν μια διαδικασία, τόσο εφαρμογής των διδαχθέντων πεδίων όσο και εκμάθησης νέων. Σε αυτό το σημείο πρέπει να αναφέρουμε ότι μόνο ένα βασικό μέρος των λειτουργικών απαιτήσεων οδηγήθηκε τελικά σε επίπεδο υλοποίησης. Οι δευτερεύουσες απαιτήσεις παρέμειναν σε θεωρητικό στάδιο και αυτό γιατί το επίπεδο της εργασίας κρίθηκε αρκετό όταν η παρούσα διπλωματική έφτασε στο σημείο που δημιουργήθηκε και λειτούργησε ο ιστότοπος με τον χάρτη και παρουσιάστηκαν πάνω σε αυτών τα αεροσκάφη που βρισκόντουσαν εντός εμβέλειας του συστήματος. Δευτερεύουσες λειτουργικές απαιτήσεις όπως η εμφάνιση όλων των διεθνών αεροδρομίων, των στόλων των αεροπορικών εταιρειών, η δυνατότητα επιλογής αεροναυτικού χάρτη, η εξαγωγή στατιστικών στοιχείων για την εναέρια κυκλοφορία πάνω από συγκεκριμένες περιοχές και η δυνατότητα αποστολής ειδοποιήσεων σε ομάδες χρηστών που υποκινούνται από διάφορα συμβάντα δεν υλοποιήθηκαν στην παρούσα ΔΕ. Δεν κρίθηκε απαραίτητο να υλοποιηθούν γιατί στην ουσία αποτελούν πρόσθετες ιδιότητες του συστήματος που αυξάνουν μεν την λειτουργικότητά του αλλά δεν παρουσιάζουν κάποιο ιδιαίτερο ενδιαφέρον συγκριτικά με τον κορμό του συστήματος που υλοποιήθηκε. 73

75 6.3 Περαιτέρω ανάπτυξη Ο βασικός σκοπός της ΔΕ ολοκληρώθηκε με επιτυχία. Υπάρχουν ωστόσο κάποια σημεία τα οποία επιδέχονται βελτιστοποίηση και κάποιες λειτουργίες που μπορούν να υλοποιηθούν εκτός των πλαισίων της ΔΕ και αξίζει να αναφερθούμε σε αυτά. Πρώτα απ όλα το κομμάτι της διεπαφής. Η σχεδίαση μιας επιτυχημένης διεπαφής είναι μεγάλη πρόκληση και χρίζει μεγάλης προσοχής και δουλειάς. Όμως το επίκεντρο αυτής της ΔΕ ήταν η ανάπτυξη ενός συστήματος που θα εκμεταλλευόταν τις εκπομπές ads-b για να απεικονίσει την εναέρια κυκλοφορία σε έναν ιστότοπο και όχι ο σχεδιασμός των διαδραστικών χαρακτηριστικών αυτού. Ως εκ τούτου σημασία δόθηκε κυρίως στην λειτουργικότητα της εφαρμογής. Στοιχεία της διεπαφής όπως τα αισθητικά, τα γραφιστικά και ο γενικότερος σχεδιασμός του παρουσιαστικού της επιδέχονται βελτίωση. Μια λειτουργία η οποία δεν κρίθηκε αναγκαίο να υλοποιηθεί αλλά προτείνεται σίγουρα για ενδεχόμενη εμπορική χρήση του ιστότοπου είναι το λεγόμενο Parity Check. Το parity check είναι ένας έλεγχος με τον οποίο μπορούμε να εντοπίσουμε αν τα δεδομένα που λάβαμε περιέχουν κάποιο λάθος και αν αυτό ισχύει να τα επιδιορθώσουμε πριν τα επεξεργαστούμε. Κάτι τέτοιο δεν υλοποιήθηκε γιατί οι έλεγχοι που διενεργεί το λογισμικό στις τιμές που παράγει αρκούν για διαπιστώσουμε την εγκυρότητα των πληροφοριών που λαμβάνουμε. Αν κάποιο μήνυμα περιέχει λάθη που προκλήθηκαν από θόρυβο ή δημιουργήθηκαν στην πηγή ή κατά την μετάδοση τότε απλά το αγνοεί. Μια εφαρμογή εκτός ακαδημαϊκών πλαισίων όμως καλό θα ήταν να διενεργεί ένα parity check. Για να γίνει ο έλεγχος parity πρέπει να απομονώσουμε τα τελευταία 24 bits απ τα 112 του μηνύματος DF17, τα λεγόμενα parity bits και να τα περάσουμε μέσα από έναν σύνθετο πολυωνυμικό αλγόριθμο. Από αυτόν τον αλγόριθμο αν δεν υπάρχουν λάθη στα δεδομένα θα πρέπει να προκύψει κανονικά το HEXid του αεροσκάφους. Αν προκύψει κάτι διαφορετικό σημαίνει οτι τα δεδομένα που λάβαμε περιέχουν κάποιο λάθος. Μια άλλη λειτουργία που μπορεί να υλοποιηθεί είναι η τροποποίηση του λογισμικού αποκωδικοποίησης έτσι ώστε να μπορεί να λαμβάνει δεδομένα από πολλαπλούς δέκτες αντί από έναν. Κάτι τέτοιο μπορεί να επεκτείνει την κάλυψη του συστήματος σε όσες περιοχές ανά τον κόσμο τοποθετήσουμε έναν δέκτη και τον προγραμματίσουμε να στέλνει τα δεδομένα που λαμβάνει στο λογισμικό μας. Η ανάπτυξη ενός δικτύου από μεγάλο αριθμό δεκτών μπορεί θεωρητικά να επεκτείνει την κάλυψη του συστήματος από τοπική σε παγκόσμια κάλυψη. Ένα τέτοιο εγχείρημα θα επέτρεπε την παρακολούθηση και καταγραφή της παγκόσμιας εναέριας κυκλοφορίας. Αυτό με τη σειρά του θα επέτρεπε την ανάπτυξη αναρίθμητων εφαρμογών και την εξαγωγή αρκετών συμπερασμάτων. Τέλος δεδομένου της τεράστιας ανάπτυξης που γνωρίζουν αυτή την περίοδο η κινητές συσκευές θεμιτό θα ήταν η ανάπτυξη μιας mobile έκδοσης της εφαρμογής που θα είναι προσβάσιμη από κινητά τηλέφωνα και tablet. Αυτό μπορεί αν γίνει είτε με την υλοποίηση μιας έκδοσης του ιστότοπου αποκλειστικά σχεδιασμένη για φορητές 74

76 συσκευές είτε με την ξεχωριστή ανάπτυξη εφαρμογών για κάθε δημοφιλές λειτουργικό (Android/iOs κλπ). Σε κάθε περίπτωση σίγουρα αξίζει η υλοποίηση μιας mobile έκδοσης της εφαρμογής καθώς η αγορά αυτών των συσκευών ακολουθεί άκρως αύξουσα πορεία. 75

77 Παράρτημα Α. Πηγαίος κώδικας λογισμικού αποκωδικοποίησης using System; using System.Data; using System.IO.Ports; using System.Threading; using System.Text; using System.Collections.Generic; using MySql.Data; using MySql.Data.MySqlClient; public class Adsblistener static bool _continue; static SerialPort _serialport; public static void Main() string name; string message; StringComparer stringcomparer = StringComparer.OrdinalIgnoreCase; Thread readthread = new Thread(Read); // Create a new SerialPort object with default settings. _serialport = new SerialPort(); // Allow the user to set the appropriate properties. _serialport.portname = SetPortName(_serialPort.PortName); _serialport.baudrate = SetPortBaudRate(_serialPort.BaudRate); _serialport.parity = SetPortParity(_serialPort.Parity); _serialport.databits = SetPortDataBits(_serialPort.DataBits); _serialport.stopbits = SetPortStopBits(_serialPort.StopBits); _serialport.handshake = SetPortHandshake(_serialPort.Handshake); // Set the read/write timeouts _serialport.readtimeout = 1000; _serialport.writetimeout = 1000; _serialport.open(); _continue = true; readthread.start(); name = "j"; string trigger = "G+"; _serialport.writeline(string.format("<0>: 1", name, trigger)); Console.WriteLine("Type QUIT to exit"); /** while (_continue) message = Console.ReadLine(); 76

78 if (stringcomparer.equals("quit", message)) _continue = false; else _serialport.writeline(string.format("<0>: 1", name, message)); readthread.join(); _serialport.close();**/ public static void Read() byte[] databuffer = new byte[16]; byte[] validmessage = new byte[14]; //string path t\documents\visual Studio 2010\Projects\proti1dok\keimeno.txt"; int k; int bytepos = 0; int found = 0; string minimahex = null; //string timeformat = "ddd d MMM yyyy HH:mm:ss "; //string sometime = "Fri 18 Oct :23:23"; // DateTime nulldate = DateTime.Parse(sometime); //pinakas to ena update to allo arxeio var pinakasoddeven = new Dictionary<string, Zevgi>(); var pinakasaircrafts = new Dictionary<string, Aircraft>(); string connstr = "server=localhost;user=root;database=test;port=3306;password=syros11;"; double homelat = ; double homelon = ; uint isotitanlcountingnai = 0; uint isotitanlcountingoxi = 0; uint velocitycount = 0; uint idcount = 0; uint pinakasclearcounting = 0; uint tisb = 0; uint otherdfcount = 0; uint airborncountii = 0; uint surfccounter = 0; uint wrongtypecode = 0; uint altpulsesneededcounter = 0; uint Messagesdf17 = 0; uint magneticcounter = 0; uint mapclearcounter = 0; uint df0=0; uint df4=0; uint df5=0; uint df11=0; uint df16=0; uint df19=0; uint df20=0; uint df21=0; uint df22=0; uint df24=0; uint wrongdf = 0; 77

79 DateTime Keepfresh = DateTime.Parse("Sun 18 Sep :23:23"); while (_continue) bool clean = false; //clean old position from map table if (Keepfresh == DateTime.Parse("Sun 18 Sep :23:23")) Keepfresh = DateTime.Now; if (DateTime.Now.Subtract(Keepfresh).TotalMinutes > 1) Keepfresh = DateTime.Now; clean = true; if (clean == true) MySqlConnection conn = new MySqlConnection(connStr); try Console.WriteLine("MAP CLEAN UP..."); conn.open(); // Perform database operations MySqlCommand cmdclear = new MySqlCommand("DELETE FROM mapdisplay WHERE sfragidaoras < DATE_SUB(now(), INTERVAL 5 MINUTE)", conn); cmdclear.executenonquery(); mapclearcounter++; try catch (Exception ex) Console.WriteLine(ex.ToString()); clean = false; conn.close(); //TOLERANCE if (found == 0) if (bytepos == 0) for (k = 0; k < 16; k++) _serialport.read(databuffer, k, 1); // Console.Write(dataBuffer[k] + "\n"); if (databuffer[bytepos] == 255) found = 1; else bytepos = (bytepos + 1) % 16; else //found=1 if (bytepos!= 0) for (k = 0; k < 16 - bytepos; k++) databuffer[k] = databuffer[k + bytepos]; 78

80 for (k = 16 - bytepos; k < 16; k++) _serialport.read(databuffer, k, 1); // Console.Write(dataBuffer[k] + "\n"); if (databuffer[15] == 255) //an vroume end flag for (k = 0; k < 14; k++) validmessage[k] = databuffer[k + 1]; for (k = 0; k < 14; k++) //olokliro minima se hex minimahex = (minimahex + validmessage[k].tostring("x2")); databuffer[0] = 255; for (k = 1; k < 16; k++) _serialport.read(databuffer, k, 1); string bindfca = Convert.ToString(Convert.ToInt32(minimaHEX.Substring(0, 2), 16), 2); //to proto byte tou minimatos to kanoume binary while (bindfca.length!= 8) bindfca="0"+bindfca ; //int bindf = Convert.ToInt32(binDFCA.Substring(0,5)); string bindf = bindfca.substring(0, 5); if (bindf=="10001") //DF17 // Console.Write("Lavame DF17" + "\n"); Messagesdf17++; string hexid = minimahex.substring(2, 6); Console.Write("\nhex: " + hexid + "\n"); string typecodekaistatusbinary = Convert.ToString(Convert.ToInt32(minimaHEX.Substring(8, 2), 16), 2); while (typecodekaistatusbinary.length!= 8) typecodekaistatusbinary = "0" + typecodekaistatusbinary; int TypeCodeDec = Convert.ToInt32(typeCodekaiStatusbinary.Substring(0, 5), 2); //to type code to kanoume apo binary decadiko string olotomebinary = null; foreach (char c in minimahex.substring(8,14)) //kanoume ta 56bits tou ME diadiko string voithitiko = null; voithitiko = Convert.ToString(Convert.ToInt32(c.ToString(), 16), 2); while (voithitiko.length!= 4) voithitiko = "0" + voithitiko; //diorthonoume ta leading zeros olotomebinary = olotomebinary + voithitiko; ME // Console.Write(olotoMEbinary +"\n"); //Console.Write(olotoMEbinary.Length+ "\n"); //na chekaroume an einai 56 to 79

81 TypeCodeDec == 4) if (TypeCodeDec == 0) Console.Write("Zero TypeCode \n"); else if (TypeCodeDec == 1 TypeCodeDec == 2 TypeCodeDec == 3 Console.Write("ID!!!! \n"); string bincharacter1 = olotomebinary.substring(8, 6); string character1 = idme(bincharacter1); string bincharacter2 = olotomebinary.substring(14, 6); string character2 = idme(bincharacter2); string bincharacter3 = olotomebinary.substring(20, 6); string character3 = idme(bincharacter3); string bincharacter4 = olotomebinary.substring(26, 6); string character4 = idme(bincharacter4); string bincharacter5 = olotomebinary.substring(32, 6); string character5 = idme(bincharacter5); string bincharacter6 = olotomebinary.substring(38, 6); string character6 = idme(bincharacter6); string bincharacter7 = olotomebinary.substring(44, 6); string character7 = idme(bincharacter7); string bincharacter8 = olotomebinary.substring(50, 6); string character8 = idme(bincharacter8); string flightid = null; if (character1!= "^" && character2!= "^" && character3!= "^" && character4!= "^" && character5!= "^" && character6!= "^" && character7!= "^" && character8!= "^") flightid = character1 + character2 + character3 + character4 + character5 + character6 + character7 + character8; Console.Write(flightID + "\n"); idcount++; if (pinakasaircrafts.containskey(hexid)) Aircraft that = pinakasaircrafts[hexid]; that.flight = flightid; that.flightidstamp = DateTime.Now; else pinakasaircrafts.add(hexid, new Aircraft(hexid, flightid, 88888, 88888, 88888, 88888, 88888, 88888, 4, minimahex)); MySqlConnection conn = new MySqlConnection(connStr); try Console.WriteLine("Connecting to MySQL ID..."); conn.open(); // Perform database operations MySqlCommand cmd = new MySqlCommand("INSERT INTO dokimastikospinakas2 (HexID,FlightNo,FRAME) VALUES (@r,@f,@u)", conn); cmd.parameters.addwithvalue("@r", hexid); cmd.parameters.addwithvalue("@f", flightid); cmd.parameters.addwithvalue("@u", minimahex); cmd.executenonquery(); catch (Exception ex) 80

82 Console.WriteLine(ex.ToString()); conn.close(); else if (TypeCodeDec == 5 TypeCodeDec == 6 TypeCodeDec == 7 TypeCodeDec == 8) surfccounter++; else if (TypeCodeDec == 9 TypeCodeDec == 10 TypeCodeDec == 11 TypeCodeDec == 12 TypeCodeDec == 13 TypeCodeDec == 14 TypeCodeDec == 15 TypeCodeDec == 16 TypeCodeDec == 17 TypeCodeDec == 18 TypeCodeDec == 20 TypeCodeDec == 21 TypeCodeDec == 22) //Console.Write("Airborne pos \n"); double alt = 0; string altbin = olotomebinary.substring(8, 7) + olotomebinary.substring(16, 4); string qbit = olotomebinary.substring(15, 1); if (qbit == "1") double altdec = Convert.ToInt32(altbin, 2); alt = (altdec * 25) ; Console.Write(alt + "Feet \n"); else //pulse positions pinakas selida 105 annex altpulsesneededcounter++; //CPR : 2); 17), 2); string cproddevenformat = olotomebinary.substring(21, 1); int encodedlatitudedec = Convert.ToInt32(olotoMEbinary.Substring(22, 17), int encodedlongtitudedec = Convert.ToInt32(olotoMEbinary.Substring(39, double finallatitude = 0; double finallongtitude = 0; if (cproddevenformat == "1")//irthe odd if (pinakasoddeven.containskey(hexid))//yparxei idi tetoio hex? Zevgi it = pinakasoddeven[hexid]; if (it.oddpartlat!= 0)//yparxei idi ena odd ara overwrite DONE** it.oddpartlat = encodedlatitudedec; it.oddpartlon = encodedlongtitudedec; it.oddreceptiontimestamp = DateTime.Now; else if (it.evenpartlat!= 0) //yparxei idi ena even TimeSpan elapsed = DateTime.Now.Subtract(it.evenreceptiontimestamp); 81

83 it.oddpartlat)) / ) + 0.5); / )); )); it.oddreceptiontimestamp) //even fresko (NLrlat0-1)) - (it.oddpartlon * NLrlat0)) / ) + 0.5); (it.oddpartlon / )); finallongtitude); double secondsago = elapsed.totalseconds; if (secondsago <= 16) //if einai fresko?...tolerance!!! //store odd + decoding + clear to even it.oddpartlat = encodedlatitudedec; it.oddpartlon = encodedlongtitudedec; it.oddreceptiontimestamp = DateTime.Now; //decode double dlat0 = 6; double dlat1 = ; double j = Math.Floor((((59 * it.evenpartlat) - (60 * double rlat0 = dlat0 * ((modulus(j,60)) + (it.evenpartlat double rlat1 = dlat1 * ((modulus(j,59)) + (it.oddpartlat / if (rlat1 >= 270 && rlat1 <= 360) rlat1 = rlat1-360; double NLrlat0 = nl(rlat0); double NLrlat1 = nl(rlat1); if (NLrlat0 == NLrlat1) isotitanlcountingnai++; if (it.evenreceptiontimestamp >= //breakpoint lathos? else //odd fresko this should be true in all cases double n1 = Math.Max((NLrlat1-1), 1); double dlon1 = 360 / n1; double m = Math.Floor((((it.evenpartLon * double rlon1 = dlon1 * ((modulus(m, n1)) + finallatitude = rlat1; finallongtitude = rlon1; Console.WriteLine(finalLatitude + " " + else isotitanlcountingoxi++; odd kai clear to even DONE*** it.evenpartlat = 0; //clearing else //einai palio to even it.oddpartlat = encodedlatitudedec; it.oddpartlon = encodedlongtitudedec; it.oddreceptiontimestamp = DateTime.Now;//store to it.evenpartlat = 0; 82

84 else //den yparxei tetoio hex ston pinaka pinakasoddeven.add(hexid, new Zevgi(cproddevenformat, encodedlatitudedec, encodedlongtitudedec)); //DONE**** else //irthe even if (pinakasoddeven.containskey(hexid))//yparxei idi tetoio hex? Zevgi it = pinakasoddeven[hexid]; if (it.evenpartlat!= 0)//yparxei idi ena even ara overwrite DONE it.evenpartlat = encodedlatitudedec; it.evenpartlon = encodedlongtitudedec; it.evenreceptiontimestamp = DateTime.Now; else if (it.oddpartlat!= 0) //yparxei idi ena odd TimeSpan elapsed = DateTime.Now.Subtract(it.oddreceptiontimestamp); double secondsago = elapsed.totalseconds; if (secondsago <= 16) //if einai fresko?... tolerance!!! //store even + decoding + clear to odd it.evenpartlat = encodedlatitudedec; it.evenpartlon = encodedlongtitudedec; it.evenreceptiontimestamp = DateTime.Now; //decode plz double dlat0 = 6; double dlat1 = ; double j = Math.Floor((((59 * it.evenpartlat) - (60 * it.oddpartlat)) / ) + 0.5); double rlat0 = dlat0 * ((modulus(j,60)) + (it.evenpartlat / )); if (rlat0 >= 270 && rlat0 <= 360) rlat0 = rlat0-360; double rlat1 = dlat1 * ((modulus(j,59)) + (it.oddpartlat / )); double NLrlat0 = nl(rlat0); double NLrlat1 = nl(rlat1); if (NLrlat0 == NLrlat1) isotitanlcountingnai++; if (it.evenreceptiontimestamp >= it.oddreceptiontimestamp) //even fresko this should be true in all cases double n0 = Math.Max(NLrlat0, 1); double dlon0 = 360 / n0; double m = Math.Floor((((it.evenpartLon * (NLrlat0-1)) - (it.oddpartlon * NLrlat0)) / ) + 0.5); double rlon0 = dlon0 * ((modulus(m,n0)) + (it.evenpartlon / )); finallatitude = rlat0; finallongtitude = rlon0; 83

85 finallongtitude); odd kai clear to even DONE Console.WriteLine(finalLatitude + " " + else //odd fresko //breakpoint error? else isotitanlcountingoxi++; it.oddpartlat = 0; //clearing else //einai palio to odd it.evenpartlat = encodedlatitudedec; it.evenpartlon = encodedlongtitudedec; it.evenreceptiontimestamp = DateTime.Now;//store to it.oddpartlat = 0; else //den yparxei tetoio hex ston pinaka pinakasoddeven.add(hexid, new Zevgi(cproddevenformat, encodedlatitudedec, encodedlongtitudedec)); if (finallatitude!= 0 && finallongtitude!= 0 && distanced(homelat, homelon, finallatitude, finallongtitude) < 500 && alt > 0 && alt < 50000) //TOLERANCE enter parameters!!! if (pinakasaircrafts.containskey(hexid)) Aircraft that=pinakasaircrafts[hexid]; that.id=hexid; that.lat=finallatitude; that.lon=finallongtitude; that.alt=alt; that.landed=false; TimeSpan velocityelapsed = DateTime.Now.Subtract(that.velocitystamp); //deleting old values double velocityminutesago = velocityelapsed.totalminutes; if (velocityminutesago >5) //ATTENTION NEEDED TOLERANCE that.groundspeed = 0; TimeSpan idelapsed = DateTime.Now.Subtract(that.flightidstamp); double idminutesago = idelapsed.totalminutes; if (idminutesago > 30) that.flight = "null"; && that.groundspeed!= ) if (that.lat!= 0 && that.lat!= )//&& that.groundspeed!= 0 84

86 double dist = distanced(homelat, homelon, that.lat, that.lon); int helperlanded = 0; int icon= seticon(that.course); MySqlConnection conn = new MySqlConnection(connStr); try Console.WriteLine("Connecting to MySQL Airbone..."); conn.open(); MySqlCommand cmd = new MySqlCommand("INSERT INTO LogDB (HexID,FlightNo,Lat,Lon,Alt,Course,Groundspeed,Verticalrate,Distance,Landed,FRAME) VALUES (@r,@c,@f,@t,@w,@q,@u,@e,@y,@b,@k)", conn); cmd.parameters.addwithvalue("@r", hexid); cmd.parameters.addwithvalue("@c", that.flight); cmd.parameters.addwithvalue("@f", that.lat); cmd.parameters.addwithvalue("@t", that.lon); cmd.parameters.addwithvalue("@w", that.alt); cmd.parameters.addwithvalue("@q", that.course); cmd.parameters.addwithvalue("@u", that.groundspeed); cmd.parameters.addwithvalue("@e", that.verticalrate); cmd.parameters.addwithvalue("@y", dist); cmd.parameters.addwithvalue("@b", helperlanded); cmd.parameters.addwithvalue("@k", minimahex); cmd.executenonquery(); MySqlCommand cmd2 = new MySqlCommand("INSERT INTO mapdisplay (HexID,FlightNo,Lat,Lon,Alt,Course,Groundspeed,Verticalrate,Distance,Landed,icon,sfragidaoras) VALUES (@r,@c,@f,@t,@w,@q,@u,@e,@y,@b,@a,@k) ON DUPLICATE KEY UPDATE FlightNo Lat=@f, Lon=@t,Alt=@w,Course=@q,Groundspeed=@u,Verticalrate=@e,Distance=@y,Landed=@b, sfragidaoras=@k", conn); cmd2.parameters.addwithvalue("@r", hexid); cmd2.parameters.addwithvalue("@c", that.flight); cmd2.parameters.addwithvalue("@f", that.lat); cmd2.parameters.addwithvalue("@t", that.lon); cmd2.parameters.addwithvalue("@w", that.alt); cmd2.parameters.addwithvalue("@q", that.course); cmd2.parameters.addwithvalue("@u", that.groundspeed); cmd2.parameters.addwithvalue("@e", that.verticalrate); cmd2.parameters.addwithvalue("@y", dist); cmd2.parameters.addwithvalue("@b", helperlanded); cmd2.parameters.addwithvalue("@a", icon); cmd2.parameters.addwithvalue("@k", DateTime.Now); cmd2.executenonquery(); catch (Exception ex) Console.WriteLine(ex.ToString()); conn.close(); else pinakasaircrafts.add(hexid, new Aircraft(hexid,"88888",finalLatitude,finalLongtitude,alt,88888,88888,88888,1,minimaHEX)); 85

87 1=south 1=west 10), 2)) - 1; 10), 2)) - 1); 10), 2)) - 1; 10), 2)) - 1); else if (TypeCodeDec == 19) //Console.Write("Velocity \n"); string subtype = olotomebinary.substring(5, 3); switch (subtype) case "001": //when velocity over ground is available Console.WriteLine("~~~subtype1"); string directionns = olotomebinary.substring(24, 1); //0=North string directionew = olotomebinary.substring(13, 1); //0=east double velocityew = 0; double velocityns = 0; if (directionew=="0") velocityew = (Convert.ToInt32(olotoMEbinary.Substring(14, else velocityew = -((Convert.ToInt32(olotoMEbinary.Substring(14, if (directionns=="0") velocityns = (Convert.ToInt32(olotoMEbinary.Substring(25, else velocityns = -((Convert.ToInt32(olotoMEbinary.Substring(25, int velocityoverground = Convert.ToInt32(Math.Floor(Math.Sqrt(Math.Pow(velocityNS, 2) + Math.Pow(velocityEW, 2)))); double angleth = Math.Asin(velocityEW/velocityoverground)*180/Math.PI; double course = 0; if (directionns == "0" && directionew == "0") course =Math.Floor(angleth); if (directionns == "0" && directionew == "1") course = Math.Floor(360 + angleth); if (directionns == "1" && directionew == "1") course =Math.Floor(180 + angleth); if (directionns == "1" && directionew == "0") course = Math.Floor(180 - angleth); 1=down int verticalrate = 0; if (olotomebinary.substring(37, 9)!= " ") string upordown = olotomebinary.substring(36, 1); //0=up if (upordown == "0") verticalrate = ((Convert.ToInt32(olotoMEbinary.Substring(37, 9), 2)) * 64) - 64; 86

88 else verticalrate = -(((Convert.ToInt32(olotoMEbinary.Substring(37, 9), 2)) * 64) - 64); if (velocityoverground < 500 && Math.Abs(verticalrate)<5000 ) //TOLERANCE!!!!!!!!!! if (pinakasaircrafts.containskey(hexid)) Aircraft that = pinakasaircrafts[hexid]; that.id = hexid; that.course = course; that.groundspeed = velocityoverground; that.verticalrate = verticalrate; that.velocitystamp = DateTime.Now; else pinakasaircrafts.add(hexid, new Aircraft(hexid,"88888",88888, 88888, 88888,course,velocityoverground,verticalrate,2,minimaHEX)); velocitycount++; verticalrate = 0; 2)) - 1; break; case "010": Console.WriteLine("~~~Supersonic subtype2"); break; case "011": //when velocity over ground is not available Console.WriteLine("~~~subtype3"); int airspeed = (Convert.ToInt32(olotoMEbinary.Substring(25, 10), Console.WriteLine(airspeed + " knots "); if (olotomebinary.substring(37, 9)!= " ") string upordown = olotomebinary.substring(36, 1); 1=down verticalrate = 0; //NEEDS SQL CONNECTION!!!!! if (upordown == "0") verticalrate = ((Convert.ToInt32(olotoMEbinary.Substring(37, 9), 2)) * 64) - 64; else verticalrate = -(((Convert.ToInt32(olotoMEbinary.Substring(37, 9), 2)) * 64) - 64); //0=up if (olotomebinary.substring(13, 1)!= "0") int magneticheading = ((Convert.ToInt32(olotoMEbinary.Substring(14, 10), 2)) * 360) / 1024; 87

89 magneticcounter++; break; case "100": Console.WriteLine("~~~Supersonic subtype4"); break; default: Console.WriteLine("velocity error subtype"); break; else if (TypeCodeDec == 28) Console.Write("E.S. aircraft emergency priority status \n"); else if (TypeCodeDec == 31) Console.Write("Aircraft operational status \n"); else if (TypeCodeDec == 23 TypeCodeDec == 24 TypeCodeDec == 25 TypeCodeDec == 26 TypeCodeDec == 27 TypeCodeDec == 29 TypeCodeDec == 30) Console.Write("RESERVED \n"); else wrongtypecode++; Console.Write("other type code \n"); //Console.Write("type code: if (bindf == "10010") tisb++; Console.Write("tis-b"); if (bindf == "00000") df0++; Console.Write("*"); if (bindf == "00100") df4++; Console.Write("*"); if (bindf == "00101") df5++; Console.Write("*"); if (bindf == "01011") df11++; Console.Write("*"); if (bindf == "10000") df16++; Console.Write("*"); if (bindf == "10011") df19++; " + TypeCodeDec +"\n\n"); 88

90 Console.Write("*"); if (bindf == "10100") df20++; Console.Write("*"); if (bindf == "10101") df21++; Console.Write("*"); if (bindf == "10110") df22++; Console.Write("*"); if (bindf == "11000") df24++; Console.Write("*"); else Console.Write("wrongdf"); wrongdf++; //other than df17 minimahex = null; found = 1; bytepos = 0; else // an den vroume endflag bytepos = 1; found = 0; if (pinakasoddeven.count == 10000) pinakasoddeven.clear(); pinakasclearcounting++; if (pinakasaircrafts.count == 10000) pinakasaircrafts.clear(); catch (TimeoutException) 89

91 public static double distanced(double lata, double lona, double latb, double lonb) double R = 6371; double dlat = (latb - lata) * Math.PI / 180; double dlon = (lonb - lona) * Math.PI / 180; lata = lata * Math.PI / 180; latb = lata * Math.PI / 180; double a = Math.Sin(dlat / 2) * Math.Sin(dlat / 2) + Math.Sin(dlon / 2) * Math.Sin(dlon / 2) * Math.Cos(lata) * Math.Cos(latb); double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a)); double apostasi = R * c; return apostasi; public static double nl(double rlati) double nllati = 0; if (rlati < ) nllati = 59; else if (rlati < ) nllati = 58; else if (rlati < ) nllati = 57; else if (rlati < ) nllati = 56; else if (rlati < ) nllati = 55; else if (rlati < ) nllati = 54; else if (rlati < ) nllati = 53; else if (rlati < ) nllati = 52; else if (rlati < ) nllati = 51; else if (rlati < ) nllati = 50; else if (rlati < ) nllati = 49; else if (rlati < ) nllati = 48; else if (rlati < ) nllati = 47; else if (rlati < ) nllati = 46; else if (rlati < ) nllati = 45; else if (rlati < ) nllati = 44; else if (rlati < ) nllati = 43; else if (rlati < ) nllati = 42; else if (rlati < ) nllati = 41; 90

92 else if (rlati < ) nllati = 40; else if (rlati < ) nllati = 39; else if (rlati < ) nllati = 38; else if (rlati < ) nllati = 37; else if (rlati < ) nllati = 36; else if (rlati < ) nllati = 35; else if (rlati < ) nllati = 34; else if (rlati < ) nllati = 33; else if (rlati < ) nllati = 32; else if (rlati < ) nllati = 31; else if (rlati < ) nllati = 30; else if (rlati < ) nllati = 29; else if (rlati < ) nllati = 28; else if (rlati < ) nllati = 27; else if (rlati < ) nllati = 26; else if (rlati < ) nllati = 25; else if (rlati < ) nllati = 24; else if (rlati < ) nllati = 23; else if (rlati < ) nllati = 22; else if (rlati < ) nllati = 21; else if (rlati < ) nllati = 20; else if (rlati < ) nllati = 19; else if (rlati < ) nllati = 18; else if (rlati < ) nllati = 17; else if (rlati < ) nllati = 16; else if (rlati < ) nllati = 15; else if (rlati < ) nllati = 14; else if (rlati < ) nllati = 13; else if (rlati < ) nllati = 12; 91

93 else if (rlati < ) nllati = 11; else if (rlati < ) nllati = 10; else if (rlati < ) nllati = 9; else if (rlati < ) nllati = 8; else if (rlati < ) nllati = 7; else if (rlati < ) nllati = 6; else if (rlati < ) nllati = 5; else if (rlati < ) nllati = 4; else if (rlati < ) nllati = 3; else if (rlati < 87) nllati = 2; else nllati = 1; return nllati; public static double modulus(double x, double y) double mod=0; if (x>=0) mod=x-(y*(math.floor(x/y))); else mod=(x+360)%y; return mod; public static string idme(string characterbin) string character = null; switch (characterbin) case "000001": character = "A"; break; case "000010": character = "B"; break; case "000011": character = "C"; break; case "000100": character = "D"; break; case "000101": character = "E"; break; case " ": character = "F"; break; case "000111": character = "G"; 92

94 break; case "001000": character = "H"; break; case "001001": character = "I"; break; case "001010": character = "J"; break; case "001011": character = "K"; break; case "001100": character = "L"; break; case "001101": character = "M"; break; case "001110": character = "N"; break; case "001111": character = "O"; break; case "010000": character = "P"; break; case "010001": character = "Q"; break; case "010010": character = "R"; break; case "010011": character = "S"; break; case "010100": character = "T"; break; case "010101": character = "U"; break; case "010110": character = "V"; break; case "010111": character = "W"; break; case "011000": character = "X"; break; case "011001": character = "Y"; break; case "011010": character = "Z"; break; 93

95 case "100000": character = " "; break; case "110000": character = "0"; break; case "110001": character = "1"; break; case "110010": character = "2"; break; case "110011": character = "3"; break; case "110100": character = "4"; break; case "110101": character = "5"; break; case "110110": character = "6"; break; case "110111": character = "7"; break; case "111000": character = "8"; break; case "111001": character = "9"; break; default: character = "^"; break; return character; public static int seticon(double degrees) int icon=0; if (degrees > degrees <= 11.25) icon = 1; if (degrees > && degrees <= 33.75) icon = 2; if (degrees > && degrees <= 56.25) icon = 3; if (degrees > && degrees <= 78.75) icon = 4; if (degrees > && degrees <= ) icon =5; if (degrees > && degrees <= ) icon = 6; if (degrees > && degrees <= ) icon = 7; if (degrees > && degrees <= ) 94

96 icon = 8; if (degrees > && degrees <= ) icon = 9; if (degrees > && degrees <= ) icon = 10; if (degrees > && degrees <= ) icon = 11; if (degrees > && degrees <= ) icon = 12; if (degrees > && degrees <= ) icon = 13; if (degrees > && degrees <= ) icon = 14; if (degrees > && degrees <= ) icon = 15; if (degrees > && degrees <= ) icon = 16; return icon; public static string SetPortName(string defaultportname) string portname; portname = "COM10"; return portname; public static int SetPortBaudRate(int defaultportbaudrate) string baudrate; baudrate = "115200"; return int.parse(baudrate); public static Parity SetPortParity(Parity defaultportparity) string parity; parity = "None"; return (Parity)Enum.Parse(typeof(Parity), parity); public static int SetPortDataBits(int defaultportdatabits) string databits; databits = "8"; return int.parse(databits); 95

97 public static StopBits SetPortStopBits(StopBits defaultportstopbits) string stopbits; stopbits = "One"; return (StopBits)Enum.Parse(typeof(StopBits), stopbits); public static Handshake SetPortHandshake(Handshake defaultporthandshake) string handshake; handshake = "None"; return (Handshake)Enum.Parse(typeof(Handshake), handshake); public class Zevgi public double evenpartlat; public double evenpartlon; public double oddpartlat; public double oddpartlon; public DateTime evenreceptiontimestamp; public DateTime oddreceptiontimestamp; public Zevgi(string cproddevenformat,int encodedlatitudedec, int encodedlongtitudedec) if (cproddevenformat == "1") oddpartlat = encodedlatitudedec; oddpartlon = encodedlongtitudedec; oddreceptiontimestamp = DateTime.Now; else evenpartlat = encodedlatitudedec; evenpartlon = encodedlongtitudedec; evenreceptiontimestamp = DateTime.Now; public class Aircraft public string ID; public string Flight = "null"; public double Lat; public double Lon; public double Alt; public double Course; 96

98 public double Groundspeed; public double Verticalrate; public bool Landed; public string Frame; public DateTime flightidstamp; public DateTime velocitystamp; public Aircraft(string hexid,string flight,double finallatitude,double finallongtitude,double finalaltitude,double finalcourse,double finalspeed,double finalverticalrate,int typecoded,string frame) if (typecoded == 1) //1=airborne 2=velocity 3=surface 4=flightNo ID = hexid; Lat = finallatitude; Lon = finallongtitude; Alt = finalaltitude; Landed = false; if (typecoded == 2) ID = hexid; Course = finalcourse; Groundspeed = finalspeed; Verticalrate = finalverticalrate; Frame = frame; velocitystamp = DateTime.Now; if (typecoded == 3) Landed = true; if (typecoded == 4) ID = hexid; Flight = flight; flightidstamp = DateTime.Now; 97

99 Β. Php script για την παραγωγή του αρχείου Xml <?php //include("phpsqlajax_dbinfo.php"); function parsetoxml($htmlstr) $xmlstr=str_replace('<','<',$htmlstr); $xmlstr=str_replace('>','>',$xmlstr); $xmlstr=str_replace('"','"',$xmlstr); $xmlstr=str_replace("'",'&#39;',$xmlstr); $xmlstr=str_replace("&",'&',$xmlstr); return $xmlstr; // Opens a connection to a MySQL server $connection=mysql_connect ("localhost","root", "syros11"); if (!$connection) die('not connected : '. mysql_error()); // Set the active MySQL database $db_selected = mysql_select_db("test", $connection); if (!$db_selected) die ('Can\'t use db : '. mysql_error()); // Select all the rows in the markers table $query = "SELECT * FROM mapdisplay WHERE 1"; $result = mysql_query($query); if (!$result) die('invalid query: '. mysql_error()); header("content-type: text/xml"); // Start XML file, echo parent node echo '<markers>'; // Iterate through the rows, printing XML nodes for each while ($row // ADD TO XML DOCUMENT NODE echo '<marker '; echo 'hexid="'. parsetoxml($row['hexid']). '" '; echo 'flightno="'. parsetoxml($row['flightno']). '" '; echo 'lat="'. $row['lat']. '" '; echo 'lng="'. $row['lon']. '" '; echo 'alt="'. $row['alt']. '" '; echo 'course="'. $row['course']. '" '; echo 'groundspeed="'. $row['groundspeed']. '" '; echo 'verticalrate="'. $row['verticalrate']. '" '; echo 'distance="'. $row['distance']. '" '; echo 'status="'. $row['landed']. '" '; echo 'icon="'. $row['icon']. '" '; echo 'timestamp="'. $row['sfragidaoras']. '" '; echo '/>'; // End XML file echo '</markers>';?> 98

100 Γ. Κώδικας Html-Javascript για την δημιουργία του χάρτη <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " <html xmlns=" <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>sky Traffic</title> <script type="text/javascript" src=" cript> <script type="text/javascript"> //<![CDATA[ var map; var markersarray = []; var customicons = ic1: icon: ' ic2: icon: ' ic3: icon: ' ic4: icon: ' ic5: icon: ' ic6: icon: ' ic7: icon: ' ic8: icon: ' ic9: icon: ' ic10: icon: ' ic11: icon: ' ic12: icon: ' ic13: icon: ' ic114: icon: ' ic15: icon: ' ic16: icon: ' ic17: icon: ' ; function load() var d = new Date(); var timenow = d.gettime(); 99

101 map = new google.maps.map(document.getelementbyid("map"), center: new google.maps.latlng( , ), zoom: 9, maptypeid: 'roadmap' ); var infowindow = new google.maps.infowindow; // Change this depending on the name of your PHP file downloadurl("phpsqlajax_genxml2.php", function(data) var xml = data.responsexml; var markers = xml.documentelement.getelementsbytagname("marker"); for (var i = 0; i < markers.length; i++) var hexid = markers[i].getattribute("hexid"); var flightno = markers[i].getattribute("flightno"); var status = markers[i].getattribute("status"); var point = new google.maps.latlng(parsefloat(markers[i].getattribute("lat")), parsefloat(markers[i].getattribute("lng"))); var alt = markers[i].getattribute("alt"); var course = markers[i].getattribute("course"); var groundspeed = markers[i].getattribute("groundspeed"); var verticalrate = markers[i].getattribute("verticalrate"); var distance = markers[i].getattribute("distance"); var iconspec = markers[i].getattribute("icon"); var timestamp = markers[i].getattribute("timestamp"); var recept=date.parse(timestamp); var dif =(timenow-recept)/60000; var html = "<b> HexID: </b>" + hexid + " <br/> <b>flight: </b>" + flightno + " <br/> <b>altitude: </b>" + alt +" feet"+ " <br/> <b>course:</b> " + course + " <br/><b> Groundspeed:</b> " + groundspeed + " knots"+ "<br/> <b>verticalrate:</b> " + verticalrate + " feet/min"+" <br/> <b>distance from receiver:</b> " + distance + "km" + " <br/><b> Reception timestamp: </b>" + timestamp + "<br/>"+ Math.round(dif)+" <b>minutes ago</b>"; var icones="ic"+iconspec; var icon = customicons[icones] ; var marker = new google.maps.marker( map: map, position: point, icon: new google.maps.markerimage( icon.icon, undefined, undefined, undefined, new google.maps.size(30, 30)), ); bindinfowindow(marker, map, infowindow, html); markersarray.push(marker); google.maps.event.addlistener(marker,"click",function()); settimeout(clearoverlays,30000); ); function bindinfowindow(marker, map, infowindow, html) google.maps.event.addlistener(marker, 'click', function() infowindow.setcontent(html); infowindow.open(map, marker); ); function downloadurl(url, callback) var request = window.activexobject? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest; 100

102 request.onreadystatechange = function() if (request.readystate == 4) request.onreadystatechange = donothing; callback(request, request.status); ; request.open('get', url, true); request.send(null); function donothing() function clearoverlays() for (var i = 0; i < markersarray.length; i++ ) //markersarray[i].setmap(null); markersarray = []; load(); //]]> </script> </head> <body onload="load()" onunload="gunload()"> <div id="container" style="width:100%"> <div id="header" style="background-color:#ffa500;"> <h1 style="margin-bottom:1;">sky Traffic Live Test3 -- ONLINE</h1></div> <div id="menu" style="background-color:#fff;height:800px;width:10%;float:left;"> <b>map Controls</b><br /> HTML<br /> CSS<br /> JavaScript<br/> <a href="/a1/q.php">table</a><br /> </div> <div id="map" style="width: 90%; height: 800px;float:right;"> Content goes here</div> <div id="footer" style="background-color:#ffa500;clear:both;text-align:center;"> dpsd05010 </div> </div> <div id=></div> <meta http-equiv="refresh" content="120" > </body> </html> 101

103 Δ. Ενδεικτικός πίνακας με περιεχόμενο απ την ΒΔ 102

ΕπισκόπησητουNextGen. Τάσος Νικολέρης, U.C. Berkeley Δημήτριος Τσαμπούλας, Ε.Μ.Π.

ΕπισκόπησητουNextGen. Τάσος Νικολέρης, U.C. Berkeley Δημήτριος Τσαμπούλας, Ε.Μ.Π. ΕπισκόπησητουNextGen Τάσος Νικολέρης, U.C. Berkeley Δημήτριος Τσαμπούλας, Ε.Μ.Π. Δομήτηςπαρουσίασης NextGen και βασικές λειτουργίες Τεχνολογικός εξοπλισμός Οικονομικά κίνητρα 2 ΤοΣύστημαΕναέριαςΚυκλοφορίας

Διαβάστε περισσότερα

MarineTraffic Έρευνα & Εφαρμογές. Δημήτρης Λέκκας, Πανεπιστήμιο Αιγαίου

MarineTraffic Έρευνα & Εφαρμογές. Δημήτρης Λέκκας, Πανεπιστήμιο Αιγαίου MarineTraffic Έρευνα & Εφαρμογές Δημήτρης Λέκκας, Πανεπιστήμιο Αιγαίου 2 Συλλογή δεδομένων κυρίως με τη βοήθεια της Διαδικτυακής Κοινότητας 3 Automatic Identification System (AIS): Όλα τα πλοία ολικής

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ 2.1 Εισαγωγή Η μέθοδος που θα χρησιμοποιηθεί για να προσομοιωθεί ένα σύστημα έχει άμεση σχέση με το μοντέλο που δημιουργήθηκε για το σύστημα. Αυτό ισχύει και

Διαβάστε περισσότερα

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών Η LINK Technologies Α.Ε. ιδρύθηκε το 2002 με στόχο να καταστεί πυρήνας καινοτομικών λύσεων Τηλεματικής αναβαθμίζοντας καθημερινά

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Διαχείριση έργων. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαχείριση έργων. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαχείριση έργων Στόχοι Ερμηνεία των κύριων εργασιών ενός διευθυντή έργου λογισμικού Παρουσίαση της διαχείρισης έργων λογισμικού και περιγραφή των χαρακτηριστικών που τη διακρίνουν Εξέταση του σχεδιασμού

Διαβάστε περισσότερα

Σχεδιαστικά Προγράμματα Επίπλου

Σχεδιαστικά Προγράμματα Επίπλου Σχεδιαστικά Προγράμματα Επίπλου Καθηγήτρια ΦΕΡΦΥΡΗ ΣΩΤΗΡΙΑ Τμήμα ΣΧΕΔΙΑΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΞΥΛΟΥ - ΕΠΙΠΛΟΥ Σχεδιαστικά Προγράμματα Επίπλου Η σχεδίαση με τον παραδοσιακό τρόπο απαιτεί αυξημένο χρόνο, ενώ

Διαβάστε περισσότερα

ΕΠΙΤΡΟΠΗ ΤΩΝ ΕΥΡΩΠΑΪΚΩΝ ΚΟΙΝΟΤΗΤΩΝ. Σχέδιο. ΚΑΝΟΝΙΣΜΟΥ (ΕΕ) αριθ.../2010 ΤΗΣ ΕΠΙΤΡΟΠΗΣ

ΕΠΙΤΡΟΠΗ ΤΩΝ ΕΥΡΩΠΑΪΚΩΝ ΚΟΙΝΟΤΗΤΩΝ. Σχέδιο. ΚΑΝΟΝΙΣΜΟΥ (ΕΕ) αριθ.../2010 ΤΗΣ ΕΠΙΤΡΟΠΗΣ ΕΠΙΤΡΟΠΗ ΤΩΝ ΕΥΡΩΠΑΪΚΩΝ ΚΟΙΝΟΤΗΤΩΝ Βρυξέλλες, XXX Σχέδιο ΚΑΝΟΝΙΣΜΟΥ (ΕΕ) αριθ..../2010 ΤΗΣ ΕΠΙΤΡΟΠΗΣ της [ ] για τη θέσπιση κοινών απαιτήσεων και διαδικασιών λειτουργίας για τη χρήση του εναέριου χώρου

Διαβάστε περισσότερα

RobotArmy Περίληψη έργου

RobotArmy Περίληψη έργου RobotArmy Περίληψη έργου Στην σημερινή εποχή η ανάγκη για αυτοματοποίηση πολλών διαδικασιών γίνεται όλο και πιο έντονη. Συνέχεια ακούγονται λέξεις όπως : βελτιστοποίηση ποιότητας ζωής, αυτοματοποίηση στον

Διαβάστε περισσότερα

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος? Μετάδοση Δεδομένων Δίκτυα Υπολογιστών 68 Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της Απάντηση : Στα δίκτυα μεταγωγής κυκλώματος (circuit switching networks), η μετάδοση των

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΣΧΥΕΙ ΚΑΤΑ ΤΟ ΜΕΡΟΣ ΠΟΥ ΑΦΟΡΑ ΤΟ ΛΥΚΕΙΟ ΓΙΑ ΤΗΝ ΥΠΟΧΡΕΩΤΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΙΣΧΥΟΥΝ ΤΟ ΔΕΠΠΣ

Διαβάστε περισσότερα

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Speed-0 Web and Mobile Platform Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Version Revision History Date Version Description People 5/4/2012 Αρχικές Προδιαγραφές

Διαβάστε περισσότερα

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων καταστάσεων

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων καταστάσεων Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων καταστάσεων 1 Περιεχόμενα 1 η Άσκηση... 4 2 η Άσκηση... 6 3 η Άσκηση... 8 4 η Άσκηση... 10 5 η Άσκηση... 12 Χρηματοδότηση... 13 Σημείωμα Αναφοράς... 14 Σημείωμα

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

Διαβάστε περισσότερα

Ο Δρόμος προς την Αυτόματη Κυκλοφορία

Ο Δρόμος προς την Αυτόματη Κυκλοφορία 2 ο Auto Forum με τίτλο Αλλάξτε αυτοκίνητο Ο Δρόμος προς την Αυτόματη Κυκλοφορία Γιώργος Γιαννής, Καθηγητής ΕΜΠ Παναγιώτης Παπαντωνίου, Επιστ. Συνεργάτης ΕΜΠ Απόστολος Ζιακόπουλος, Υπ.Διδάκτορας ΕΜΠ Αθήνα,

Διαβάστε περισσότερα

Σύστημα Αυτόματης Ταυτοποίησης. AIS Automatic Identification System

Σύστημα Αυτόματης Ταυτοποίησης. AIS Automatic Identification System Σύστημα Αυτόματης Ταυτοποίησης AIS Automatic Identification System Ορισμός Απαίτηση από τον ΙΜΟ (international Maritime Organization) από το 2004 (για πλοία με χωρητικότητας μεγαλύτερη από 300 gt) Παρέχει

Διαβάστε περισσότερα

Ενδεικτικές λύσεις ασκήσεων

Ενδεικτικές λύσεις ασκήσεων Ενδεικτικές λύσεις ασκήσεων 1 Περιεχόμενα 1 η Άσκηση... 4 2 η Άσκηση... 6 3 η Άσκηση... 8 4 η Άσκηση... 10 5 η Άσκηση... 12 Χρηματοδότηση... 13 Σημείωμα Αναφοράς... 14 Σημείωμα Αδειοδότησης... 15 2 Πίνακας

Διαβάστε περισσότερα

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο

Διαβάστε περισσότερα

Εργαλεία προσομοίωσης για την διαχείριση της εναέριας κυκλοφορίας

Εργαλεία προσομοίωσης για την διαχείριση της εναέριας κυκλοφορίας Εργαλεία προσομοίωσης για την διαχείριση της εναέριας κυκλοφορίας Ιωάννης Ανδρεδάκης Ένωση Ελεγκτών Εναέριας Κυκλοφορίας Ελλάδος Περίληψη Η διαχείριση της εναέριας κυκλοφορίας έχει σαν γνώμονα την ασφάλεια

Διαβάστε περισσότερα

Κυματική οπτική. Συμβολή Περίθλαση Πόλωση

Κυματική οπτική. Συμβολή Περίθλαση Πόλωση Κυματική οπτική Η κυματική οπτική ασχολείται με τη μελέτη φαινομένων τα οποία δεν μπορούμε να εξηγήσουμε επαρκώς με τις αρχές της γεωμετρικής οπτικής. Στα φαινόμενα αυτά περιλαμβάνονται τα εξής: Συμβολή

Διαβάστε περισσότερα

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Επεξήγηση web site με λογικό διάγραμμα «Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Web : www.e-base.gr E-mail : support@e-base.gr Facebook : Like Twitter : @ebasegr Πολλοί άνθρωποι

Διαβάστε περισσότερα

Χωρητικότητα Αεροδροµίου

Χωρητικότητα Αεροδροµίου Αεροδρόµια και αεροπορικές µεταφορές Χωρητικότητα Αεροδροµίου Χριστίνα Μηλιώτη cmilioti@mail.ntua.gr Τµήµα Πολιτικών Μηχανικών Πανεπιστήµιο Πατρών Ευχαριστίες Οι διαφάνειες του µαθήµατος περιέχουν εκπαιδευτικό

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων 1.1. Εισαγωγή Γενικότερα δεν υπάρχει κάποια ταξινόμηση των πιθανών δικτύων κάτω από την οποία να ταιριάζουν όλα τα δίκτυα. Παρόλα αυτά η ταξινόμηση τους είθισται να γίνεται

Διαβάστε περισσότερα

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. 5.1 Γενικά Τα πρώτα δίκτυα χαρακτηρίζονταν από την «κλειστή» αρχιτεκτονική τους με την έννοια ότι αυτή ήταν γνωστή μόνο στην εταιρία που την είχε σχεδιάσει. Με τον

Διαβάστε περισσότερα

Οι βασικές βαθμίδες του συστήματος των δορυφορικών επικοινωνιών δίνονται στο παρακάτω σχήμα :

Οι βασικές βαθμίδες του συστήματος των δορυφορικών επικοινωνιών δίνονται στο παρακάτω σχήμα : Εισαγωγικά Τα δορυφορικά δίκτυα επικοινωνίας αποτελούν ένα σημαντικό τμήμα των σύγχρονων τηλεπικοινωνιακών συστημάτων. Οι δορυφόροι παρέχουν τη δυνατότητα κάλυψης μεγάλων γεωγραφικών περιοχών. Η δυνατότητα

Διαβάστε περισσότερα

Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας

Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας Σωτηρία Δριβάλου Εθνικό Μετσόβιο Πολυτεχνείο Μονάδα Εργονομίας Συστήματα διανομής ηλεκτρικής ενέργειας

Διαβάστε περισσότερα

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Διπλωματική Εργασία με θέμα: Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού Καραγιάννης Ιωάννης Α.Μ.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95 ΚΕΦΑΛΑΙΟ 4 Τεχνική Ανίχνευσης του ICMP Echo Spoofing Πτυχιακή Εργασία Σελίδα 95 Περιεχόμενα ΕΙΣΑΓΩΓΗ 98 ΜΕΡΟΣ Α: Έλεγχος του Icmp Echo Reply Πακέτου 103 A.1. Ανίχνευση του spoofed Icmp Echo Request Πακέτου.

Διαβάστε περισσότερα

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΕΣ & ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΩΝ ΙΩΑΝΝΗ Δ. ΙΓΓΛΕΖΑΚΗ

ΤΕΧΝΟΛΟΓΙΕΣ & ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΩΝ ΙΩΑΝΝΗ Δ. ΙΓΓΛΕΖΑΚΗ ΤΕΧΝΟΛΟΓΙΕΣ & ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΩΝ ΙΩΑΝΝΗ Δ. ΙΓΓΛΕΖΑΚΗ Εισαγωγή Το πρόβλημα της διαχείρισης της ασφάλειας πληροφοριών αποτελεί ένα ιδιαίτερα σημαντικό ζήτημα για τα σύγχρονα πληροφοριακά συστήματα, καθώς

Διαβάστε περισσότερα

710 -Μάθηση - Απόδοση

710 -Μάθηση - Απόδοση 710 -Μάθηση - Απόδοση Διάλεξη 6η Ποιοτική αξιολόγηση της Κινητικής Συμπεριφοράς Παρατήρηση III Η διάλεξη αυτή περιλαμβάνει: Διαδικασία της παρατήρησης & της αξιολόγησης Στόχοι και περιεχόμενο παρατήρησης

Διαβάστε περισσότερα

Εισαγωγή στα Πληροφοριακά Συστήματα

Εισαγωγή στα Πληροφοριακά Συστήματα Εισαγωγή στα Πληροφοριακά Συστήματα Ενότητα 8: Μοντελοποίηση με Διαγράμματα Μετάβασης Καταστάσεων Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου ΚΕΦΑΛΑΙΟ 1.7 Πρωτόκολλα και Αρχιτεκτονική Δικτύου Επικοινωνία δύο σταθμών Ύπαρξη διαδρομής Αποκατάσταση σύνδεσης Ο σταθμός-πηγή πρέπει να ξέρει πότε ο σταθμός-προορισμός είναι έτοιμος να λάβει δεδομένα.

Διαβάστε περισσότερα

710 -Μάθηση - Απόδοση

710 -Μάθηση - Απόδοση 710 -Μάθηση - Απόδοση Διάλεξη 6η Ποιοτική αξιολόγηση της Κινητικής Παρατήρηση Αξιολόγηση & Διάγνωση Η διάλεξη αυτή περιλαμβάνει: Διαδικασία της παρατήρησης & της αξιολόγησης Στόχοι και περιεχόμενο παρατήρησης

Διαβάστε περισσότερα

Π4.2.1 ΣΧΕΔΙΟ ΔΗΜΟΣΙΟΤΗΤΑΣ

Π4.2.1 ΣΧΕΔΙΟ ΔΗΜΟΣΙΟΤΗΤΑΣ Π4.2.1 ΣΧΕΔΙΟ ΔΗΜΟΣΙΟΤΗΤΑΣ Αριθμός Έκδοσης: ΕΚΕΤΑ ΙΜΕΤ ΕΜ Β 2013 9 Παραδοτέο ΙΜΕΤ Τίτλος Έργου: «Ολοκληρωμένο σύστημα για την ασφαλή μεταφορά μαθητών» Συγγραφέας: Δρ. Μαρία Μορφουλάκη ΘΕΣΣΑΛΟΝΙΚΗ, ΜΑΙΟΣ

Διαβάστε περισσότερα

ΡΗΜΑΤΟΔΟΤΕΙΤΑΙ ΑΠΟ ΤΟ ΕΥΡΩΠΑΪΚΟ ΤΑΜΕΙΟ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΑΝΑΠΤΥΞΗΣ

ΡΗΜΑΤΟΔΟΤΕΙΤΑΙ ΑΠΟ ΤΟ ΕΥΡΩΠΑΪΚΟ ΤΑΜΕΙΟ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΑΝΑΠΤΥΞΗΣ «Παρουσίαση και Επίδειξη του Καινοτόμου συστήματος διαχείρισης και βελτιστοποίησης της συλλογής απορριμμάτων στο δήμο Κατερίνης για την εξοικονόμηση πόρων και καυσίμων» ΤΟ ΕΡΓΟ ΣΥΓΧΡΗΜΑΤΟΔΟΤΕΙΤΑΙ ΑΠΟ ΤΟ

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 8: Διαγράμματα Δραστηριοτήτων

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 8: Διαγράμματα Δραστηριοτήτων Πληροφοριακά Συστήματα Διοίκησης Ενότητα 8: Διαγράμματα Δραστηριοτήτων Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων και Τροφίμων Σκοποί

Διαβάστε περισσότερα

Διαχείριση του επαγγελματικού Κινδύνου

Διαχείριση του επαγγελματικού Κινδύνου Διαχείριση του επαγγελματικού Κινδύνου Η διαχείριση κινδύνου είναι κεντρικός πυρήνας της στρατηγικής διαχείρισης κάθε οργανισμού. Είναι η διεργασία με την οποία οι οργανισμοί προσεγγίζουν μεθοδικά τους

Διαβάστε περισσότερα

Π3.1 ΣΧΕΔΙΟ ΑΞΙΟΛΟΓΗΣΗΣ

Π3.1 ΣΧΕΔΙΟ ΑΞΙΟΛΟΓΗΣΗΣ Π3.1 ΣΧΕΔΙΟ ΑΞΙΟΛΟΓΗΣΗΣ Αριθμός Έκδοσης: ΕΚΕΤΑ ΙΜΕΤ ΕΜ Β 2014 13 Παραδοτέο ΙΜΕΤ Τίτλος Έργου: «Ολοκληρωμένο σύστημα για την ασφαλή μεταφορά μαθητών» Συγγραφέας: Δρ. Μαρία Μορφουλάκη Κορνηλία Μαρία ΘΕΣΣΑΛΟΝΙΚΗ,

Διαβάστε περισσότερα

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού...

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού... ΚΕΦΑΛΑΙΟ 5. ΧΩΡΟΤΑΞΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ Περιεχόμενα 5.1. Χωροταξικός Σχεδιασμός... 2 5.2. Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού... 4 5.3. Δραστηριότητες Χωροταξικού Σχεδιασμού... 5 5.4. Τύποι Χωροταξίας...

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η. Αρχές Δικτύων Επικοινωνιών

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η. Αρχές Δικτύων Επικοινωνιών Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Αρχές Δικτύων Επικοινωνιών Τι είναι επικοινωνία; Είναι η διαδικασία αποστολής πληροφοριών από ένα πομπό σε κάποιο δέκτη. Η Τηλεπικοινωνία είναι η επικοινωνία από απόσταση (τηλε-).

Διαβάστε περισσότερα

Εισαγωγή στην Τεχνολογία Λογισμικού

Εισαγωγή στην Τεχνολογία Λογισμικού Εισαγωγή στην Τεχνολογία Λογισμικού περιεχόμενα παρουσίασης Αντικείμενο της Τεχνολογίας Λογισμικού Η ανάπτυξη λογισμικού Μοντέλα διαδικασίας λογισμικού τεχνολογία λογισμικού Κλάδος της πληροφορικής που

Διαβάστε περισσότερα

Συνεργασία σμήνους μη επανδρωμένων οχημάτων (UAVs) σε αποστολές αποτύπωσης

Συνεργασία σμήνους μη επανδρωμένων οχημάτων (UAVs) σε αποστολές αποτύπωσης Συνεργασία σμήνους μη επανδρωμένων οχημάτων (UAVs) σε αποστολές αποτύπωσης Εννοιολογικά στάδια Κατασκευή UAVs Επικοινωνία μεταξύ των μελών Ανάλυση καταγεγραμμένων γεγονότων Αρχιτεκτονική Αρχηγού Σμήνους

Διαβάστε περισσότερα

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες 4.1 Γενικά Σκοπός ενός δικτύου υπολογιστών είναι οι χρήστες να έχουν τη δυνατότητα να διαμοιράζονται πληροφορίες και συσκευές του δικτύου. Η σχεδίαση και η ανάπτυξη

Διαβάστε περισσότερα

Ηλεκτρονικό Κατάστημα

Ηλεκτρονικό Κατάστημα ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Παραδείγματα -UML Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2011-2012 1 Ηλεκτρονικό Κατάστημα Το αντικείμενο είναι η

Διαβάστε περισσότερα

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο

Διαβάστε περισσότερα

Διαχείριση Έργων. Ενότητα 7: Εκτέλεση, παρακολούθηση και έλεγχος έργου

Διαχείριση Έργων. Ενότητα 7: Εκτέλεση, παρακολούθηση και έλεγχος έργου Διαχείριση Έργων Ενότητα 7: Εκτέλεση, παρακολούθηση και έλεγχος έργου Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

Διαβάστε περισσότερα

Κεφάλαιο 3 Πολυπλεξία

Κεφάλαιο 3 Πολυπλεξία Κεφάλαιο 3 Πολυπλεξία Μάθημα 3.1: Μάθημα 3.2: Μάθημα 3.3: Πολυπλεξία επιμερισμού συχνότητας χρόνου Συγκριτική αξιολόγηση τεχνικών πολυπλεξίας Στατιστική πολυπλεξία Μετάδοση Δεδομένων Δίκτυα Υπολογιστών

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνολογία Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

Διαβάστε περισσότερα

Χαιρετισμός του Ειδικού Γραμματέα για την Κοινωνία της Πληροφορίας Καθ. Β. Ασημακόπουλου. στο HP day

Χαιρετισμός του Ειδικού Γραμματέα για την Κοινωνία της Πληροφορίας Καθ. Β. Ασημακόπουλου. στο HP day Χαιρετισμός του Ειδικού Γραμματέα για την Κοινωνία της Πληροφορίας Καθ. Β. Ασημακόπουλου στο HP day 31.03.2005 Θέμα: Ο δημόσιος τομέας ως adaptive enterprise Αγαπητοί σύνεδροι, φίλοι και φίλες Επιθυμώ

Διαβάστε περισσότερα

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ 2000-2006

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ 2000-2006 ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ 2000-2006 ΜΕΤΡΟ 1.2 Κοινοπραξίες Έρευνας και Τεχνολογικής Ανάπτυξης σε τομείς Εθνικής Προτεραιότητας Παροχή υπηρεσιών τουριστικού και αρχαιολογικού ενδιαφέροντος μέσω πλατφόρμας

Διαβάστε περισσότερα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

Περιεχόμενο του μαθήματος

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

Διαβάστε περισσότερα

Κ. Χαλκιά, Α. Τσαγκογέωργα Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών

Κ. Χαλκιά, Α. Τσαγκογέωργα Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών Το διαδίκτυο ως ένα ερευνητικό πεδίο διερεύνησης των δυνατοτήτων και των ορίων των οπτικών αναπαραστάσεων των επιστημονικών εννοιών: Η περίπτωση του ηλεκτρομαγνητικού φάσματος Κ. Χαλκιά, Α. Τσαγκογέωργα

Διαβάστε περισσότερα

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα 1.7 - Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Πρωτόκολλο είναι ένα σύνολο κανόνων που πρέπει να ακολουθήσουν όλοι οι σταθμοί εργασίας σε ένα δίκτυο ώστε να μπορούν

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

Διαβάστε περισσότερα

Τίτλος: Αεροπλοΐα- Ανάγκες Αεροσκαφών σε καύσιμα

Τίτλος: Αεροπλοΐα- Ανάγκες Αεροσκαφών σε καύσιμα Τίτλος: Αεροπλοΐα- Ανάγκες Αεροσκαφών σε καύσιμα Θέματα: ποσοστά, μοντελοποίηση, ταχύτητα, απόσταση, χρόνος, μάζα, πυκνότητα Διάρκεια: 90 λεπτά Ηλικία: 13-14 Διαφοροποίηση: Ανώτερο επίπεδο: αντίσταση αέρα

Διαβάστε περισσότερα

Κεφάλαιο 8 Πληροφοριακά συστήματα. Εφαρμογές Πληροφορικής Κεφ. 8 Καραμαούνας Πολύκαρπος

Κεφάλαιο 8 Πληροφοριακά συστήματα. Εφαρμογές Πληροφορικής Κεφ. 8 Καραμαούνας Πολύκαρπος Κεφάλαιο 8 Πληροφοριακά συστήματα 1 Στόχος: η βελτίωση της ποιότητας προϊόντων και υπηρεσιών η αύξηση της παραγωγικότητας η παραγωγή νέων προϊόντων και νέων υπηρεσιών. 2 8.1 Τί είναι Πληροφοριακό Σύστημα

Διαβάστε περισσότερα

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η Αρχές Δικτύων Επικοινωνιών Σελ. 9-50 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-b.ggia.info/ Creative Commons License 3.0 Share-Alike Σύνδεση από σημείο

Διαβάστε περισσότερα

Εξοικείωση με το NXT-G

Εξοικείωση με το NXT-G Εξοικείωση με το NXT-G Εντολές Λίγα λόγια για τους κινητήρες Οι κινητήρες μπορούν να προγραμματιστούν να ξεκινούν και να σταματούν τη στιγμή που θέλουμε. Η εντολή κίνησης κινητήρα motor είναι πολύ απλή.

Διαβάστε περισσότερα

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

Διαβάστε περισσότερα

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ Ανάπτυξη Μοντέλου Βελτιστοποίησης της Κατανομής Πόρων για τη Διαχείριση Λεωφορείων Αστικών Συγκοινωνιών Επιβλέποντες Καθηγητές: Γιώργος Γιαννής, Καθηγητής

Διαβάστε περισσότερα

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. ΗΥ335a Δίκτυα Υπολογιστών Διδάσκουσα: Παπαδοπούλη Μαρία BlindSense

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. ΗΥ335a Δίκτυα Υπολογιστών Διδάσκουσα: Παπαδοπούλη Μαρία BlindSense Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ335a Δίκτυα Υπολογιστών Διδάσκουσα: Παπαδοπούλη Μαρία 2015-2016 BlindSense Ομάδα: Αθανασάκη Ευαγγελία 3076 (csd3076@csd.uoc.gr) Αναγνώστου Λεωνίδας 2828

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία Ενότητα 2: Ο Άνθρωπος Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Τεχνικό Δελτίο. Εντάσσοντας την θερμογραφία στο πρόγραμμα συντήρησης

Τεχνικό Δελτίο. Εντάσσοντας την θερμογραφία στο πρόγραμμα συντήρησης Εντάσσοντας την θερμογραφία στο πρόγραμμα συντήρησης Απο την σειρά τεχνικών δελτίων της Transam Trading Co «Η Θερμογραφία ως μέθοδος διάγνωσης» Οι Ειδικοί στην Θερμογραφία απο το 1997 [ 1 ] Ξεκινώντας

Διαβάστε περισσότερα

Σύγχρονη Φυσική 1, Διάλεξη 3, Τμήμα Φυσικής, Παν/μιο Ιωαννίνων Η θεωρία του αιθέρα καταρρίπτεται από το πείραμα των Michelson και Morley

Σύγχρονη Φυσική 1, Διάλεξη 3, Τμήμα Φυσικής, Παν/μιο Ιωαννίνων Η θεωρία του αιθέρα καταρρίπτεται από το πείραμα των Michelson και Morley 1 Η θεωρία του αιθέρα καταρρίπτεται από το πείραμα των Mihelson και Morley 0.10.011 Σκοποί της τρίτης διάλεξης: Να κατανοηθεί η ιδιαιτερότητα των ηλεκτρομαγνητικών κυμάτων (π. χ. φως) σε σχέση με άλλα

Διαβάστε περισσότερα

Προσαρμογή λειτουργιών Δικτύου Κινητής Τηλεφωνίας

Προσαρμογή λειτουργιών Δικτύου Κινητής Τηλεφωνίας Αυτόματο Σύστημα Κλήσης Έκτακτης Ανάγκης Προσαρμογή λειτουργιών Δικτύου Κινητής Τηλεφωνίας Κωνσταντίνος Φίλης, COSMOTE ΕΥΡΩΠΑΪΚΗ ΕΝΩΣΗ ΕΥΡΩΠΑΪΚΟ ΤΑΜΕΙΟ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΑΝΑΠΤΥΞΗΣ Υφιστάμενη Διαχείριση Κλήσεων

Διαβάστε περισσότερα

ΟΙ ΝΕΕΣ ΤΕΧΝΟΛΟΓΙΕΣ ΩΣ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟ ΕΡΓΑΛΕΙΟ

ΟΙ ΝΕΕΣ ΤΕΧΝΟΛΟΓΙΕΣ ΩΣ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟ ΕΡΓΑΛΕΙΟ ΟΙ ΝΕΕΣ ΤΕΧΝΟΛΟΓΙΕΣ ΩΣ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟ ΕΡΓΑΛΕΙΟ Η εισαγωγή των νέων τεχνολογιών στις επιχειρήσεις την τελευταία δεκαετία και η δυναμική ανάπτυξη που προκάλεσαν στις επιχειρήσεις, εισήγαγαν μια επανάσταση

Διαβάστε περισσότερα

ΔΙΕΚ ΜΥΤΙΛΗΝΗΣ ΤΕΧΝΙΚΟΣ ΜΗΧΑΝΟΓΡΑΦΗΜΕΝΟΥ ΛΟΓΙΣΤΗΡΙΟΥ Γ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΛΟΓΙΣΤΙΚΗ ΚΟΣΤΟΥΣ Ι ΜΑΘΗΜΑ 2 ο

ΔΙΕΚ ΜΥΤΙΛΗΝΗΣ ΤΕΧΝΙΚΟΣ ΜΗΧΑΝΟΓΡΑΦΗΜΕΝΟΥ ΛΟΓΙΣΤΗΡΙΟΥ Γ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΛΟΓΙΣΤΙΚΗ ΚΟΣΤΟΥΣ Ι ΜΑΘΗΜΑ 2 ο ΔΙΕΚ ΜΥΤΙΛΗΝΗΣ ΤΕΧΝΙΚΟΣ ΜΗΧΑΝΟΓΡΑΦΗΜΕΝΟΥ ΛΟΓΙΣΤΗΡΙΟΥ Γ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΛΟΓΙΣΤΙΚΗ ΚΟΣΤΟΥΣ Ι ΜΑΘΗΜΑ 2 ο 1. Γενικά για την επιχείρηση Η επιχείρηση αποτελεί ένα στοιχείο της κοινωνίας μας, το ίδιο σημαντικό

Διαβάστε περισσότερα

ΕΓΓΡΑΦΟ ΕΡΓΑΣΙΑΣ. EL Eνωμένη στην πολυμορφία EL

ΕΓΓΡΑΦΟ ΕΡΓΑΣΙΑΣ. EL Eνωμένη στην πολυμορφία EL ΕΥΡΩΠΑΪΚΟ ΚΟΙΝΟΒΟΥΛΙΟ 2009-2014 Επιτροπή Μεταφορών και Τουρισμού 26.3.2013 ΕΓΓΡΑΦΟ ΕΡΓΑΣΙΑΣ σχετικά με πρόταση κανονισμού του Ευρωπαϊκού Κοινοβουλίου και του Συμβουλίου για την αναφορά περιστατικών στην

Διαβάστε περισσότερα

ΔΙΑΚΗΡΥΞΗ ΔΗΜΟΠΡΑΣΙΑΣ ΜΕ ΑΡΙΘΜΟ ΔΔ-...

ΔΙΑΚΗΡΥΞΗ ΔΗΜΟΠΡΑΣΙΑΣ ΜΕ ΑΡΙΘΜΟ ΔΔ-... ΙΑΧΕΙΡΙΣΤΗΣ ΕΛΛΗΝΙΚΟΥ ΙΚΤΥΟΥ ΙΑΝΟΜΗΣ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ Α.Ε. ΔΙΑΚΗΡΥΞΗ ΔΗΜΟΠΡΑΣΙΑΣ ΜΕ ΑΡΙΘΜΟ ΔΔ-... ΕΡΓΟ: «Πιλοτικό Σύστηµα Τηλεµέτρησης και ιαχείρισης της Ζήτησης Παροχών Ηλεκτρικής Ενέργειας Οικιακών

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κύκλος ζωής λογισμικού source: Forouzan, Mosharraf Τροποποιήσεις διόρθωση σφαλμάτων, αλλαγή απαιτήσεων χρήστη,...

Διαβάστε περισσότερα

ΕΚΘΕΣΗ ΠΟΡΙΣΜΑΤΩΝ ΑΞΙΟΛΟΓΗΣΗΣ ΑΠΟΔΕΚΤΩΝ ΥΠΗΡΕΣΙΩΝ ΤΟΥ Ε.Λ.Κ.Ε

ΕΚΘΕΣΗ ΠΟΡΙΣΜΑΤΩΝ ΑΞΙΟΛΟΓΗΣΗΣ ΑΠΟΔΕΚΤΩΝ ΥΠΗΡΕΣΙΩΝ ΤΟΥ Ε.Λ.Κ.Ε ΕΚΘΕΣΗ ΠΟΡΙΣΜΑΤΩΝ ΑΞΙΟΛΟΓΗΣΗΣ ΑΠΟΔΕΚΤΩΝ ΥΠΗΡΕΣΙΩΝ ΤΟΥ Ε.Λ.Κ.Ε 2016 Ειδικός Λογαριασμός Κονδυλίων Έρευνας Τμήμα Ποιότητας Υπηρεσιών και Προβολής Περιεχόμενα ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ... ERROR! BOOKMARK NOT DEFINED.

Διαβάστε περισσότερα

Τα βρίσκουμε σε: Αεροδρόμια Λιμάνια, μαρίνες Μετεωρολογικές υπηρεσίες Στρατιωτικές αεροπορικές βάσεις

Τα βρίσκουμε σε: Αεροδρόμια Λιμάνια, μαρίνες Μετεωρολογικές υπηρεσίες Στρατιωτικές αεροπορικές βάσεις Τι είναι το radar Με απλά λόγια το radar είναι μια ηλεκτρονική συσκευή που μας επιτρέπει να «βλέπουμε» τον γύρω μας χώρο στο σκοτάδι ή σε ομίχλη. Στην πραγματικότητα, είναι ένας πομποδέκτης ηλεκτρομαγνητικών

Διαβάστε περισσότερα

Ειδικά Θέματα Δικτύων Ι

Ειδικά Θέματα Δικτύων Ι Ειδικά Θέματα Δικτύων Ι Ενότητα 7: Δρομολόγηση (Μέρος 3) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Ν. Χατζηαργυρίου: «O ΔΕΔΔΗΕ καθοδηγεί τη μετάβαση σε μια έξυπνη αγορά ενέργειας»

Ν. Χατζηαργυρίου: «O ΔΕΔΔΗΕ καθοδηγεί τη μετάβαση σε μια έξυπνη αγορά ενέργειας» Ν. Χατζηαργυρίου: «O ΔΕΔΔΗΕ καθοδηγεί τη μετάβαση σε μια έξυπνη αγορά ενέργειας» Κυρίες και κύριοι καλησπέρα σας. Ευχαριστώ θερμά το Ελληνο-Αμερικανικό Εμπορικό Επιμελητήριο για την πρόσκληση και την ευκαιρία

Διαβάστε περισσότερα

Σχεδιασμός χωρητικότητας HP NonStop Server

Σχεδιασμός χωρητικότητας HP NonStop Server Σχεδιασμός χωρητικότητας HP NonStop Server Υπηρεσίες HP Τεχνικά δεδομένα Ο καθορισμός των μελλοντικών αναγκών χώρου αποθήκευσης των συνεχώς αναπτυσσόμενων συστημάτων NonStop της επιχείρησής σας είναι ζωτικής

Διαβάστε περισσότερα

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S.

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S. Στρατηγική Επιλογή Το ταχύτατα μεταβαλλόμενο περιβάλλον στο οποίο δραστηριοποιούνται οι επιχειρήσεις σήμερα, καθιστά επιτακτική -όσο ποτέ άλλοτε- την ανάπτυξη ολοκληρωμένων λύσεων που θα διασφαλίζουν,

Διαβάστε περισσότερα

Διοίκηση Παραγωγής και Υπηρεσιών

Διοίκηση Παραγωγής και Υπηρεσιών Διοίκηση Παραγωγής και Υπηρεσιών Εισαγωγή -3 Γιώργος Ιωάννου, Ph.D. Αναπληρωτής Καθηγητής Σύνοψη διάλεξης Σχεδιασμός διαδικασιών ορισμός Συστημική προσέγγιση Μεθοδολογίες σχεδιασμού διαδικασιών Διαγράμματα

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑΤΑ ΜIA IΔΕΑ ΓΙΑ ΣΧΕΔΙΑ ΒΙΩΣΙΜΗΣ ΑΣΤΙΚΗΣ ΚΙΝΗΤΙΚΟΤΗΤΑΣ. στην

ΠΑΡΑΡΤΗΜΑΤΑ ΜIA IΔΕΑ ΓΙΑ ΣΧΕΔΙΑ ΒΙΩΣΙΜΗΣ ΑΣΤΙΚΗΣ ΚΙΝΗΤΙΚΟΤΗΤΑΣ. στην ΕΥΡΩΠΑΪΚΗ ΕΠΙΤΡΟΠΗ Βρυξέλλες, 17.12.2013 COM(2013) 913 final ANNEX 1 ΠΑΡΑΡΤΗΜΑΤΑ ΜIA IΔΕΑ ΓΙΑ ΣΧΕΔΙΑ ΒΙΩΣΙΜΗΣ ΑΣΤΙΚΗΣ ΚΙΝΗΤΙΚΟΤΗΤΑΣ στην ΑΝΑΚΟΙΝΩΣΗ ΤΗΣ ΕΠΙΤΡΟΠΗΣ ΣΤΟ ΕΥΡΩΠΑΪΚΟ ΚΟΙΝΟΒΟΥΛΙΟ, ΤΟ ΣΥΜΒΟΥΛΙΟ,

Διαβάστε περισσότερα

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2 Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου Ενότητα 2 Τι είναι το PLC ΠΕΡΙΕΧΟΜΕΝΑ 2 Τι είναι το PLC. 2.1 Πλεονεκτήματα των PLC. 2.2 Η δομή ενός PLC. 2.3 Τα PLC της αγοράς. 2.4 Αρχή λειτουργίας ενός PLC.

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

Διαβάστε περισσότερα

Υπόστρωμα Ελέγχου Πρόσβασης Μέσου. Medium Access Control Sub-layer.

Υπόστρωμα Ελέγχου Πρόσβασης Μέσου. Medium Access Control Sub-layer. Υπόστρωμα Ελέγχου Πρόσβασης Μέσου Medium Access Control Sub-layer. Πρόβλημα Υπάρχει ένα κανάλι το οποίο «μοιράζονται» πολλοί κόμβοι. Πρόβλημα: Ποίος μεταδίδει και πότε; Περίληψη Κανάλια πολλαπλής πρόσβασης

Διαβάστε περισσότερα

Βελτιωμένη Εφαρμογή. Νέες δυνατότητες. Νέα Ιστοσελίδα

Βελτιωμένη Εφαρμογή. Νέες δυνατότητες. Νέα Ιστοσελίδα Βελτιωμένη Εφαρμογή Νέες δυνατότητες Νέα Ιστοσελίδα ΑΝΩΤΑΤΟ ΣΥΜΒΟΥΛΙΟ ΕΠΙΛΟΓΗΣ ΠΡΟΣΩΠΙΚΟΥ WWW.ASEP.GR 1 ΦΟΡΕΙΣ Α.Σ.Ε.Π. ΥΠΟΨΗΦΙΟΙ ΑΝΩΤΑΤΟ ΣΥΜΒΟΥΛΙΟ ΕΠΙΛΟΓΗΣ ΠΡΟΣΩΠΙΚΟΥ WWW.ASEP.GR 2 Φάση Α: Α: Μελέτη Εφαρμογής

Διαβάστε περισσότερα

οικονομικές τάσεις Εκτεταμένη συνεργασία της εφοδιαστικής αλυσίδας. έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Παγκόσμιες

οικονομικές τάσεις Εκτεταμένη συνεργασία της εφοδιαστικής αλυσίδας. έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Παγκόσμιες Συνοπτική παρουσίαση του ευνητικού έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Ενοποίηση τρίτων παρόχων υπηρεσιών με ολόκληρη την εφοδιαστική αλυσίδα σε πολυλειτουργικές πλατφόρμες

Διαβάστε περισσότερα

Ποια cookies χρησιμοποιούμε στον ιστότοπό μας;

Ποια cookies χρησιμοποιούμε στον ιστότοπό μας; Πολιτική Cookies Χρησιμοποιούμε cookies στον ιστότοπο μας για τη διαχείριση των περιόδων σύνδεσης, για την παροχή εξατομικευμένων ιστοσελίδων και για την προσαρμογή διαφημιστικού και άλλου περιεχομένου

Διαβάστε περισσότερα

Εναλλακτικές Τεχνικές Εντοπισμού Θέσης

Εναλλακτικές Τεχνικές Εντοπισμού Θέσης Εναλλακτικές Τεχνικές Εντοπισμού Θέσης Στρίγκος Θεόδωρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο el01222@mail.ntua.gr Σκοπός της διπλωματικής εργασίας είναι η

Διαβάστε περισσότερα

Λειτουργίες CNC-DNC. Επισκόπηση λειτουργιών CNC Επισκόπηση λειτουργιών DNC Επικοινωνίες. Λειτουργίες CNC-DNC. Γ.Βοσνιάκος-ΕΡΓΑΛΕΙΟΜΗΧΑΝΕΣ

Λειτουργίες CNC-DNC. Επισκόπηση λειτουργιών CNC Επισκόπηση λειτουργιών DNC Επικοινωνίες. Λειτουργίες CNC-DNC. Γ.Βοσνιάκος-ΕΡΓΑΛΕΙΟΜΗΧΑΝΕΣ Λειτουργίες CNC-DNC Επισκόπηση λειτουργιών CNC Επισκόπηση λειτουργιών DNC Επικοινωνίες Γ.Βοσνιάκος-ΕΡΓΑΛΕΙΟΜΗΧΑΝΕΣ Λειτουργίες CNC-DNC Άδεια Χρήσης Το παρόν υλικό υπόκειται σε άδειες χρήσης Creative Commons

Διαβάστε περισσότερα

Εκτίµηση παχών ασφαλτικών στρώσεων οδοστρώµατος µε χρήση γεωφυσικής µεθόδου

Εκτίµηση παχών ασφαλτικών στρώσεων οδοστρώµατος µε χρήση γεωφυσικής µεθόδου Εκτίµηση παχών ασφαλτικών στρώσεων οδοστρώµατος µε χρήση γεωφυσικής µεθόδου Ανδρέας Λοΐζος Αν. Καθηγητής ΕΜΠ Χριστίνα Πλατή Πολιτικός Μηχανικός ΕΜΠ Γεώργιος Ζάχος Πολιτικός Μηχανικός ΕΜΠ ΠΕΡΙΛΗΨΗ Τα τελευταία

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ

ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ 1 ΕΙΣΑΓΩΓΗ Ο πραγματικός κόσμος είναι ένας αναλογικός κόσμος. Όλα τα μεγέθη παίρνουν τιμές με άπειρη ακρίβεια. Π.χ. το ηλεκτρικό σήμα τάσης όπου κάθε

Διαβάστε περισσότερα

Μετεωρολογικό Ραντάρ και πρόγνωση σφοδρών καταιγίδων και πλημμυρών Μιχαήλ Σιούτας

Μετεωρολογικό Ραντάρ και πρόγνωση σφοδρών καταιγίδων και πλημμυρών Μιχαήλ Σιούτας Μετεωρολογικό Ραντάρ και πρόγνωση σφοδρών καταιγίδων και πλημμυρών Μιχαήλ Σιούτας Κέντρο Μετεωρολογικών Εφαρμογών ΕΛΓΑ Αεροδρόμιο Μακεδονία, Θεσσαλονίκη Μετεωρολογικό Ραντάρ Το Μετεωρολογικό Ραντάρ ή Ραντάρ

Διαβάστε περισσότερα

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΔΙΚΤΥΟ Το διαδίκτυο προσφέρει: Μετατροπή των δεδομένων σε ψηφιακή - ηλεκτρονική μορφή. Πρόσβαση

Διαβάστε περισσότερα