daniele messina, ilenia tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · event scheduler objects...

54
Daniele Messina, Ilenia Tinnirello

Upload: others

Post on 24-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

���������� �������������� ����

Page 2: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

������������

����������

������������

� ��

�� �� � � � ��

������������ ������

Page 3: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

� ���������������������������� ���������������������������

���� ����

�� ��� ��

����� � ���� � � � �� � � ���

���� � ��� � � �� �� � �

���� ����

�� � �� ��� �� � �� � �

�� � � � ����

��� ����

�� ���� � �� �� ��� �� � �� � �

Page 4: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

�� ���� ���!�������������� ���� ���!����������������!�����������!�������

���!������� � ��� � � � �� � � � � �� � � �� � �� � � ����� ��� � ��

� ���� �� � �� � � � �� ��� � � ��� � �� �� � � � �� � ������ �

� � � � ������� �� � ���� �� �� � !� �� �� �� �� ���

� � � � �� ��� � �� � � ��� � �� � � �������� � �� � �� ��� � �

� " � � � � ��� � � �� �� �� �� � ���� � ���� � �� � � � �� � ������

�"���!������� � �� � ���� �� �� �� ��� �� �� �� � � � � � � � � � �

� # �������� �� � �� ��� � � � �� � � � $� ��� �% � � ���� � � ��� ��� �� � � � ����

� & � � �� ��!�� ��� �

� & � � � �� � � �� �� ����� � � ��� � � � ���� � � �� � � �� � ���� �� � � � �� � �

Page 5: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

����������� ���������������� �����

�#�����$��#���

�' ( � ) �� �� � � � * + (

�%����� �$��#���

�( ����� ���

�" � �� �� � ���

�" � � � �� �� ��� ��� ���� � � � ���

�# �������� � �� � � � ��� ��� � � �� � � ��� ���

Page 6: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

�������������� ������������� ���

� �## ������ �&� ���'�(&$'�$��

� &������������)���!��� ����'�*)�'�+)�

� � � �������

� &����#���������� ��"$,&*$

� ��������&�#� ���

� �������-������ ����������&����-����"��#&� '���"'�

*).'

� �� ����������� ������������ �&�������� �/�� � ��'�

�����'�%$�'�0 ���,12�3��'�12�3�435'�)���&66&78'�

��� ��

� � �9 ��:$'������������������#������ ����������"�'�

&6��'�""+������6"+3

� &������$����������� � ���,�#����� ���

Page 7: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

7�����7�����

���������!������!�������������� �����

��!� �#������#�����������+:�&�#��;����/+���� �

:��������&���9��'�����������9����� ��*�

)���� ��'��&<&'�=��6=�$��*������&78

