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>"
22 print " enable <type>"
23 print " disable <type>"
25 print " dev <interface>"
26 print " dev <interface> scan"
27 print " dev <interface> networks"
28 print " dev <interface> connect <network>"
29 print " dev <interface> disconnect [network]"
30 print " dev <interface> powered [on|off]"
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 disconnect_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 name != "" and properties["Name"] != name:
122 if properties["Connected"] == dbus.Boolean(1):
123 name = properties["Name"]
124 print "Disconnecting from network %s" % (name)
127 def print_services(services):
128 for path in services:
129 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
130 "org.moblin.connman.Service")
132 properties = service.GetProperties()
134 identifier = path[path.rfind("/") + 1:]
136 if properties["Favorite"] == dbus.Boolean(1):
141 if "Name" in properties.keys():
142 name = properties["Name"]
144 name = "{" + properties["Type"] + "}"
146 print "%s %-26s { %s }" % (favorite, name, identifier)
148 if sys.argv[1] == "state":
149 properties = manager.GetProperties()
151 print "System is %s" % (properties["State"])
153 elif sys.argv[1] in ["services", "list", "show"]:
154 properties = manager.GetProperties()
156 print_services(properties["Services"])
158 elif sys.argv[1] in ["passphrase", "pass"]:
159 if (len(sys.argv) < 3):
160 print "Need at least service parameter"
163 path = "/profile/default/" + sys.argv[2]
165 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
166 "org.moblin.connman.Service")
168 if (len(sys.argv) > 3):
169 passphrase = sys.argv[3]
171 service.SetProperty("Passphrase", passphrase);
173 print "Passphrase %s set for %s" % (passphrase, sys.argv[2])
175 properties = service.GetProperties()
177 if "Name" in properties.keys():
178 name = properties["Name"]
180 name = "{" + properties["Type"] + "}"
182 if "Passphrase" in properties.keys():
183 passphrase = properties["Passphrase"]
185 passphrase = "not set"
187 print "Passphrase for %s is %s" % (name, passphrase)
189 elif sys.argv[1] in ["connect", "conn"]:
190 if (len(sys.argv) < 3):
191 print "Need at least service parameter"
194 path = "/profile/default/" + sys.argv[2]
196 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
197 "org.moblin.connman.Service")
200 service.Connect(timeout=60000)
201 except dbus.DBusException, error:
202 print "%s: %s" % (error._dbus_error_name, error.message)
204 elif sys.argv[1] in ["disconnect", "disc"]:
205 if (len(sys.argv) < 3):
206 print "Need at least service parameter"
209 path = "/profile/default/" + sys.argv[2]
211 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
212 "org.moblin.connman.Service")
216 except dbus.DBusException, error:
217 print "%s: %s" % (error._dbus_error_name, error.message)
219 elif sys.argv[1] in ["remove"]:
220 if (len(sys.argv) < 3):
221 print "Need at least service parameter"
224 path = "/profile/default/" + sys.argv[2]
226 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
227 "org.moblin.connman.Service")
229 properties = service.GetProperties()
231 if properties["Favorite"] == dbus.Boolean(0):
232 print "Only favorite services can be removed"
237 except dbus.DBusException, error:
238 print "%s: %s" % (error._dbus_error_name, error.message)
240 elif sys.argv[1] == "scan":
241 if len(sys.argv) > 2:
242 manager.RequestScan(sys.argv[2])
244 manager.RequestScan("")
246 elif sys.argv[1] == "enable":
247 if len(sys.argv) > 2:
248 manager.EnableTechnology(sys.argv[2])
250 manager.EnableTechnology("")
252 elif sys.argv[1] == "disable":
253 if len(sys.argv) > 2:
254 manager.DisableTechnology(sys.argv[2])
256 manager.DisableTechnology("")
258 elif sys.argv[1] == "dev":
259 properties = manager.GetProperties()
266 if len(sys.argv) > 2:
267 interface = sys.argv[2]
268 if len(sys.argv) > 3:
269 command = sys.argv[3]
270 if len(sys.argv) > 4:
273 for path in properties["Devices"]:
274 device = dbus.Interface(bus.get_object("org.moblin.connman", path),
275 "org.moblin.connman.Device")
277 properties = device.GetProperties()
279 if interface != "" and properties["Interface"] != interface:
282 if command == "scan":
283 if properties["Type"] in ["wifi", "wimax"]:
284 interface = properties["Interface"]
285 print "Scan for device %s" % (interface)
288 print "No scanning for device %s" % (interface)
289 elif command in ["networks", "net"]:
290 if "Networks" in properties.keys():
291 print_networks(properties["Networks"])
293 print "Device has no networks"
294 elif command in ["connect", "conn"] and value != "":
295 if "Networks" in properties.keys():
296 select_network(properties["Networks"], value)
298 print "Device can't connect networks"
299 elif command in ["connect", "conn"]:
300 print "Need to specify network"
301 elif command in ["disconnect", "disc"] and value != "":
302 if "Networks" in properties.keys():
303 disconnect_network(properties["Networks"], value)
305 print "Device has no networks"
306 elif command in ["discconnect", "disc"]:
307 if "Networks" in properties.keys():
308 disconnect_network(properties["Networks"], "")
310 print "Device has no networks"
311 elif command == "powered" and value != "":
313 powered = dbus.Boolean(1)
315 powered = dbus.Boolean(0)
317 powered = dbus.Boolean(value)
318 device.SetProperty("Powered", powered)
319 elif command == "powered":
320 interface = properties["Interface"]
321 if properties["Powered"] == dbus.Boolean(1):
325 print "Device %s is powered %s" % (interface, powered)
326 elif command == "list" or command == "":
327 print_properties(path, properties)
329 print "Unknown command"
332 print "Unknown command"