]> git.llucax.com Git - z.facultad/66.09/etherled.git/blob - cliente/cetherled.py
Bugfixes e integración del protocolo con la interfaz gráfica.
[z.facultad/66.09/etherled.git] / cliente / cetherled.py
1 #!/usr/bin/env python
2 # -*- coding: iso-8859-1 -*-
3 # vim: set expandtab tabstop=4 shiftwidth=4 :
4 #----------------------------------------------------------------------------
5 #                               Etherled
6 #----------------------------------------------------------------------------
7 # This file is part of etherled.
8 #
9 # etherled is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by the Free
11 # Software Foundation; either version 2 of the License, or (at your option)
12 # any later version.
13 #
14 # etherled is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
17 # more details.
18 #
19 # You should have received a copy of the GNU General Public License along
20 # with etherled; if not, write to the Free Software Foundation, Inc., 59
21 # Temple Place, Suite 330, Boston, MA  02111-1307  USA
22 #----------------------------------------------------------------------------
23 # Creado:  vie oct 27 22:16:20 ART 2005
24 # Autores: Leandro Lucarella <llucare@fi.uba.ar>
25 #----------------------------------------------------------------------------
26
27 import os
28 import gtk
29 from simplegladeapp import SimpleGladeApp
30 from simplegladeapp import bindtextdomain
31 from dispatcher import Dispatcher
32 from led import Led
33 import etherled
34
35 app_name = "cetherled"
36 app_version = "1.0"
37 glade_dir = ""
38 locale_dir = ""
39
40 bindtextdomain(app_name, locale_dir)
41
42 class MainWindow(SimpleGladeApp):
43
44     def __init__(self, path="cetherled.glade", root="main_window",
45             domain=app_name, **kwargs):
46         #notificar = Dispatcher(self.actualizar)
47         self.device = etherled.NetworkedDevice()
48         path = os.path.join(glade_dir, path)
49         SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
50
51     def new(self):
52         self.tabla = {}
53         for i in xrange(16):
54             for j in xrange(16):
55                 led = Led()
56                 self.table_leds.attach(led, j, j+1, i, i+1)
57                 led.show()
58                 self.tabla[i,j] = led
59
60     def on_btn_salir_clicked(self, widget, *args):
61         self.quit()
62
63     def on_btn_enviar_clicked(self, widget, *args):
64         self.device.matrix = self.leds2matrix()
65
66     def on_main_window_delete_event(self, widget, event, *args):
67         self.quit()
68
69     def leds2matrix(self):
70         matrix = {}
71         for row in xrange(16):
72             for col in xrange(16):
73                 matrix[row,col] = int(self.tabla[row,col].prendido)
74                 #print int(self.tabla[row,col].prendido),
75                 print (row,col),
76             print
77         print
78         etherled.protocol._print_matrix(matrix)
79         return matrix
80
81 def main():
82     gtk.threads_init()
83     main_window = MainWindow()
84     gtk.threads_enter()
85     main_window.run()
86     gtk.threads_leave()
87
88 if __name__ == '__main__':
89     main()
90