omnet++ - 如何在 Inet 4.2 中更改传输功率
问题描述
Inet 4.2中如何改变无线节点的传输功率?Inet 的哪些类和函数代码应该更改?比如我想在仿真时间内动态改变发射功率每秒增加0.1mW,如下:
- 在模拟开始时间 2mW
- 在第 1 秒仿真时间,2.1mW(当仿真时间=1 时节点的 TX power 应该是 2.1mW)
- 在第 2 秒仿真时间内,2.2mW
- 等等。
谢谢
解决方案
当然,您可以根据需要动态改变传输功率。
在您的 .CC
首先,找到你的发射器并正确地介绍它的名字,得到它的指针如下:
cModule * transmitter = getParentModule()->getSubmodule("ieee80211Nic2")->getSubmodule("radio")->getSubmodule("transmitter");
flatTransmitter = const_cast<FlatTransmitterBase *>(check_and_cast<const FlatTransmitterBase *>(transmitter));
(根据您的发射器放置位置删除或添加getParentModule)
从 dB 到 W 的功率传输转换:
pt_w = pow(10.0, pt_dbm/10)/1000;
使用 FlatTransmitter 对象改变传输功率:
flatTransmitter->setPower(W(pt_w));
在你的 .H
double pt_dbm;
double pt_w;
不要忘记在 .cc 和 .h 中包含 FlatTransmitterBase.h 标头:
#include "inet/physicallayer/base/packetlevel/FlatTransmitterBase.h"
请注意,如果您的 OMNeT++ 版本不同,此过程可能会有所不同。
推荐阅读
- javascript - 如何将项目和按钮添加为编号列表
- struct - 了解线程安全的 RwLock
> Rust 中的机制 - python - Discord 令牌加入者与 discord.py
- sql - 如果一个值是字符串,则在 SQL 中过滤掉整个 ID
- android - 我可以为具有相同 kaystore 不同包名称的多个客户端签署相同的应用程序吗?
- haskell - 分级偏序(从拓扑排序开始)
- node.js - 开发使用远程服务器 API 的 React 应用程序
- sql - 2列之间的SQL日期时间差
- xcode - Xcode 10.1 - HIgh Sierra - RealmSwift 构建失败并出现大量错误
- python - Python:未定义名称“RandomOverSampler”