Created 2018年9月30日23:23
Updated 2018年9月30日23:24
Categories
ns3
SimpleChannelにDelayを設定したかったのですが、SimpleChannelオブジェクトにはDelayを設定する関数なりコンストラクタの引数なりが全くありませんでした(つらい)。
解決方法を調べたのですが結構時間かかったので備忘録として書いておきます。
この方法はSimpleChannelだけでなく他のチャネルでも使えそうなので、よければ参考にしてください。
from ns.core import Config, StringValue
Config.Set("/ChannelList/*/$ns3::SimpleChannel/Delay", StringValue("50ms"))
SimpleChannelのドキュメントを見るとprivate valueにDelayという値がありますが、ここを見る限り変更できません。
どうやら、Config.Set 関数でPrivateな値を変更できるようです(それはそれでどうなんだ)。
特定のデバイスだけを変更する場合は、/ChannelList/*
のアスタリスクをChannelのIDに変更する事で実現できるようです。
また、SimpleChannelだけでなく他のChannelやNetDeviceにも使えるようです。
他のやり方については参考サイトを載せておきますので、いろいろと試してみてください。