background image

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

 

 

70 

 

Τέλος,  για  λόγους  ευκρίνειας  και  κατανόησης  των  λειτουργιών  από  τον  χρήστη,  τα  δύο 
διαφορετικά είδη σηματοδότη χρησιμοποιούν διαφορετικά χρώματα όπου ο προσωρινός είναι 
κόκκινος και ο μόνιμος είναι μπλε. Στην συνέχεια θα εξετάσουμε την υλοποίηση του μόνιμου 
σηματοδότη. Αρχικά στην εισαγωγή του μόνιμου σηματοδότη έχουμε την επανασχεδίαση των 
κυματομορφών για την απομάκρυνση προηγούμενων σηματοδοτών (Κώδικας 38, γραμμή 5). 
Η ενέργεια αυτή στον προσωρινό σηματοδότη γίνεται με αντικατάσταση των στοιχείων του 
‘canvas’ με αυτά του δεύτερου ‘canvas’ που λειτουργεί ως προσωρινή μνήμη. Έπειτα έχουμε 
το υπολογισμό της χρονικής υποδιαίρεσης που θα χρησιμοποιήσουμε καθώς και του χρόνου 
πάνω στον οποίο βρίσκεται ο δείκτης ποντικιού (Κώδικας 38, γραμμές 6-12). Στην συνέχεια 
αρχικοποιούμε κάποιες μεταβλητές για την σχεδίαση όπως τα χρώματα, γραμματοσειρές και 
αποστάσεις. 

1. $

.

each

(

window

.

selected_signals

,

 

function

(

 i

,

 index 

)

 

{

 

2. 

  for

(

current_time

=

0

;

current_time

<=

timeframe

;

current_time

+=

time_inter-

val

){

 

3. 

    if

(

typeof

 wave_data

[

index

][

current_time

]

 

!=

 

'undefined'

){

 

4.       wave_val 

=

 wave_data

[

index

][

current_time

];

 

5. 

      if

(

wave_data

[

index

][

'length'

]>

1

){

 

6.         wave_val_bin 

=

 wave_val

;

 

7.         data_type

=

$

(

"#waveform_data_type"

).

val

();

 

8. 

        if

(

wave_val

.

match

(

/bU.*/g

)){

 

9.           wave_val

=

wave_val

.

substr

(

1

);

 

10. 

       }

else

{

 

11. 

         if

(

data_type

==

'3'

){

 

12.            wave_val

=

"D"

+

parseInt

(

wave_val

.

substr

(

1

),

2

).

toString

(

10

);

 

13. 

         }

else

 

if

(

data_type

==

'2'

){

 

14.            wave_val

=

"H"

+

parseInt

(

wave_val

.

substr

(

1

),

2

).

toString

(

16

);

 

15. 

         }

else

{

 

16.            wave_val

=

"B"

+

wave_val

.

substr

(

1

);

 

17. 

         }

 

18. 

       }

 

19. 

     }

 

20. 

   }

   

 

21. 

 }

 

 

Κώδικας 39: waveforms_viewer.js - Εύρεση τιμής για κάθε σήμα για τον μόνιμο σηματοδότη επιπλέων πληροφοριών 

Έπειτα  βρίσκουμε  την  τιμή  του  κάθε  επιλεγμένου  σήματος  για  την  χρονική  στιγμή  που 
υπολογίσαμε παραπάνω. Για να το επιτύχουμε αυτό ελέγχουμε τις αλλαγές τιμής από τον χρόνο 
μηδέν έως το χρόνο που μας ενδιαφέρει και κρατάμε την τελευταία τιμή που βρέθηκε ως την 
τιμή του σήματος (Κώδικας 39). Αυτή η τεχνική γίνεται απαραίτητη καθώς συγκρατούμε μόνο 
τις  αλλαγές  τιμών  και  είναι  πολύ  πιθανό  η  συγκεκριμένη  χρονική  στιγμή  να  μην  περιέχει 
αλλαγή για κάθε σήμα. Κατά την αναζήτηση αυτή γίνεται και η μετάφραση των τιμών στον 
τύπο που έχει επιλέξει ο χρήστης για τα σήματα με μήκος μεγαλύτερο από ένα.