2

在我的代理的启动方法中,我得到物理代理的代理 ID:
phy = agentForService(Services.PHYSICAL)

然后我尝试了不同的方法来设置 powerLevel 但通常是这样的:
phy.send(new ParameterReq().set(PhysicalChannelParam.powerLevel, -20))
phy.send(new ParameterReq().set(PhysicalChannelParam.powerLevel, [-20 -20 -20])) phy.set(PhysicalChannelParam.powerLevel, [-20 -20 -20]

它们都不起作用。
我猜这是因为有多个物理通道(控制,数据)。
如何指定要更改功率级别的通道类型?

编辑:
一个解决方案显然是直接更改参数:
control_channel = phy[1]
control_channel.powerLevel = -20
但是,这感觉就像违反了 Fjåge 背后的基本思想。

4

1 回答 1

2

phy[1].powerLevel = -20语法只是大致的语法糖:

def phy = agentForService(Services.PHYSICAL)
def req = new ParameterReq(phy)
req.setIndex(1)
req.set(PhysicalChannelParam.powerLevel, -20)
def rsp = request(req, 1000)
assert rsp?.get(PhysicalChannelParam.powerLevel) == -20

req.setIndex(1)是你缺少的神奇成分。

另请参阅:ParameterReq API 文档

于 2020-11-26T01:00:52.287 回答