Hello I want to calculate the signal strength received from some APS. But up to now, I just have written some codes like below to implement this function. proc record {} { global filepr pt l lambda gt gr pi node set ns [Simulator instance] set time 0.1;# record 0.5 second set m_x [$node(1) set X_] set m_y [$node(1) set Y_] set n_x [$node(0) set X_] set n_y [$node(0) set Y_] set d [expr (sqrt(pow(($m_x - $n_x),2)+ pow(($m_y-$n_y),2)))] set m [expr (1 /(4 * $pi * $d))] set pr [expr ($pt * $gr * $gt * $m * $m / 1)] set now [$ns now]
puts $filepr "$d\t$pr" $ns at [expr $now + $time] "record" } I set all the parameters but d to calculate Pr. About d, I record the dynamic coordinate(x,y), and then compared it to the coordiate of AP(x1,y1) to get d. But now, I want to implement using a function written in the file /mobile/propagation.cc double FreeSpace::Pr(PacketStamp *t, PacketStamp *r, WirelessPhy *ifp) { double L = ifp->getL(); // system loss double lambda = ifp->getLambda(); // wavelength double Xt, Yt, Zt; // location of transmitter double Xr, Yr, Zr; // location of receiver t->getNode()->getLoc(&Xt, &Yt, &Zt); r->getNode()->getLoc(&Xr, &Yr, &Zr); // Is antenna position relative to node position? Xr += r->getAntenna()->getX(); Yr += r->getAntenna()->getY(); Zr += r->getAntenna()->getZ(); Xt += t->getAntenna()->getX(); Yt += t->getAntenna()->getY(); Zt += t->getAntenna()->getZ(); double dX = Xr - Xt; double dY = Yr - Yt; double dZ = Zr - Zt; double d = sqrt(dX * dX + dY * dY + dZ * dZ); // get antenna gain double Gt = t->getAntenna()->getTxGain(dX, dY, dZ, lambda); double Gr = r->getAntenna()->getRxGain(dX, dY, dZ, lambda); // calculate receiving power at distance double Pr = Friis(t->getTxPr(), Gt, Gr, lambda, L, d); // warning: use of `l' length character with `f' type character // - Sally Floyd, FreeBSD. printf("%lf: d: %lf, Pr: %e\n", Scheduler::instance().clock(), d, Pr); return Pr; } The question is I don't know how to call this c++ function using tcl script
_______________________________________________ Gossip mailing list https://www.mail-archive.com/gossip@mail-archive.com https://www.mail-archive.com/cgi-bin/mailman/options/gossip