background image

Κεφάλαιο 3 - Ανάπτυξη και Υλοποίηση της Εφαρμογής 
 

 

 

64 

 

Οι γενικοί υπολογισμοί συμπεριλαμβάνουν τον καθορισμό της χρονικής υποδιαίρεσης που θα 
χρησιμοποιήσουμε  για  την  εμφάνιση  (Κώδικας  31,  γραμμές  4-8),  το  μικρότερο  χρονικό 
διάστημα μεταξύ πιθανών αλλαγών (Κώδικας 31, γραμμή 4), την ελάχιστη και μέγιστη χρονική 
στιγμή που θα εμφανίσουμε αναλόγως της χρονικής κλίμακας και μετατόπισης (Κώδικας 31, 
γραμμές 9-20), το μέγεθος κάθε παλμού σε  pixel καθώς και το ύψος που πρέπει να έχει το 
στοιχείο  ‘canvas’  για  την  εμφάνιση  όλων  των  σημάτων  που  έχουν  επιλεγεί.  Έπειτα 
αρχικοποιούμε  τις  μεταβλητές  σχεδίασης  όπως  το  χρώμα  και  γραμματοσειρά  που  θα 
χρησιμοποιηθούν, το μέγεθος κενών μεταξύ διάφορων στοιχείων καθώς και το τελικό μέγεθος 
του στοιχείου ‘canvas’. Αφού έχουμε πλέον αρχικοποιήσει και υπολογίσει τα δεδομένα που θα 
χρειαστούμε, γίνεται η σχεδίαση του χρονικού πλέγματος. Τέλος, προχωράμε στην σχεδίαση 
κάθε κυματομορφής ξεχωριστά προσθέτοντας τα απαραίτητα στοιχεία για σήματα με μήκος 
μεγαλύτερο του ένα καθώς δίνουμε στον χρήστη την επιλογή επέκτασής τους. 

1. 

for

(

current_time

=

0

;

current_time

<=

duration

;

current_time

+=

time_frame

){

 

2. 

  if

(

typeof

 signal_data

[

current_time

]

 

!=

 

'undefined'

){

 

3.      old_value 

=

 signal_data

[

current_time

];

 

4.      value 

=

 signal_data

[

current_time

];

 

5.   
6. 

  }

else

{

 

7.      value

=-

1

;

 

8. 

  }

 

9. 

  if

(!

isNaN

(

current_time

)

 

&&

 current_time 

>=

 low_limit

*

time_frame 

&&

 

current_time 

<

 max_limit

*

time_frame

){

 

 

Κώδικας 32: waveforms_viewer.js - Ο κύριος βρόγχος σχεδίασης κυματομορφών και τα αρχικά βήματα προσδιορισμού της 

τιμής του σήματος 

 

Ο  σχεδιασμός  κάθε  κυματομορφής  γίνεται  μέσα  σε  έναν  βρόγχο.  Ο  βρόγχος  αυτός 

ξεκινάει  από  το  μηδέν  και  φτάνει  μέχρι  την  χρονική  διάρκεια  προσομοίωσης  με  βήμα  το 
ελάχιστο χρονικό διάστημα μεταξύ αλλαγών (Κώδικας 32, γραμμή 1). Έτσι περνάμε κάθε φορά 
από μία χρονική στιγμή προσομοίωσης με πιθανή αλλαγή. Καθώς στα δεδομένα του σήματος 
συγκρατούμε  μόνο  τις  χρονικές  στιγμές  στις  οποίες  υπάρχει  αλλαγή,  μπορούμε  εύκολα  να 
ελέγξουμε σε κάθε επανάληψη εάν υπάρχει νέα τιμή στο σήμα για την συγκεκριμένη χρονική 
στιγμή  (Κώδικας  32,  γραμμές  2-8).  Καταλήγοντας  λοιπόν  στην  τωρινή  τιμή  του  σήματος 
επιβεβαιώνουμε ότι ο χρόνος που εξετάζουμε είναι στα χρονικά πλαίσια που θα σχεδιαστούν 
και προχωρούμε στην σχεδίαση της κυματομορφής (Κώδικας 32, γραμμή 9).