gpt4 book ai didi

unetstack - unetpy 中的 RxFrameNtf、TxFrameNtf 和 Ntf.data

转载 作者:行者123 更新时间:2023-12-04 02:59:03 24 4
gpt4 key购买 nike

我正在使用 Unetstack 软件和 Unetpy。我希望在运行导入 Unetpy python 库的 .py 文件时检索传输和接收通知。我关注了this tutorial

我能够成功连接到本地主机并打印 phy.MTU 等值。当我传输一个数据包时,我还会在命令提示符下收到一个回复​​,上面写着 AGREE。 output_of_my_script enter image description here my_script

enter image description here你能帮我接收 Txframentf 和 rxframentf 以及数据负载吗?

我已对 this link 中建议的错误报告进行了更改甚至。请指导我如何打印 rxframe 和 txframe 的通知。谢谢``

最佳答案

您的脚本在最后一行之前都没有问题:

print(phy << org_arl_unet_phy.TxFrameNtf())

此处您正尝试向物理代理发送一个TxFrameNtf。这是没有意义的,因为是物理代理在传输完成时向您发送此类通知。

当您到达此行时,只要传输在 5 秒内完成 (timeout=5000),您应该已经收到 txntf 通知。要打印通知,您需要做的就是:

print(txntf)

我刚刚针对 3-node-network.groovy 示例对此进行了测试。我正在使用 unetpy-1.3b5fjagepy-1.4.2b3。这是修改后的代码:

from unetpy import *
modem = UnetGateway('localhost', 1102)
phy = modem.agentForService(Services.PHYSICAL)
print(phy.MTU)
print(phy.basebandRate)
print(phy << org_arl_unet_phy.TxFrameReq(to=3, data=[1,2,3,4]))
txntf = modem.receive(timeout=5000)
print(txntf)

和输出:

16
4096
AGREE
TxFrameNtf:INFORM[type:1]

可以看到TxFrameNtf被正确接收了。

对于接收,你需要订阅代理的通知,然后接收一个帧:

modem.subscribe(phy)
rxntf = modem.receive(org_arl_unet_phy.RxFrameNtf, timeout=5000)
print(rxntf)

假设您在指定的 5 秒超时内收到一个帧(在此示例中,在节点 3 上),这应该打印出如下内容:

RxFrameNtf:INFORM[type:CONTROL from:1 to:3 protocol:0 rxTime:34587658 (4 bytes)]

关于unetstack - unetpy 中的 RxFrameNtf、TxFrameNtf 和 Ntf.data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50999448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com