| #!/usr/bin/python3 |
| |
| import sys |
| import dbus |
| |
| if len(sys.argv) < 2 or len(sys.argv) > 3: |
| print("Usage: %s [device] <mac>" % (sys.argv[0])) |
| sys.exit(1) |
| |
| bus = dbus.SystemBus() |
| device = None |
| |
| if len(sys.argv) == 2: |
| manager = dbus.Interface(bus.get_object("net.connman.iwd", "/"), |
| "org.freedesktop.DBus.ObjectManager") |
| objects = manager.GetManagedObjects() |
| for path in objects: |
| for interface in objects[path]: |
| if interface == "net.connman.iwd.StationDebug": |
| device = dbus.Interface(bus.get_object("net.connman.iwd", path), |
| "net.connman.iwd.StationDebug") |
| break |
| |
| if not device: |
| print("StationDebug interface not found") |
| exit() |
| |
| mac = sys.argv[1] |
| else: |
| device = dbus.Interface(bus.get_object("net.connman.iwd", sys.argv[1]), |
| "net.connman.iwd.StationDebug") |
| mac = sys.argv[2] |
| |
| mac = mac.replace(':', '') |
| device.Roam(dbus.ByteArray.fromhex(mac)) |