martes, 30 de octubre de 2012

Anadir parametro a create-wireless-node

La idea es poder asignar dinámicamente el tamaño del buffer de nivel 3 en un nodo para generar cierta heterogeneidad en nivel memoria.
es decir cambiar la línea:

tcl/lib/ns-lib.tcl:915:        set ragent [new Agent/ODMRPAgent [$node node-addr]]

por otra que tenga un parámetro más
        set ragent [new Agent/ODMRPAgent [$node node-addr]  $bufferSize]

Para esto nos vamos a basar en otro parametro que ha sido agregado al constructor create-wireless-node :

tcl/lib/ns-lib.tcl:342:#                  -sensorNode ON
tcl/lib/ns-lib.tcl:392:Simulator instproc sensorNode {val} {$self set sensorNode_ $val}
tcl/lib/ns-lib.tcl:804:    $self instvar routingAgent_ sensorNode_   
tcl/lib/ns-lib.tcl:808:    } elseif { [info exists sensorNode_] && $sensorNode_ == "ON"} {


El resultado es el siguiente:

tcl/lib/ns-lib.tcl:344:#           -OdmrBufferSize (espacios)
tcl/lib/ns-lib.tcl:396:Simulator instproc OdmrBufferSize {val} {$self set OdmrBufferSize_ $val }
tcl/lib/ns-lib.tcl:464:        transitionTime_ satNodeType_ eotTrace_ phyTrace_ OdmrBufferSize_
tcl/lib/ns-lib.tcl:617:        topoInstance_ level1_ level2_ inerrProc_ outerrProc_ FECProc_ rtAgentFunction_ OdmrBufferSize_
tcl/lib/ns-lib.tcl:651:            if [info exists OdmrBufferSize_] {
tcl/lib/ns-lib.tcl:652:                set ragent [$self create-odmr-agent $node $OdmrBufferSize_]