7 from wlan_xpm import WL
9 from dbus.mainloop.glib import DBusGMainLoop
10 DBusGMainLoop(set_as_default=True)
17 self.strength_zero = 4294967179
18 self.strength_fifty = 4294967229
19 self.strength_hundred = 4294967279
20 self.signal_strength = self.strength_zero
22 self.connection = None
25 self.connection = conic.Connection()
26 self.connection.connect("connection-event", self.connection_cb, 0xFFAA)
27 self.connection.connect("statistics", self.statistics_cb, 0x55AA)
28 self.connection.set_property("automatic-connection-events", True)
29 # self.connection.request_connection(conic.CONNECT_FLAG_NONE)
32 self.statusIcon = gtk.StatusIcon()
33 self.statusIcon.connect('activate', self.on_activate)
36 #gobject.timeout_add(30000, self.chknet)
38 def on_activate(self, si):
43 if self.status == conic.STATUS_CONNECTED:
44 self.connection.statistics(self.iap_id)
45 self.signal_pct = (self.signal_strength - self.strength_zero)
46 self.i = int(round(self.signal_pct / 20,0))
47 if self.signal_pct > 0:
49 print "signal_strength=%i (%i pct, %i/5)" % (self.signal_strength, self.signal_pct, self.i)
50 elif self.status == conic.STATUS_DISCONNECTED:
52 elif self.status == conic.STATUS_DISCONNECTING:
55 wl = gtk.gdk.pixbuf_new_from_xpm_data(self.wls.get_pixbuf(self.i))
56 self.statusIcon.set_from_pixbuf(wl)
58 self.statusIcon.set_blinking(True)
60 self.statusIcon.set_blinking(False)
64 def clicked_icon(self):
67 if self.status == conic.STATUS_CONNECTED:
68 str1="CONNECTED to %s (%s mode)\nSignal strength: %i percent, (%i/5)" % (self.iap_name, self.bearer, self.signal_pct, self.i)
70 # str2="Signal strength=%i (%i pct, %i/5)" % (self.signal_strength, self.signal_pct, self.i)
71 elif self.status == conic.STATUS_DISCONNECTED:
74 elif self.status == conic.STATUS_DISCONNECTING:
75 str1="DISCONNECTING (%s, %s)" % (self.iap_name, self.bearer)
78 w.set_title('Connection')
79 w.connect('destroy', self.on_ok_clicked, w)
80 w.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
84 hboxu = gtk.HBox(True, 0)
85 hboxu.pack_start(l1, False, False, 10)
86 #hboxu.pack_start(l2, False, False, 10)
88 b = gtk.Button('OK', gtk.STOCK_OK)
89 b.connect('clicked', self.on_ok_clicked, w)
90 bq = gtk.Button('Quit', gtk.STOCK_QUIT)
91 bq.connect('clicked', gtk.main_quit)
92 hboxd = gtk.HBox(True, 0)
93 hboxd.pack_start(b, False, False, 0)
94 if self.status == conic.STATUS_DISCONNECTED:
95 brc = gtk.Button('Reconnect', gtk.STOCK_CONNECT)
96 brc.connect('clicked', self.reconnect, w)
97 hboxd.pack_start(brc, False, False, 0)
99 hboxd.pack_start(bq, False, False, 0)
101 vbox = gtk.VBox(False, 0)
102 vbox.pack_start(hboxu, False, False, 20)
103 vbox.pack_start(hboxd, False, False, 20)
108 def on_ok_clicked(self, button, window):
111 def reconnect(self, button, window):
112 self.connection.request_connection(conic.CONNECT_FLAG_NONE)
115 def statistics_cb(self, connection, event, data):
116 self.signal_strength = event.get_signal_strength()
117 self.time_active = event.get_time_active()
118 self.rx_bytes = event.get_rx_bytes()
119 self.tx_bytes = event.get_tx_bytes()
121 #print "statistics(%s, %s, %x)" % (connection, event, data)
123 #print "time active=%i" % self.time_active
124 #print "signal_strength=%i" % self.signal_strength
125 #print "rx_packets=%u" % event.get_rx_packets()
126 #print "tx_packets=%u" % event.get_tx_packets()
127 #print "rx_bytes=%u" % self.rx_bytes
128 #print "tx_bytes=%u" % self.tx_bytes
130 def connection_cb(self, connection, event, data):
132 print "connection_cb(%s, %s, %x)" % (connection, event, data)
134 self.status = event.get_status()
135 self.error = event.get_error()
136 self.iap_id = event.get_iap_id()
137 self.bearer = event.get_bearer_type()
139 if self.status == conic.STATUS_CONNECTED:
140 self.iap_name = commands.getoutput("gconftool -g /system/osso/connectivity/IAP/"+self.iap_id+"/name")
141 print "CONNECTED (%s, %s, %i, %i)" % (self.iap_name, self.bearer, self.status, self.error)
143 self.connection.statistics(self.iap_id)
144 gobject.timeout_add(30000, self.chknet)
145 elif self.status == conic.STATUS_DISCONNECTED:
146 self.iap_name = "None"
147 print "DISCONNECTED (%i, %i)" % (self.status, self.error)
148 elif self.status == conic.STATUS_DISCONNECTING:
149 print "DISCONNECTING (%s, %s, %i, %i)" % (self.iap_name, self.bearer, self.status, self.error)
153 if __name__ == "__main__":
154 bus = dbus.SystemBus(private=True)