【发布时间】:2019-09-24 14:36:07
【问题描述】:
我想初始化一个 5 秒计数器并发送一条消息。如果在 5 秒结束前收到响应消息,则定时器中断并采取行动。但是,如果计时器结束并且没有收到任何消息,则将执行另一个操作。
我想设置一个常量“timer = 5”,并在一个带有“IF”的“For”循环中将其递减,但所花费的时间不会记录为模拟时间。
如何使这个实现反映模拟时间?
【问题讨论】:
我想初始化一个 5 秒计数器并发送一条消息。如果在 5 秒结束前收到响应消息,则定时器中断并采取行动。但是,如果计时器结束并且没有收到任何消息,则将执行另一个操作。
我想设置一个常量“timer = 5”,并在一个带有“IF”的“For”循环中将其递减,但所花费的时间不会记录为模拟时间。
如何使这个实现反映模拟时间?
【问题讨论】:
正如您正确指出的那样,OMNeT++ 中的每个事件都假定花费零时间。如果您希望某个事件在未来几秒钟内发生某些事情,则需要使用例如 OMNeT++ 内置 scheduleAt 或 TimerManager 的 Veins 5a2 便捷方法来安排另一个事件类(参见VeinsInetSampleApplication 示例)。
【讨论】: