$ParameterName 定义的 INET sink 节点的位置未更新
Position of INET sink node defined by $ParameterName is not updated
我搭建了一个无线传感器网络如下。(强调sink节点定义)
import inet.physicallayer.wireless.apsk.packetlevel.ApskScalarRadioMedium;
import inet.node.inet.SensorNode;
network SensorNetwork
{
int numNodes = default(15);
string interfaceTableModule = default("interfaceTable");
int areaX @unit(m) = 500m;
int areaY @unit(m) = 500m;
int sinkX @unit(m) = int (this.areaX*(0.5));
int sinkY @unit(m) = this.areaY;
@display("bgb=$areaX,$areaY;bgu=m");
submodules:
sink: SensorNode {
@display("i=device/antennatower;p=$sinkX,$sinkY");
}
node[numNodes]: SensorNode;
radioMedium: ApskScalarRadioMedium {
@display("p=45,79");
}
}
我想强调一个事实,即接收器位置由参数给出。当我运行这个项目,去查看sink节点的移动子模块相关的细节时,我发现最后的位置坐标是(lastPosition (Coord) (0, 0, 0) m
),而它应该有sink的当前坐标网络中的节点。
当我删除参数并将数值从 @display("p=500,500;i=device/antennatower");
赋给 X 和 Y 时,位置更新为 (lastPosition (Coord) (500, 500, 0) m
).
如何解决?
非常感谢您的建议。
提前致谢。
当我尝试重现它时(我正在使用 omnetpp-pre13 开发分支 + inet 4.4 开发分支),我得到一个错误:
Mobility position is not a finite number after initialize (x=-nan,y=-nan,z=-nan) -- in module (inet::StationaryMobility)
但是,您可以通过 .INI 文件中的移动模块指定节点位置(initialX
、initialY
、initialZ
参数),我认为这是预期的方式。您也可以为那里的位置使用变量。
我搭建了一个无线传感器网络如下。(强调sink节点定义)
import inet.physicallayer.wireless.apsk.packetlevel.ApskScalarRadioMedium;
import inet.node.inet.SensorNode;
network SensorNetwork
{
int numNodes = default(15);
string interfaceTableModule = default("interfaceTable");
int areaX @unit(m) = 500m;
int areaY @unit(m) = 500m;
int sinkX @unit(m) = int (this.areaX*(0.5));
int sinkY @unit(m) = this.areaY;
@display("bgb=$areaX,$areaY;bgu=m");
submodules:
sink: SensorNode {
@display("i=device/antennatower;p=$sinkX,$sinkY");
}
node[numNodes]: SensorNode;
radioMedium: ApskScalarRadioMedium {
@display("p=45,79");
}
}
我想强调一个事实,即接收器位置由参数给出。当我运行这个项目,去查看sink节点的移动子模块相关的细节时,我发现最后的位置坐标是(lastPosition (Coord) (0, 0, 0) m
),而它应该有sink的当前坐标网络中的节点。
当我删除参数并将数值从 @display("p=500,500;i=device/antennatower");
赋给 X 和 Y 时,位置更新为 (lastPosition (Coord) (500, 500, 0) m
).
如何解决?
非常感谢您的建议。
提前致谢。
当我尝试重现它时(我正在使用 omnetpp-pre13 开发分支 + inet 4.4 开发分支),我得到一个错误:
Mobility position is not a finite number after initialize (x=-nan,y=-nan,z=-nan) -- in module (inet::StationaryMobility)
但是,您可以通过 .INI 文件中的移动模块指定节点位置(initialX
、initialY
、initialZ
参数),我认为这是预期的方式。您也可以为那里的位置使用变量。