在向量结果记录器中记录元组
Record tuples in the vector result recorder
我是 运行 OMNeT++ 4.4 中的模拟,其中我的节点发出的结果本质上是一个元组。元组的值是相互依赖的,所有节点都会发出它们;即,在单个 simtime 中发出了几个这样的元组。元组不能 "compressed" 分解为单个双精度值。
我想把这些元组记录在一个向量中。有没有办法发出用于统计收集的数据结构并将其记录在 OMNeT++ 创建的 *.vec 文件中?我不关心 NED 文件中可用于此特定信号的统计函数。
举个简单的例子,假设我有
typedef boost::tuple<boost::DateTime, bool, Unit::Watt, Unit::VAr> MyTuple;
某处作为我要发出的信号的数据类型。有没有办法
MyTuple myTuple( /* ... data ... */ );
emit(mySignal, myTuple);
在我的源代码中并将其记录在常规 .vec
结果文件中,例如:
vector 1 MyNodeName MyResultVectorName TV
1 14.126 2013-01-22T23:22:19+10:00 true 125300 12000
如果不可能,仍然使用 OMNeT 的信号机制但自己创建输出文件的最佳方法是什么?
默认情况下 OMNeT++ 无法保存元组(因为内置工具无论如何都无法处理它),但是信号可以携带 cObject
与标量值的传输方式类似。从 cObject
派生你的元组,你将能够用信号发射它。显然,您还必须编写并注册一个可以处理给定数据类型并写入文件的 ResultRecorder(派生自 cResultRecorder
)。
我是 运行 OMNeT++ 4.4 中的模拟,其中我的节点发出的结果本质上是一个元组。元组的值是相互依赖的,所有节点都会发出它们;即,在单个 simtime 中发出了几个这样的元组。元组不能 "compressed" 分解为单个双精度值。
我想把这些元组记录在一个向量中。有没有办法发出用于统计收集的数据结构并将其记录在 OMNeT++ 创建的 *.vec 文件中?我不关心 NED 文件中可用于此特定信号的统计函数。
举个简单的例子,假设我有
typedef boost::tuple<boost::DateTime, bool, Unit::Watt, Unit::VAr> MyTuple;
某处作为我要发出的信号的数据类型。有没有办法
MyTuple myTuple( /* ... data ... */ );
emit(mySignal, myTuple);
在我的源代码中并将其记录在常规 .vec
结果文件中,例如:
vector 1 MyNodeName MyResultVectorName TV
1 14.126 2013-01-22T23:22:19+10:00 true 125300 12000
如果不可能,仍然使用 OMNeT 的信号机制但自己创建输出文件的最佳方法是什么?
默认情况下 OMNeT++ 无法保存元组(因为内置工具无论如何都无法处理它),但是信号可以携带 cObject
与标量值的传输方式类似。从 cObject
派生你的元组,你将能够用信号发射它。显然,您还必须编写并注册一个可以处理给定数据类型并写入文件的 ResultRecorder(派生自 cResultRecorder
)。