background image

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

 

 

66 

 

1. 

 if

(

value 

==

 

-

1

){

 

2.    value 

=

 old_value

;

 

3.    x_multi_intervals 

=

 x_interval 

+

 x_multi_intervals

;

 

4. 

 }

else

{

 

5. 

   if

(

first_timeframe 

!=

 

1

){

 

6.      data_type

=

$

(

"#waveform_data_type"

).

val

();

 

7. 

     if

(

old_multivalue_named

.

match

(

/bU.*/g

)){

 

8.        value_length

=

old_multivalue_named

.

length

*

10

;

 

9.        data_val

=

old_multivalue_named

.

substr

(

1

);

 

10. 

    }

else

{

 

11. 

      if

(

data_type

==

'3'

){

 

12.         data_val

=

"D"

+

parseInt

(

old_multivalue_named

.

sub-

str

(

1

),

2

).

toString

(

10

);

 

13. 

      }

else

 

if

(

data_type

==

'2'

){

 

14.         data_val

=

"H"

+

parseInt

(

old_multivalue_named

.

sub-

str

(

1

),

2

).

toString

(

16

);

 

15. 

      }

else

{

 

16.          data_val

=

"B"

+

old_multivalue_named

.

substr

(

1

);

 

17. 

      }

 

18.       value_length

=

data_val

.

length

*

8

;

 

19. 

    }

 

20. 

    if

(

value_length 

<

 x_multi_intervals

){

 

21.       ctx

.

fillText

(

data_val

,

x

-

x_multi_intervals

+

5

,

y

+

5

);

 

22. 

    }

                            

23. 

  }

 

24.   x_multi_intervals

=

x_interval

;

 

25.   ctx

.

moveTo

(

x

,

 y

+

10

);

 

26.   ctx

.

lineTo

(

x

,

 y

-

10

);

 

27.   ctx

.

moveTo

(

x

+

1.5

,

 y

-

1.5

);

 

28.   ctx

.

arc

(

x

,

 y

,

 

3

,

 

0

,

 

2

 

*

 

Math

.

PI

,

 

false

);

 

29. 

}

 

30.  
31. 

if

(

 old_value

.

match

(

/bU.*/g

)){

 

32.   ctx

.

strokeStyle 

=

 

"#f00"

;

 

33. 

}

 

34.  
35. ctx

.

moveTo

(

x

,

 y

+

10

);

 

36. ctx

.

lineTo

(

x

+

x_interval

,

 y

+

10

);

 

37. ctx

.

moveTo

(

x

,

 y

-

10

);

 

38. ctx

.

lineTo

(

x

+

x_interval

,

 y

-

10

);

 

 

Κώδικας 34: waveforms_viewer.js - Σχεδίαση παλμών για σήματα με μήκος μεγαλύτερο από ένα 

Έτσι  ολοκληρώνεται  η  σχεδίαση  κυματομορφών  κάθε  σήματος  μετά  την  οποία 

επιστρέφουμε στον εξωτερικό βρόγχο του πρώτου μέρους της σχεδίασης των κυματομορφών 
για  τις  απαραίτητες  διορθώσεις  των  τιμών  ύψους  και  πλάτους  καθώς  και  την  εισαγωγή 
στοιχείων για τα σήματα με μήκος μεγαλύτερο του  ένα. Ένα  ακόμη στοιχείο που αξίζει να 
αναφέρουμε  εδώ  είναι  ότι  όταν  ολοκληρωθεί  η  σχεδίαση  όλων  των  κυματομορφών  στο 
στοιχείο ‘canvas’, αντιγράφουμε τα περιεχόμενα αυτού του στοιχείου σε ένα δεύτερο το οποίο 
λειτουργεί ως ενδιάμεση μνήμη και επιτρέπει πολλές από τις λειτουργίες που θα περιγράψουμε 
στο  επόμενο  υποκεφάλαιο  να  λειτουργήσουν  χωρίς  την  συνεχή  επανασχεδίαση  όλων  των 
κυματομορφών.