从代理设置物理通道参数

Setting physical channel parameters from an agent

在我的代理的启动方法中,我得到物理代理的代理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、DATA)。
如何指定更改功率级别的通道类型?

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

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 docs.