8 manager = dbus.Interface(bus.get_object("org.moblin.connman", "/"),
9 "org.moblin.connman.Manager")
12 print "Usage: %s <command>" % (sys.argv[0])
16 print " apn <service> [apn]"
17 print " passphrase <service> [passphrase]"
18 print " autoconnect <service> [autoconnect]"
19 print " connect <service>"
20 print " disconnect <service>"
21 print " remove <service>"
24 print " enable <type>"
25 print " disable <type>"
26 print " offlinemode [on|off]"
28 print " dev <interface>"
29 print " dev <interface> scan"
30 print " dev <interface> networks"
31 print " dev <interface> connect <network>"
32 print " dev <interface> disconnect [network]"
33 print " dev <interface> powered [on|off]"
36 def print_properties(path, properties):
37 print "[ %s ]" % (path)
38 for key in properties.keys():
42 if key in ["Powered", "Scanning", "Connected",
43 "Available", "Remember", "Default"]:
44 if properties[key] == dbus.Boolean(1):
48 elif key in ["Strength", "Priority"]:
49 val = int(properties[key])
51 val = str(properties[key])
53 print " %s = %s" % (key, val)
55 if "Networks" in properties.keys():
57 for path in properties["Networks"]:
59 list = list + val[val.rfind("/") + 1:] + " "
60 print " Networks = [ %s]" % (list)
62 def print_networks(networks):
64 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
65 "org.moblin.connman.Network")
67 properties = network.GetProperties()
69 if properties["Connected"] == dbus.Boolean(1):
74 if "Name" in properties.keys():
75 name = properties["Name"]
79 strength = int(properties["Strength"])
83 details += "{" + properties["WiFi.Mode"] + "} "
87 details += "{" + properties["WiFi.Security"] + "} "
90 if "WiFi.Passphrase" in properties.keys():
91 if properties["WiFi.Passphrase"] != "":
92 details += "{passphrase present}"
94 print "%s %-26s %3d%% %s" % (connected,
95 name, strength, details)
97 def select_network(networks, name):
99 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
100 "org.moblin.connman.Network")
102 properties = network.GetProperties()
104 if properties["Name"] != name:
107 if properties["Connected"] == dbus.Boolean(1):
108 print "Already connected to network %s" % (name)
111 print "Selecting network %s" % (name)
115 def disconnect_network(networks, name):
116 for path in networks:
117 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
118 "org.moblin.connman.Network")
120 properties = network.GetProperties()
122 if name != "" and properties["Name"] != name:
125 if properties["Connected"] == dbus.Boolean(1):
126 name = properties["Name"]
127 print "Disconnecting from network %s" % (name)
130 def print_services(services):
131 for path in services:
132 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
133 "org.moblin.connman.Service")
135 properties = service.GetProperties()
137 identifier = path[path.rfind("/") + 1:]
139 if properties["Favorite"] == dbus.Boolean(1):
144 if "Name" in properties.keys():
145 name = properties["Name"]
147 name = "{" + properties["Type"] + "}"
149 print "%s %-26s { %s }" % (favorite, name, identifier)
151 if sys.argv[1] == "state":
152 properties = manager.GetProperties()
154 print "System is %s" % (properties["State"])
156 elif sys.argv[1] in ["services", "list", "show"]:
157 properties = manager.GetProperties()
159 print_services(properties["Services"])
161 elif sys.argv[1] in ["apn"]:
162 if (len(sys.argv) < 3):
163 print "Need at least service parameter"
166 path = "/profile/default/" + sys.argv[2]
168 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
169 "org.moblin.connman.Service")
171 if (len(sys.argv) > 3):
174 service.SetProperty("APN", apn);
176 print "APN %s set for %s" % (apn, sys.argv[2])
178 properties = service.GetProperties()
180 if "Name" in properties.keys():
181 name = properties["Name"]
183 name = "{" + properties["Type"] + "}"
185 if "APN" in properties.keys():
186 apn = properties["APN"]
190 print "APN for %s is %s" % (name, apn)
192 elif sys.argv[1] in ["passphrase", "pass"]:
193 if (len(sys.argv) < 3):
194 print "Need at least service parameter"
197 path = "/profile/default/" + sys.argv[2]
199 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
200 "org.moblin.connman.Service")
202 if (len(sys.argv) > 3):
203 passphrase = sys.argv[3]
205 service.SetProperty("Passphrase", passphrase);
207 print "Passphrase %s set for %s" % (passphrase, sys.argv[2])
209 properties = service.GetProperties()
211 if "Name" in properties.keys():
212 name = properties["Name"]
214 name = "{" + properties["Type"] + "}"
216 if "Passphrase" in properties.keys():
217 passphrase = properties["Passphrase"]
219 passphrase = "not set"
221 print "Passphrase for %s is %s" % (name, passphrase)
223 elif sys.argv[1] in ["autoconnect", "autoconn"]:
224 if (len(sys.argv) < 3):
225 print "Need at least service parameter"
228 path = "/profile/default/" + sys.argv[2]
230 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
231 "org.moblin.connman.Service")
233 if (len(sys.argv) > 3):
234 autoconnect = dbus.Boolean(sys.argv[3])
236 service.SetProperty("AutoConnect", autoconnect);
238 print "Auto connect %s for %s" % (autoconnect, sys.argv[2])
240 properties = service.GetProperties()
242 if "Name" in properties.keys():
243 name = properties["Name"]
245 name = "{" + properties["Type"] + "}"
247 if "AutoConnect" in properties.keys():
248 autoconnect = properties["AutoConnect"]
250 autoconnect = dbus.Boolean(0)
252 print "Auto connect %s for %s" % (autoconnect, name)
254 elif sys.argv[1] in ["connect", "conn"]:
255 if (len(sys.argv) < 3):
256 print "Need at least service parameter"
259 path = "/profile/default/" + sys.argv[2]
261 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
262 "org.moblin.connman.Service")
265 service.Connect(timeout=60000)
266 except dbus.DBusException, error:
267 print "%s: %s" % (error._dbus_error_name, error.message)
269 elif sys.argv[1] in ["disconnect", "disc"]:
270 if (len(sys.argv) < 3):
271 print "Need at least service parameter"
274 path = "/profile/default/" + sys.argv[2]
276 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
277 "org.moblin.connman.Service")
281 except dbus.DBusException, error:
282 print "%s: %s" % (error._dbus_error_name, error.message)
284 elif sys.argv[1] in ["remove"]:
285 if (len(sys.argv) < 3):
286 print "Need at least service parameter"
289 path = "/profile/default/" + sys.argv[2]
291 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
292 "org.moblin.connman.Service")
294 properties = service.GetProperties()
296 if properties["Favorite"] == dbus.Boolean(0):
297 print "Only favorite services can be removed"
302 except dbus.DBusException, error:
303 print "%s: %s" % (error._dbus_error_name, error.message)
305 elif sys.argv[1] == "scan":
306 if len(sys.argv) > 2:
307 manager.RequestScan(sys.argv[2])
309 manager.RequestScan("")
311 elif sys.argv[1] == "enable":
312 if len(sys.argv) > 2:
313 manager.EnableTechnology(sys.argv[2])
315 manager.EnableTechnology("")
317 elif sys.argv[1] == "disable":
318 if len(sys.argv) > 2:
319 manager.DisableTechnology(sys.argv[2])
321 manager.DisableTechnology("")
323 elif sys.argv[1] in ["offlinemode", "flightmode"]:
324 if len(sys.argv) > 2:
325 if sys.argv[2] == "on":
326 active = dbus.Boolean(1)
327 elif sys.argv[2] == "off":
328 active = dbus.Boolean(0)
330 active = dbus.Boolean(sys.argv[2])
331 manager.SetProperty("OfflineMode", active)
333 properties = manager.GetProperties()
334 print "Offline mode is %s" % (properties["OfflineMode"])
336 elif sys.argv[1] == "dev":
337 properties = manager.GetProperties()
344 if len(sys.argv) > 2:
345 interface = sys.argv[2]
346 if len(sys.argv) > 3:
347 command = sys.argv[3]
348 if len(sys.argv) > 4:
351 for path in properties["Devices"]:
352 device = dbus.Interface(bus.get_object("org.moblin.connman", path),
353 "org.moblin.connman.Device")
355 properties = device.GetProperties()
357 if "Interface" not in properties.keys():
360 if interface != "" and properties["Interface"] != interface:
363 if command == "scan":
364 if properties["Type"] in ["wifi", "wimax"]:
365 interface = properties["Interface"]
366 print "Scan for device %s" % (interface)
369 print "No scanning for device %s" % (interface)
370 elif command in ["networks", "net"]:
371 if "Networks" in properties.keys():
372 print_networks(properties["Networks"])
374 print "Device has no networks"
375 elif command in ["connect", "conn"] and value != "":
376 if "Networks" in properties.keys():
377 select_network(properties["Networks"], value)
379 print "Device can't connect networks"
380 elif command in ["connect", "conn"]:
381 print "Need to specify network"
382 elif command in ["disconnect", "disc"] and value != "":
383 if "Networks" in properties.keys():
384 disconnect_network(properties["Networks"], value)
386 print "Device has no networks"
387 elif command in ["discconnect", "disc"]:
388 if "Networks" in properties.keys():
389 disconnect_network(properties["Networks"], "")
391 print "Device has no networks"
392 elif command == "powered" and value != "":
394 powered = dbus.Boolean(1)
396 powered = dbus.Boolean(0)
398 powered = dbus.Boolean(value)
399 device.SetProperty("Powered", powered)
400 elif command == "powered":
401 interface = properties["Interface"]
402 if properties["Powered"] == dbus.Boolean(1):
406 print "Device %s is powered %s" % (interface, powered)
407 elif command == "list" or command == "":
408 print_properties(path, properties)
410 print "Unknown command"
413 print "Unknown command"