]> git.llucax.com Git - z.facultad/66.09/etherled.git/blob - cliente/cetherled.py
Se elimina dependencia de dispatcher y se implementa el recibir.
[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_btn_recibir_clicked(self, widget, *args):
67         self.device.matrix = self.leds2matrix()
68
69     def on_main_window_delete_event(self, widget, event, *args):
70         self.quit()
71
72     def leds2matrix(self):
73         matrix = {}
74         for row in xrange(16):
75             for col in xrange(16):
76                 matrix[row,col] = int(self.tabla[row,col].prendido)
77         etherled.protocol._print_matrix(matrix)
78         return matrix
79
80     def matrix2leds(self, matrix):
81         for row in xrange(16):
82             for col in xrange(16):
83                 self.tabla[row,col].prendido = matrix[row,col]
84         etherled.protocol._print_matrix(matrix)
85         return matrix
86
87 def main():
88     gtk.threads_init()
89     main_window = MainWindow()
90     gtk.threads_enter()
91     main_window.run()
92     gtk.threads_leave()
93
94 if __name__ == '__main__':
95     main()
96