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 " connect <service>"
18 print " disconnect <service>"
19 print " remove <service>"
21 print " scan [ <interface> ]"
22 print " dev <interface>"
23 print " dev <interface> scan"
24 print " dev <interface> networks"
25 print " dev <interface> connect <network>"
26 print " dev <interface> remember <network>"
27 print " dev <interface> disconnect [network]"
28 print " dev <interface> policy [ignore|off|auto|manual]"
29 print " dev <interface> powered [on|off]"
30 print " dev <interface> priority [0-255]"
33 def print_properties(path, properties):
34 print "[ %s ]" % (path)
35 for key in properties.keys():
39 if key in ["Powered", "Scanning", "Connected",
40 "Available", "Remember", "Default"]:
41 if properties[key] == dbus.Boolean(1):
45 elif key in ["Strength", "Priority"]:
46 val = int(properties[key])
48 val = str(properties[key])
50 print " %s = %s" % (key, val)
52 if "Networks" in properties.keys():
54 for path in properties["Networks"]:
56 list = list + val[val.rfind("/") + 1:] + " "
57 print " Networks = [ %s]" % (list)
59 def print_networks(networks):
61 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
62 "org.moblin.connman.Network")
64 properties = network.GetProperties()
66 if properties["Connected"] == dbus.Boolean(1):
71 if "Name" in properties.keys():
72 name = properties["Name"]
76 strength = int(properties["Strength"])
80 details += "{" + properties["WiFi.Mode"] + "} "
84 details += "{" + properties["WiFi.Security"] + "} "
87 if "WiFi.Passphrase" in properties.keys():
88 if properties["WiFi.Passphrase"] != "":
89 details += "{passphrase present}"
91 print "%s %-26s %3d%% %s" % (connected,
92 name, strength, details)
94 def select_network(networks, name):
96 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
97 "org.moblin.connman.Network")
99 properties = network.GetProperties()
101 if properties["Name"] != name:
104 if properties["Connected"] == dbus.Boolean(1):
105 print "Already connected to network %s" % (name)
108 print "Selecting network %s" % (name)
112 def remember_network(networks, name):
113 for path in networks:
114 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
115 "org.moblin.connman.Network")
117 properties = network.GetProperties()
119 if properties["Name"] != name:
122 if properties["Remember"] == dbus.Boolean(1):
123 print "Already a known network %s" % (name)
126 print "Remembering network %s" % (name)
128 network.SetProperty("Remember", dbus.Boolean(1))
130 def disconnect_network(networks, name):
131 for path in networks:
132 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
133 "org.moblin.connman.Network")
135 properties = network.GetProperties()
137 if name != "" and properties["Name"] != name:
140 if properties["Connected"] == dbus.Boolean(1):
141 name = properties["Name"]
142 print "Disconnecting from network %s" % (name)
145 def print_services(services):
146 for path in services:
147 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
148 "org.moblin.connman.Service")
150 properties = service.GetProperties()
152 identifier = path[path.rfind("/") + 1:]
154 if properties["Favorite"] == dbus.Boolean(1):
159 if "Name" in properties.keys():
160 name = properties["Name"]
162 name = "{" + properties["Type"] + "}"
164 print "%s %-26s { %s }" % (favorite, name, identifier)
166 if sys.argv[1] == "state":
167 properties = manager.GetProperties()
169 print "System is %s" % (properties["State"])
171 elif sys.argv[1] in ["services", "list", "show"]:
172 properties = manager.GetProperties()
174 print_services(properties["Services"])
176 elif sys.argv[1] in ["passphrase", "pass"]:
177 if (len(sys.argv) < 3):
178 print "Need at least service parameter"
181 path = "/profile/default/" + sys.argv[2]
183 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
184 "org.moblin.connman.Service")
186 if (len(sys.argv) > 3):
187 passphrase = sys.argv[3]
189 service.SetProperty("Passphrase", passphrase);
191 print "Passphrase %s set for %s" % (passphrase, sys.argv[2])
193 properties = service.GetProperties()
195 if "Name" in properties.keys():
196 name = properties["Name"]
198 name = "{" + properties["Type"] + "}"
200 if "Passphrase" in properties.keys():
201 passphrase = properties["Passphrase"]
203 passphrase = "not set"
205 print "Passphrase for %s is %s" % (name, passphrase)
207 elif sys.argv[1] in ["connect", "conn"]:
208 if (len(sys.argv) < 3):
209 print "Need at least service parameter"
212 path = "/profile/default/" + sys.argv[2]
214 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
215 "org.moblin.connman.Service")
218 service.Connect(timeout=60000)
219 except dbus.DBusException, error:
220 print "%s: %s" % (error._dbus_error_name, error.message)
222 elif sys.argv[1] in ["disconnect", "disc"]:
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")
234 except dbus.DBusException, error:
235 print "%s: %s" % (error._dbus_error_name, error.message)
237 elif sys.argv[1] in ["remove"]:
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")
247 properties = service.GetProperties()
249 if properties["Favorite"] == dbus.Boolean(0):
250 print "Only favorite services can be removed"
255 except dbus.DBusException, error:
256 print "%s: %s" % (error._dbus_error_name, error.message)
258 elif sys.argv[1] == "scan":
259 properties = manager.GetProperties()
264 if len(sys.argv) > 2:
265 interface = sys.argv[2]
267 for path in properties["Devices"]:
268 device = dbus.Interface(bus.get_object("org.moblin.connman", path),
269 "org.moblin.connman.Device")
271 properties = device.GetProperties()
273 if interface != "" and properties["Interface"] != interface:
276 if properties["Type"] in ["wifi", "wimax"]:
277 interface = properties["Interface"]
278 print "Propose scanning for device %s" % (interface)
281 elif interface != "":
282 print "No scanning support for device %s" % (interface)
286 print "No such device"
288 elif sys.argv[1] == "dev":
289 properties = manager.GetProperties()
296 if len(sys.argv) > 2:
297 interface = sys.argv[2]
298 if len(sys.argv) > 3:
299 command = sys.argv[3]
300 if len(sys.argv) > 4:
303 for path in properties["Devices"]:
304 device = dbus.Interface(bus.get_object("org.moblin.connman", path),
305 "org.moblin.connman.Device")
307 properties = device.GetProperties()
309 if interface != "" and properties["Interface"] != interface:
312 if command == "scan":
313 if properties["Type"] in ["wifi", "wimax"]:
314 interface = properties["Interface"]
315 print "Scan for device %s" % (interface)
318 print "No scanning for device %s" % (interface)
319 elif command in ["networks", "net"]:
320 if "Networks" in properties.keys():
321 print_networks(properties["Networks"])
323 print "Device has no networks"
324 elif command in ["connect", "conn"] and value != "":
325 if "Networks" in properties.keys():
326 select_network(properties["Networks"], value)
328 print "Device can't connect networks"
329 elif command in ["connect", "conn"]:
330 print "Need to specify network"
331 elif command in ["remember", "known"] and value != "":
332 if "Networks" in properties.keys():
333 remember_network(properties["Networks"], value)
335 print "Device has no networks"
336 elif command in ["remember", "known"]:
337 print "Need to specify network"
338 elif command in ["disconnect", "disc"] and value != "":
339 if "Networks" in properties.keys():
340 disconnect_network(properties["Networks"], value)
342 print "Device has no networks"
343 elif command in ["discconnect", "disc"]:
344 if "Networks" in properties.keys():
345 disconnect_network(properties["Networks"], "")
347 print "Device has no networks"
348 elif command == "policy" and value != "":
350 device.SetProperty("Policy", policy)
351 elif command == "policy":
352 interface = properties["Interface"]
353 policy = properties["Policy"]
354 print "Policy of device %s is %s" % (interface, policy)
355 elif command == "powered" and value != "":
357 powered = dbus.Boolean(1)
359 powered = dbus.Boolean(0)
361 powered = dbus.Boolean(value)
362 device.SetProperty("Powered", powered)
363 elif command == "powered":
364 interface = properties["Interface"]
365 if properties["Powered"] == dbus.Boolean(1):
369 print "Device %s is powered %s" % (interface, powered)
370 elif command == "priority" and value != "":
371 priority = int(value)
372 device.SetProperty("Priority", priority)
373 elif command == "priority":
374 interface = properties["Interface"]
375 priority = properties["Priority"]
376 print "Device %s has priority of %d" % (interface, priority)
377 elif command == "list" or command == "":
378 print_properties(path, properties)
380 print "Unknown command"
383 print "Unknown command"