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 " passphrase <service> [passphrase]"
17 print " autoconnect <service> [autoconnect]"
18 print " connect <service>"
19 print " disconnect <service>"
20 print " remove <service>"
23 print " enable <type>"
24 print " disable <type>"
25 print " offlinemode [on|off]"
27 print " dev <interface>"
28 print " dev <interface> scan"
29 print " dev <interface> networks"
30 print " dev <interface> connect <network>"
31 print " dev <interface> disconnect [network]"
32 print " dev <interface> powered [on|off]"
35 def print_properties(path, properties):
36 print "[ %s ]" % (path)
37 for key in properties.keys():
41 if key in ["Powered", "Scanning", "Connected",
42 "Available", "Remember", "Default"]:
43 if properties[key] == dbus.Boolean(1):
47 elif key in ["Strength", "Priority"]:
48 val = int(properties[key])
50 val = str(properties[key])
52 print " %s = %s" % (key, val)
54 if "Networks" in properties.keys():
56 for path in properties["Networks"]:
58 list = list + val[val.rfind("/") + 1:] + " "
59 print " Networks = [ %s]" % (list)
61 def print_networks(networks):
63 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
64 "org.moblin.connman.Network")
66 properties = network.GetProperties()
68 if properties["Connected"] == dbus.Boolean(1):
73 if "Name" in properties.keys():
74 name = properties["Name"]
78 strength = int(properties["Strength"])
82 details += "{" + properties["WiFi.Mode"] + "} "
86 details += "{" + properties["WiFi.Security"] + "} "
89 if "WiFi.Passphrase" in properties.keys():
90 if properties["WiFi.Passphrase"] != "":
91 details += "{passphrase present}"
93 print "%s %-26s %3d%% %s" % (connected,
94 name, strength, details)
96 def select_network(networks, name):
98 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
99 "org.moblin.connman.Network")
101 properties = network.GetProperties()
103 if properties["Name"] != name:
106 if properties["Connected"] == dbus.Boolean(1):
107 print "Already connected to network %s" % (name)
110 print "Selecting network %s" % (name)
114 def disconnect_network(networks, name):
115 for path in networks:
116 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
117 "org.moblin.connman.Network")
119 properties = network.GetProperties()
121 if name != "" and properties["Name"] != name:
124 if properties["Connected"] == dbus.Boolean(1):
125 name = properties["Name"]
126 print "Disconnecting from network %s" % (name)
129 def print_services(services):
130 for path in services:
131 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
132 "org.moblin.connman.Service")
134 properties = service.GetProperties()
136 identifier = path[path.rfind("/") + 1:]
138 if properties["Favorite"] == dbus.Boolean(1):
143 if "Name" in properties.keys():
144 name = properties["Name"]
146 name = "{" + properties["Type"] + "}"
148 print "%s %-26s { %s }" % (favorite, name, identifier)
150 if sys.argv[1] == "state":
151 properties = manager.GetProperties()
153 print "System is %s" % (properties["State"])
155 elif sys.argv[1] in ["services", "list", "show"]:
156 properties = manager.GetProperties()
158 print_services(properties["Services"])
160 elif sys.argv[1] in ["passphrase", "pass"]:
161 if (len(sys.argv) < 3):
162 print "Need at least service parameter"
165 path = "/profile/default/" + sys.argv[2]
167 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
168 "org.moblin.connman.Service")
170 if (len(sys.argv) > 3):
171 passphrase = sys.argv[3]
173 service.SetProperty("Passphrase", passphrase);
175 print "Passphrase %s set for %s" % (passphrase, sys.argv[2])
177 properties = service.GetProperties()
179 if "Name" in properties.keys():
180 name = properties["Name"]
182 name = "{" + properties["Type"] + "}"
184 if "Passphrase" in properties.keys():
185 passphrase = properties["Passphrase"]
187 passphrase = "not set"
189 print "Passphrase for %s is %s" % (name, passphrase)
191 elif sys.argv[1] in ["autoconnect", "autoconn"]:
192 if (len(sys.argv) < 3):
193 print "Need at least service parameter"
196 path = "/profile/default/" + sys.argv[2]
198 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
199 "org.moblin.connman.Service")
201 if (len(sys.argv) > 3):
202 autoconnect = dbus.Boolean(sys.argv[3])
204 service.SetProperty("AutoConnect", autoconnect);
206 print "Auto connect %s for %s" % (autoconnect, sys.argv[2])
208 properties = service.GetProperties()
210 if "Name" in properties.keys():
211 name = properties["Name"]
213 name = "{" + properties["Type"] + "}"
215 if "AutoConnect" in properties.keys():
216 autoconnect = properties["AutoConnect"]
218 autoconnect = dbus.Boolean(0)
220 print "Auto connect %s for %s" % (autoconnect, name)
222 elif sys.argv[1] in ["connect", "conn"]:
223 if (len(sys.argv) < 3):
224 print "Need at least service parameter"
227 path = "/profile/default/" + sys.argv[2]
229 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
230 "org.moblin.connman.Service")
233 service.Connect(timeout=60000)
234 except dbus.DBusException, error:
235 print "%s: %s" % (error._dbus_error_name, error.message)
237 elif sys.argv[1] in ["disconnect", "disc"]:
238 if (len(sys.argv) < 3):
239 print "Need at least service parameter"
242 path = "/profile/default/" + sys.argv[2]
244 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
245 "org.moblin.connman.Service")
249 except dbus.DBusException, error:
250 print "%s: %s" % (error._dbus_error_name, error.message)
252 elif sys.argv[1] in ["remove"]:
253 if (len(sys.argv) < 3):
254 print "Need at least service parameter"
257 path = "/profile/default/" + sys.argv[2]
259 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
260 "org.moblin.connman.Service")
262 properties = service.GetProperties()
264 if properties["Favorite"] == dbus.Boolean(0):
265 print "Only favorite services can be removed"
270 except dbus.DBusException, error:
271 print "%s: %s" % (error._dbus_error_name, error.message)
273 elif sys.argv[1] == "scan":
274 if len(sys.argv) > 2:
275 manager.RequestScan(sys.argv[2])
277 manager.RequestScan("")
279 elif sys.argv[1] == "enable":
280 if len(sys.argv) > 2:
281 manager.EnableTechnology(sys.argv[2])
283 manager.EnableTechnology("")
285 elif sys.argv[1] == "disable":
286 if len(sys.argv) > 2:
287 manager.DisableTechnology(sys.argv[2])
289 manager.DisableTechnology("")
291 elif sys.argv[1] in ["offlinemode", "flightmode"]:
292 if len(sys.argv) > 2:
293 if sys.argv[2] == "on":
294 active = dbus.Boolean(1)
295 elif sys.argv[2] == "off":
296 active = dbus.Boolean(0)
298 active = dbus.Boolean(sys.argv[2])
299 manager.SetProperty("OfflineMode", active)
301 properties = manager.GetProperties()
302 print "Offline mode is %s" % (properties["OfflineMode"])
304 elif sys.argv[1] == "dev":
305 properties = manager.GetProperties()
312 if len(sys.argv) > 2:
313 interface = sys.argv[2]
314 if len(sys.argv) > 3:
315 command = sys.argv[3]
316 if len(sys.argv) > 4:
319 for path in properties["Devices"]:
320 device = dbus.Interface(bus.get_object("org.moblin.connman", path),
321 "org.moblin.connman.Device")
323 properties = device.GetProperties()
325 if interface != "" and properties["Interface"] != interface:
328 if command == "scan":
329 if properties["Type"] in ["wifi", "wimax"]:
330 interface = properties["Interface"]
331 print "Scan for device %s" % (interface)
334 print "No scanning for device %s" % (interface)
335 elif command in ["networks", "net"]:
336 if "Networks" in properties.keys():
337 print_networks(properties["Networks"])
339 print "Device has no networks"
340 elif command in ["connect", "conn"] and value != "":
341 if "Networks" in properties.keys():
342 select_network(properties["Networks"], value)
344 print "Device can't connect networks"
345 elif command in ["connect", "conn"]:
346 print "Need to specify network"
347 elif command in ["disconnect", "disc"] and value != "":
348 if "Networks" in properties.keys():
349 disconnect_network(properties["Networks"], value)
351 print "Device has no networks"
352 elif command in ["discconnect", "disc"]:
353 if "Networks" in properties.keys():
354 disconnect_network(properties["Networks"], "")
356 print "Device has no networks"
357 elif command == "powered" and value != "":
359 powered = dbus.Boolean(1)
361 powered = dbus.Boolean(0)
363 powered = dbus.Boolean(value)
364 device.SetProperty("Powered", powered)
365 elif command == "powered":
366 interface = properties["Interface"]
367 if properties["Powered"] == dbus.Boolean(1):
371 print "Device %s is powered %s" % (interface, powered)
372 elif command == "list" or command == "":
373 print_properties(path, properties)
375 print "Unknown command"
378 print "Unknown command"