※ 引述《killendthis ( )》之铭言:
: 各位版友好,小弟由于课业上的需要
: 要进行网络模拟,而模拟的情境是:在无线传感网络中进行物件追踪
: (例如在一车辆在无线传感网络中移动,节点要能够传感到此物体)
: 由于小弟在这方面是超级新手,所以有点不知道该怎么下手
要在Sensor节点写一个 Timer,
(Timer 怎么写自己去查, 或参考有用到Timer的 protocol 原始码)
每个Sensor节点"定期"侦测自己与 vehicle 之间的距离
也就是每当 你写的 Timer 到期, 就执行Sensor的侦测动作。
以下为虚拟码:
void detectTimer::expire (Event *e){
double x1,y1,z1; nsaddr_t addr;
addr1 =a_->addr(); //取得Sensor节点 address
//a_ 为 detectTimer 内的 *a_ 指标
MobileNode *mnode_=(MobileNode*)(Node::get_node_by_address(addr1));
mnode_->getLoc(&x1,&y1,&z1); //取得 sensor 座标
for() // 写个for 循环侦测, index 为每台车辆的 vehicle_addr
{
double x2,y2,z2;
MobileNode *mnode_=(MobileNode*)(Node::get_node_by_address(vehicle_addr));
mnode_->getLoc(&x2,&y2,&z2); //取得 vehicle 座标
float dist = a_->GetDistance(x1,y1,z1,x2,y2,z2,);
//自己去写个计算距离的函数
if (dist < DETECT_DISTANCE) //车辆与Sensor 距离小于 Sensor 侦测范围
{
//执行侦测到车辆的动作
}
resched(DETECT_TIME); //设定下次侦测时间
}
: 看了某些文章后,好像很多网络模拟都是借由ns-2来进行模拟
: 因此小弟就上网找看看有没有相关的ns-2简单范例可以参考
: 但是找了一阵子,好像都没有这方面的范例??
最好的范例就是安装完 NS-2后的那些原始 protocols,
要什么功能, 去找那些 source code 里面的相同功能就是了。
: 因此想请问一下各位版大,
: 1.要进行这类的模拟还有其他模拟工具可以使用吗?或是用其他语言自己写??
一堆, NS-3, GloMoSim, Qualnet, OPNET, ....
也有一些 Network simulator 是用java写protocol的。
也有人用 Matlab 做 Network simulations
: 2.如果是使用ns-2的话,有没有什么范例或是教学网页可以让小弟参考的??
: (例如要安装什么extension等,希望能有范例能够参考)
: 希望各位版大能给点建议,谢谢<(_ _)>
基础的教学不说了, 网络上搜寻一堆
进阶的一些功能写法,好像没有一个很好的网站蒐集比较精彩的范例
不过通常我都会去 http://www.isi.edu/nsnam/htdig/search.html
搜寻一下别人有没有遇到同样的问题。
※ 编辑: MaSiJoHo 来自: 140.118.110.62 (04/29 04:04)