Thanassis, if you see this, I apologize for accidentally shooting this
post directly too you -- I didn't realize the older post I was
attempting to reply to only had a "reply to author" vs a "reply".
At any rate, I am in the process of reviewing the Castalia manual,
[1], [2], [3] (for comparison), and the code, and have questions
regarding the maxTxPower variable that Evy asked about in a previous
post, and Castalia's path loss model in general.
The WirelessChannel member variable maxTxPower is declared on line 70
of WirelessChannel.h. From what I can see, this variable is assigned
in only one line of code, and read in three lines of code (shown
below). Is this just a vestige of a previous code change, or a hook
for a future change? I only ask out of curiosity -- it's clear to me
that it has no unexpected effect on the simulation operation, being
that it is 0.0.
In [1], it is noted that although X_sigma is a random process as a
function of time, the authors do not assume a dynamic environment, and
thus it is fixed for a particular link. From what I can see, it looks
like the authors' assumption is followed in Castalia -- the path loss
between two nodes is set in WirelessChannel::initialize() (with the
additional bidirectional sigma consideration), where it remains fixed
the entire simulation. The only factors that contribute to a node
receiving a message are this path loss, and interference; no
additional noise is added to the channel. (This is done with TOSSIM
[3], and I just want to verify this.) Are these assertions/assumptions
correct?
Also with regard to X, I see that omnetpp's normal() function is used
-- is the omnetpp RNG seed with the same value when rerunning a
simualtion configuration? (i.e., will my path losses be the same each
time I run a simulation?)
As always, thank you for your time and help!
Jon Szymaniak
======= Code Snippets =======
Assignment, line 513 of WirelessChannel.cc:
513 maxTxPower = 0.0;
Read, line 192--194 of WirelessChannel.cc:
192 float distanceThreshold = d0 *
193 pow(10.0,(maxTxPower - signalDeliveryThreshold - PLd0 + 3 *
sigma) /
194 (10.0 * pathLossExponent));
Read, lines 237--240
237 if (maxTxPower - PLd - bidirectionalPathLossJitter >=
signalDeliveryThreshold) {
238 pathLoss[i].push_front(new PathLossElement(j,PLd +
bidirectionalPathLossJitter));
239 totalElements++; //keep track of pathLoss size for
reporting purposes
240 }
Read,
242 if (maxTxPower - PLd + bidirectionalPathLossJitter >=
signalDeliveryThreshold) {
243 pathLoss[j].push_front(new PathLossElement(i,PLd -
bidirectionalPathLossJitter));
244 totalElements++; //keep track of pathLoss size for
reporting purposes
245 }
====== References =======
[1] M. Zuniga and B. Krishnamachari, “Analyzing the transitional
region in low power wireless links,” 2004 First Annual IEEE
Communications Society Conference on Sensor and Ad Hoc Communications
and Networks, 2004. IEEE SECON 2004., 2004, pp. 517-526.
[2] K. Sohrabi, B. Manriquez, and G.J. Pottie, “Near ground wideband
channel measurement in 800-1000 MHz,” 1999 IEEE 49th Vehicular
Technology Conference (Cat. No.99CH36363), 1999, pp. 571-574.
[3]
http://www.tinyos.net/tinyos-2.x/doc/html/tutorial/usc-topologies.html