Groovy 如何使用它获取节点的位置';脚本中的地址是什么?

Groovy 如何使用它获取节点的位置';脚本中的地址是什么?,groovy,location,unetstack,Groovy,Location,Unetstack,我编写了一个transmit cmd,它将地址和数据作为输入,并将数据发送到该节点。我试图使用节点的地址获取节点的位置,但它显示空值,但数据传输成功。 为什么会发生这种情况?解决方案是什么 例如: transmit 2,[1,2,3] //transmit data [1,2,3] to node-2 transmit = { addr, data -> println "TRANSMIT $addr, $data" println phy << new

我编写了一个transmit cmd,它将地址和数据作为输入,并将数据发送到该节点。我试图使用节点的地址获取节点的位置,但它显示空值,但数据传输成功。
为什么会发生这种情况?解决方案是什么

例如:

transmit 2,[1,2,3]   //transmit data [1,2,3] to node-2

transmit = { addr, data ->
    println "TRANSMIT $addr, $data"
    println phy << new DatagramReq(to: addr, protocol: Protocol.MAC, data: data)
    NodeInfo n = new NodeInfo(addr)
    println 'location = '+n.getLocation()
    println 'Address :'+addr+'\nData :'+data

    def txNtf = receive(TxFrameNtf, 1000)

    println txNtf  
}
transmit 2[1,2,3]//将数据[1,2,3]传输到节点2
传输={addr,data->
println“传输$addr,$data”
println phy您的代码:

NodeInfo n = new NodeInfo(addr)
println 'location = '+n.getLocation()
创建节点信息对象并尝试从中获取
位置
。默认情况下,此类对象没有任何
位置
,因此您将获得一个
null
值。您创建的对象不引用节点上运行的节点信息代理

您可能打算从节点信息代理获取信息,您需要查找该信息,而不是尝试在本地创建。示例代码段:

def n = agentForService org.arl.unet.Services.NODE_INFO
println 'location = '+n.location

嗨,你能在你正在运行的模拟器脚本中分享一下吗?
def n = agentForService org.arl.unet.Services.NODE_INFO
println 'location = '+n.location