从 RSU 向 Veins 中的节点发送 ACK
Sending ACKs from RSU to Nodes in Veins
我正在尝试在收到消息时向节点发送 Ack。我能够获取帧 ID,但无法弄清楚如何在我的消息中包含此帧 ID 并广播它?任何指针?这会有所帮助。谢谢
更新:这是我正在尝试做的事情,当 RSU 在函数 BaseWaveApplLayer::handleLowerMsg 中收到消息时,我正在提取帧 ID 并发送 Ack。我面临的问题是在使用 sendDown 时,我收到错误消息,指出已经计划发送一个事件。如何正确安排消息?我正在使用 sendDown(msg)。
我没有得到正确的框架 ID,我使用了封装的框架 ID 但它给出了不同的值,我如何从 BasicSafetyMessage 或 cMessage 获取框架 ID?
代码:
void BaseWaveApplLayer::handleLowerMsg(cMessage* msg) {
WaveShortMessage* wsm = dynamic_cast<WaveShortMessage*>(msg);
ASSERT(wsm);
if (BasicSafetyMessage* bsm = dynamic_cast<BasicSafetyMessage*>(wsm)) {
receivedBSMs++;
onBSM(bsm);
if(isBaseStation())
{
BasicSafetyMessage* Ack= new BasicSafetyMessage();
populateWSM(Ack);
Ack->setWsmData(getFrameId(bsm));
EV<<" Sending Ack Frame ID"<<getFrameId(bsm);
sendDown(Ack);
}
else
{
EV<<"Received FrameId"<<bsm->getWsmData();
std::string str( bsm->getWsmData());
int FrameId= std::atoi(str.c_str());
checkIds(FrameId);
}
}}
您需要创建一个新的消息类型,将 frameId
添加为参数以确认为参数。在接收器上,您可以将它的值与您发送的数据包进行比较。有关提示,请参阅 OMNeT++ user manual to find out how to create new messages. Also see 。
我正在尝试在收到消息时向节点发送 Ack。我能够获取帧 ID,但无法弄清楚如何在我的消息中包含此帧 ID 并广播它?任何指针?这会有所帮助。谢谢
更新:这是我正在尝试做的事情,当 RSU 在函数 BaseWaveApplLayer::handleLowerMsg 中收到消息时,我正在提取帧 ID 并发送 Ack。我面临的问题是在使用 sendDown 时,我收到错误消息,指出已经计划发送一个事件。如何正确安排消息?我正在使用 sendDown(msg)。
我没有得到正确的框架 ID,我使用了封装的框架 ID 但它给出了不同的值,我如何从 BasicSafetyMessage 或 cMessage 获取框架 ID?
代码:
void BaseWaveApplLayer::handleLowerMsg(cMessage* msg) {
WaveShortMessage* wsm = dynamic_cast<WaveShortMessage*>(msg);
ASSERT(wsm);
if (BasicSafetyMessage* bsm = dynamic_cast<BasicSafetyMessage*>(wsm)) {
receivedBSMs++;
onBSM(bsm);
if(isBaseStation())
{
BasicSafetyMessage* Ack= new BasicSafetyMessage();
populateWSM(Ack);
Ack->setWsmData(getFrameId(bsm));
EV<<" Sending Ack Frame ID"<<getFrameId(bsm);
sendDown(Ack);
}
else
{
EV<<"Received FrameId"<<bsm->getWsmData();
std::string str( bsm->getWsmData());
int FrameId= std::atoi(str.c_str());
checkIds(FrameId);
}
}}
您需要创建一个新的消息类型,将 frameId
添加为参数以确认为参数。在接收器上,您可以将它的值与您发送的数据包进行比较。有关提示,请参阅 OMNeT++ user manual to find out how to create new messages. Also see