我想生成IoT网络通过网关路由器通过ipv6进行通信的场景本机意味着在模拟器上我没有真正要测试的东西。
如何让linux作为网关与Cooja模拟器通信?
答案 0 :(得分:1)
使用serial2pty
插件:https://github.com/cmorty/cooja-serial2pty
该插件创建一个虚拟串行端口(伪终端:PTY)。然后,您可以将该PHY作为Linux中的任何常规串行端口进行访问。
如果动态创建端口可能会出现问题 - 您将不知道PTY设备的名称。因此该插件还包括发现服务功能。它是一个TCP服务器,它返回PTY的名称。
这是可用于使用此发现服务获取PTY名称的Python代码:
address = "localhost"
port = 6100
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(3.0)
sock.connect((address, port))
data = ""
while True:
c = sock.recv(1)
if c not in ['/', '.'] and not c.isalnum():
break
data += c
if len(data) > 100: break
sock.close()
return data