OMNET++ FLoRa仿真录制pcap文件报错,求无需C++的解决方法
解决FLoRa仿真中INET pcap录制的序列化器错误
错误原因
全局启用了crcMode = "computed",导致FLoRa网关的UDP模块尝试为自定义的flora::LoRaMacFrame计算CRC,但INET的UdpCrcInsertionHook没有该自定义帧的序列化器,因此报错。
简易解决方案
方案1:缩小crcMode的作用范围
将全局的CRC配置改为仅对需要录制pcap的networkServer生效,避免影响FLoRa网关模块:
# 原全局配置 # **.crcMode = "computed" # 修改为仅针对networkServer *.networkServer.crcMode = "computed"
方案2:移除全局CRC配置(如果不需要CRC计算)
如果pcap录制不需要强制计算CRC,直接删除全局的**.crcMode = "computed"配置:
# pcap recorder settings **.pcapRecorder[*].alwaysFlush = true # 移除这行:**.crcMode = "computed" **.fcsMode = "computed"
方案3:过滤pcap录制的报文类型
如果需要保留全局CRC配置,给pcapRecorder添加报文过滤规则,跳过FLoRa自定义帧:
# 在networkServer的pcap配置后添加 *.networkServer.pcapRecorder[*].packetFilter = "not typename matches 'flora.*'"
这样就能避免INET尝试序列化无法识别的flora::LoRaMacFrame,同时正常录制所需的网络流量pcap文件。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