�(����!�������>>4

�������!�������>>?

����������� �� � �� , �� � ��� � �� �� �� � � � � � � -� ��!

��� ��� � � � �� �� ��� �� � � ��� � � � � ( � .

��������!������/�#�����#���22?8 ��3�>3@

Page 8: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

����������������������

��������69;������������&� �/6&� 8����#������#���������������*AA3

�:����������� ������!���������� ��'������������#�������9;���� 9�����'������������������#����� �� 9�����3

OTcl Script

OTcl: Tcl interpreter with Object Oriented extension

Event scheduler ObjectsNetwork component Objects

Network setup helping Modules

Simulationresults (.tr, .nam)

Analysis(Awk, Perl, Tcl)

Visualization(NAM)

Page 9: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

:���� ����:���� ����/����������8/����������8

�@����#�����

��� / � � ��� ���

� �� ,� ��� � ��� �� �� �� � ��� � �� �� �� �� ������ .

�� � � ,� � �� � ��� �� ��� �� �� �� �.

��!� �9 ������ � ��� 011� � � 2�� 3 2� ��2� �1�� � �� 1�� � 1���� � 1� ���� � �� 1�� / � �2 �� �

�-�� � ��� � � � 2� � � ��� � 4 ,� �� �� �� �� � � � � � � �� � � ��.

Page 10: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

������������������

�B����������������������������C���D�� ���#�EC�/������������������������������������������������F�����9 �'��������������#����#���������������������8'�������CD�� ���#�EC�����������������&� ����#��� ��������������������� �������������/3�3�������#� �������������!����83

�B������ ��� ���;������������������������������������������������&� ����������������&� ���� '�9���������������� �� ������������9 �

Page 11: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

��������������������

�B���������������������������������������C����D����� �EC�������CD����� �EC���������������������������� ���������������������9����'�������������F������������� �������������&� ���� ��������#������������� ����������������������!��� G�

Page 12: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&�

Page 13: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&� ���������&� ���������

���&� ����#���������������������������������3�*��������������#�������9����� �������������� ���3�(����F��# � set a 24set b 15

�&�����������#����� ��9����������������� �� ���������������� �����#������ set a 24; set b 15

������������������������������������������'�������������������������������������������������������� ������������������������������������3�0 �����������#�������9���#�����������9�3

Page 14: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&� ���������&� ���������

set var1 5

name of the commandarguments

words

Page 15: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&��������������&��������������

� �����9������������&� �#�����������H���## ��������������������������������������'��������������## ���9����!��� ���������#���������3�(����F��# �'��������������� �����*�#������

x = 4;y = x+10;

� ���������������� ��� ������#����������������&�

set x 4set y x+10

� &��������������������# ������������������IFA�2J ������������������������!� ��������3����������������������#������������������!� ���IFA�2J'����������������!� ����53

set x 4set y [expr $x+10]

Page 16: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&��������������&��������������

�����������Iset 2 aJ ��!� ����� �������������!���9 ���������������I�J����������!� �����I�J3

�����������������������������������������!� ����������!���9 �'�3�3�������9����������������������!� ��

Page 17: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

+���9 ����9�������+���9 ����9�������

�+���9 ����9�������������������9������ ��������������������������������!� ��������&� �!���9 �����9��������������������

set a 20

set b [expr $a*2]

�*���������9�����������!�����9����� ������������������������9�������

Page 18: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

+���9 ����9�������+���9 ����9�������

set name tset $name foo

�0 ����!���9 ����9�������K

Page 19: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

*�������*�������

��������������� �������������������

�����������������������������

�����������������������������������������

�������������������������� ������

���������

# This is a comment

set a 100 # Not a comment

set b 50; # This is a comment

Page 20: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&����F#���������&����F#����������expr ����������������������������������� ��

�����������!� ��������������������������������F#������3

�&���expr ����������##���������F#������������F��� ���������������F#������������:�*'��� ��������������#������������ �������������������*��#�������3

��F��# ��

% expr 3 << 212% expr 14.1*684.6% expr (3 > 4) || (6 <= 7)1

Page 21: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&��������������&��������������

� ���������������������!� ������!���9 ��!������3�:������������������ ��!� ������!������������9����9����������������/����� '���F������ '�������� 83�:�������������������������������� �������3�&�������!� ��������������!����������������� ������������������������������� ����������������3

incr varName ?increment?

set a 5

set b 2

incr a 2

incr a $b

Page 22: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

� ������������� �������������&����������������������������������9��

��9�������F#�������'������� �# ������������������#�������9��������

abs(arg) acos(arg) asin(arg) atan(arg) atan2(y, x) bool(arg) ceil(arg) cos(arg) cosh(arg) double(arg)

expr 2*sin($x)

Page 23: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

������������

���������������� ���������� ������'������������������!���9 ����������������������!� ��3�&��������������������� ��������������#���� �������������������������������������������� ���������������������3

�)��������������������� ����������������9����9������������3�(��������������&� ����������������������� ����������!���������������������������������������������� �������������������� �����������������9���������3

Page 24: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

�������!���������������!���������&����� ������������##������������������ G���

����������!��������������������� ������������� �������#'���������'�����������9 �3

set capital(France) Parisset capital(Italy) Romeset capital(Germany) Berlinset capital(Poland) Warsawset capital(Russia) Moscowset capital(Spain) Madrid

�&��-�����������#����������� �����������������#������

puts $capital(Italy)

Page 25: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

� � �� � ����������� ��������������� �������� &� ��� ���# ������������������� �������'�9����� ��

�������� ������������9����� �����9����������������� �# ����������������� ��� ����������3�&���#�������9� ������ ������������������� ����������F��������������

% set matrix(1,1) 140% set matrix(1,2) 218% set matrix(2,1) 84% set matrix(2,2) 7% set i 2% set j 1% set cell $matrix($i,$j)84

� � ���F���������������������� �����������������������I�'�J'�I�'�J'�I�'�J ����I�'�J3�7���!��'�����������9���!���;������������������������������ ������3�0 �����9������������!� ������������;��������9������������##��#������ ����������3

Page 26: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

��������

�:�������# ����������� �����������������������������9������� ���������#�������9���#����������9�3

set l1 {John Anne Mary Jim}

set l2 {a b {c d e} f}

set elem1 [lindex $l1 2]Mary

Page 27: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

������� ���� ���� L������ �# �� ������������� �� ���/������ ��������������

���9����������� ����������������� �� ��8��������������������� ��3

;��� ���;������� *������������ ���� ��������������������;����������

��#��������������������������� �3 �##����!�������!� ����!� ����M� �##����������!� ������!���9 ��!������������ ���� ������

��������������������!� ����������!���9 �3�*�����������!���9 �����������H��� �������F��3

���F� ������F� ���������������FH���� ����������� ��3 ������ ������F�!� ���!� ����M� �������������� ����������9����������� ��������!� ���

������������� ���� �������9���������FH���� ��������� ��3 ����� ��� ���������������9������� ��������� ��3

���������������N

����6#�������

Page 28: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

��������#� ������������#� ����

�&� ��F#��������� ����������# ���������#�������3

������������9����� �������-���������9�����3set s1 “Los Angeles”set s2 {Los Angeles}

�/����C���������������K8

�&����#������������� ����������#���������� ==!=> …

Page 29: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

*����� �� ��*����� �� ��

�9����

��������

��!�

����

��������

��

�������

������

��� �

Page 30: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&������������&�������������&��������������!� ����������F#������'����������

���� �'������������� ���F������������#��9���������������� �3�

if {$x < 0} {...} elseif {$x == 0} {...} elseif {$x == 1} {...} else {...}

�&������� ������������������ �9���������� ����������!������#�����F������3�:����������������������� ���� �������������������������������������������������������#��������3

Page 31: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&����� ���������&����� ���������

� &����� ����������������������������� �����F#�������������&� ����#�3�:���!� �����������F#��������������������� ��������G������������F�����������&� ����#�3�&���#���������#������!��������!������ ������F#��������!� ���������G���'���������#���������� �������������������������������������#��������3

while {$i >= 0} {

...

incr i -1

}

Page 32: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&��������������&��������������

� &������������������� �������� ���F��#���������#��!����������F# ��� ��#������� 3

for {set i [expr $a-5]} {$i >= 0} {incr i -1} {......}

� &�������������������������������� G��������#�'������������������F#������������������������������������������� ��#'������������������� G��������#�'���������!� ������������������F�������������� ��#�9����9�������!� �������������������'��������������������������������#�����������������9����������� ��#3

Page 33: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&������������������&������������������

� &����������������������������!���� ��������� ������������ ��3

� (����������������������������3�&������������������������!���9 �'���������������� ��'������������������&� ����#�����������������9����������� ��#3

set a {3 5 5}foreach i $a {

puts [expr $i*2]}

i takes the values of the elements of the list

Page 34: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&����!� ��������&����!� ��������

��!� ����������� �#��#����9� ����9 ���������������������F�������&� ����#��3�:������#����������9���������������'����������������������������������#��������#����'�����������F��������������� �������&� ����#�3�6���������� �!� �������������������������'���!����������!���9 ��'���������� ������!� ����������!���9 ������&� ����#��3�(����F��# �'��������#�

set cmd "set a 0"...eval $cmd

�� �����!���9 �� ����� 2���������� �!� ������������!����3

�$����#������������#��������������� �!� �������������������� �!� ����#�����3

Page 35: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&�����������������&�����������������

�&��������������������������� �������F���������������������������� �������&� ����#�3

�:������������� ����������������������������������������� �3��(����F��# �'������������

source init.tcl�� ��F��������������������������� ����3�� 3�&���

�������!� ���������������� �9������!� ���������������������� ����������������F������'�������������������!� ������������ ������������������� �3�:��������'��������� ��������������������������9�������������� �H�����#������������������#����������������� �3

Page 36: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

$���������$���������

����������������������������������������� ����������������������

����������������������������������������������������������������������

proc plus {a b} {expr $a+$b}��������������� ������������������� ���������������������� ���������������������������������������� ���������������� ���������� �������������������� ������ ��������������!����������������� ���������������������������������� ����� ��"���������������������

Page 37: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

$���������$���������

�����������#��������� �������������� ������#������������� "�������������������������������$� ��"�

���������������"���������������"��������������������������������� "��#������������������������������������������ ����������������� �����������������������������

���������������"��#�������������������������#�������� �������

Page 38: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

�F��# ��F��# �

proc power {base p} {set result 1while {$p > 0} {

set result [expr $result*$base]set p [expr $p-1]

}return $result

}

Page 39: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

�F��������F�������

� 0 ����������������������'����������������� �����9������������������������������� ����������#���������������O�����������O�������������9��'���������������9�����������3�B���������� ��'�4'��2'�42'��22���������������3����������� �� ������� ��9����� �������!�'������������������!� ��9 ��������� �����!� ��9 �3�B������� ����������������������������������#���9 �3

# change :: num -> [num]proc change {n} {...}change 175=> 1 1 2 1 0

Page 40: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

+���9 �����#�+���9 �����#�

�0 ����������������!���9 ����������#��������'�&� �� �/9������� �8��� ��������G��!���9 �������������� �����������������#��������3

���#������������������������ �9� �!���9 ������������ �9� ��������3�(����F��# �'������� ������������������������ �9� �!���9 ���F�������������9 ���������#��������

global x y

Page 41: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

�F��# �� ������F��# �� �����

� :������ ���������������������������� ����������#��� �!� �������'����������#�������������9���� �������!���������9����������������3

� &���#��������H�� ��� �!���9 �������� �9����������� ���������� ������������ ���������F�������������3�:����������������F������������������������� �9��������������#��������3

proc sum args {set s 0foreach i $args {

incr s $i}return $s

}sum 1 2 3 4 515

Page 42: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

�F������@�F������@

������������������������������������������������������3�&�������!� �������� ��9��#���������������������!���9 �����9���������������������������������!� �����������3�&���������������� ��������9���������������������3

Page 43: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

*� �9����������� ��#!��*� �9����������� ��#!��

� &����#!�����������#��!������������ �����������������������!���9 �������������������F�������#��������3

� �#!�������� ���9��������������������� �9� �!���9 ��3

proc incr_proc { varname i } {upvar $varname vset v [expr $v+$i]

}

set n 4incr_proc n 2set n

Page 44: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

$����������������#����$����������������#����

# print elements of an arrayproc show_array {arr} {

upvar $arr myArrayforeach element [array names myArray] {

puts stdout "arr($element) = \$myArray($element)"}

}

set arval(0) zeroset arval(1) oneshow_array arval

Page 45: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

���������� ������������ ��

�&����#�����������������������#�������� �3

set f [open “trace.tr” r]

��#�������������������������������������#���� �3�&���� �����������������������!��������������������������#� ���������#���� �'�������������'�#���'������ ���3�

close $f

Page 46: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

���������� ������������ ��

�&������ �������������!���� ����������������������� ������!� �9 �'��!�����������!��H���F# �� ���#���������� ��3�&���������stdin'�stdout'�����stderrP�����������������������������#��'����#��'����������������� ����������#������������������&� ����#�����F������3

Page 47: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&���#�����������&���#�����������

puts ?-nonewline? ?fileId? string

�0 ��������������� �:�'��##����������� ��������������� ���������� ������#�����3�( �:������� ������������3

��������������#��������3�&���#�����������������9�������3�6��#���� �9��

��!����������## �����C��������'���� ��� ������������������������������ �������������� �3

�&���� �����������������������9����������������9����������������� �3

flush $f

Page 48: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&���������������&���������������

gets fileId ?varName?

�������������F�� ��������� �:������������������������������ ��3

�:��!����������#�����'�# ��������� ����������!���9 ������������������������������������������ ���/������������������ �83�:��!���������H���#�����'��������� ���������� ��/��������#��������������������� �83

Page 49: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

�F��# ��F��# �

set f [open /home/keith/.profile]while {![eof $f]} {

puts [string length [gets $f]]}close $f

�&������������������������ �������#��������������������������������������/�8����������� ������9�����������'������ ���/28���������3

set f [open /home/keith/.profile]while {![eof $f]} {puts [string length [gets $f]]}close $f

Page 50: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

6&�

Page 51: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

&��������������&��������������

�new ��������������������9;����3�:������������I���������J ����������������9;���3

set fred [new Father]

$fred age 40

�destroy ����������������������9;����

$fred destroyjohn destroy

Page 52: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

69;����69;����

# creating an object of class FatherFather johnjohn

�������������� ������� ����������������9;���:

# calling instproc agejohn age 50

# reading instvar agejohn set age50

Page 53: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

*�����������'������������*�����������'������������

�6�� ���������� ���!���������init ����destroy���#�����#�����������������������������9;���3

�B���������������������init ����destroy���#����3

Father instproc init {args} {

...

}

Page 54: Daniele Messina, Ilenia Tinnirelloilenia/course/ns_1.pdf · 2007-06-18 · Event scheduler Objects Network component Objects Network setup helping Modules Simulation results (.tr,

Daniele Messina, Ilenia Tinnirello

:��� G������#����:��� G������#����

�&���������#�����������69;����� ����#��!���������� G������������� �� ������#����������������������#�����������/�����#�������8�#������������������!������������9;����������������#��������������3

Father joejoe age 40

Father joe -age 40