未知协议:protocolId = 92,protocolName = CbdProto,servicePrimitive = REQUEST
Unknown protocol: protocolId = 92, protocolName = CbdProto, servicePrimitive = REQUEST
我尝试使用 INET SensorNode 模块实现网络层协议。我正确地扩展了 NED 简单模块如下:
simple CbdProto extends NetworkProtocolBase like INetworkProtocol
{
@class(inet::CbdProto);
}
此协议通过扩展 class :
添加到 INET 协议列表 class (Protocol.cc)
在ProtocolNew.h
static const ProtocolNew CbdProto;
在ProtocolNew.cc
const ProtocolNew ProtocolNew::CbdProto("CbdProto","Network Protocol",ProtocolNew::NetworkLayer);
C++ class 已相应设置。我在 initialize() 方法中注册协议:
void inet::CbdProto::initialize(int stage) {
if (stage == INITSTAGE_NETWORK_LAYER) {
registerProtocol(ProtocolNew::CbdProto, gate("transportOut"), gate("transportIn"));
}
}
.ini文件如下:
**.hasIpv4 = false
**.hasIpv6 = false
**.hasGn = true
**.generic.typename = "SimpleNetworkLayer"
**.generic.np.typename = "CbdProto"
但我一直遇到这个错误,我不知道如何修复它。
<!> handlePacket(): Unknown protocol: protocolId = 92, protocolName = CbdProto, servicePrimitive = REQUEST, pathStartGate = WsnCbd.s[0].udp.ipOut, pathEndGate = WsnCbd.s[0].tn.in[0] -- in module (inet::MessageDispatcher) WsnCbd.s[0].tn (id=18), at t=0s, event #6
拜托,我会感谢你的意见。
谢谢
- 您不必创建新的 class。您只需将新协议添加到 Protocol.cc 和 .h 文件,添加到现有的
Protocol
。 (不要忘记在 .cc
文件中创建一个实例。
- 您的新协议向上层提供了服务,因此您必须在协议代码中使用
registerService()
。
我尝试使用 INET SensorNode 模块实现网络层协议。我正确地扩展了 NED 简单模块如下:
simple CbdProto extends NetworkProtocolBase like INetworkProtocol
{
@class(inet::CbdProto);
}
此协议通过扩展 class :
添加到 INET 协议列表 class (Protocol.cc)在ProtocolNew.h
static const ProtocolNew CbdProto;
在ProtocolNew.cc
const ProtocolNew ProtocolNew::CbdProto("CbdProto","Network Protocol",ProtocolNew::NetworkLayer);
C++ class 已相应设置。我在 initialize() 方法中注册协议:
void inet::CbdProto::initialize(int stage) {
if (stage == INITSTAGE_NETWORK_LAYER) {
registerProtocol(ProtocolNew::CbdProto, gate("transportOut"), gate("transportIn"));
}
}
.ini文件如下:
**.hasIpv4 = false
**.hasIpv6 = false
**.hasGn = true
**.generic.typename = "SimpleNetworkLayer"
**.generic.np.typename = "CbdProto"
但我一直遇到这个错误,我不知道如何修复它。
<!> handlePacket(): Unknown protocol: protocolId = 92, protocolName = CbdProto, servicePrimitive = REQUEST, pathStartGate = WsnCbd.s[0].udp.ipOut, pathEndGate = WsnCbd.s[0].tn.in[0] -- in module (inet::MessageDispatcher) WsnCbd.s[0].tn (id=18), at t=0s, event #6
拜托,我会感谢你的意见。
谢谢
- 您不必创建新的 class。您只需将新协议添加到 Protocol.cc 和 .h 文件,添加到现有的
Protocol
。 (不要忘记在.cc
文件中创建一个实例。 - 您的新协议向上层提供了服务,因此您必须在协议代码中使用
registerService()
。