]> git.llucax.com Git - z.facultad/66.09/etherled.git/blob - cliente/cetherled.py
dfc15f72396f0e7a4f18fcf0d527732d523f01ae
[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
34 app_name = "cetherled"
35 app_version = "1.0"
36 glade_dir = ""
37 locale_dir = ""
38
39 bindtextdomain(app_name, locale_dir)
40
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         path = os.path.join(glade_dir, path)
48         SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
49
50     def new(self):
51         self.tabla = {}
52         for i in xrange(16):
53             for j in xrange(16):
54                 led = Led()
55                 self.table_leds.attach(led, i, i+1, j, j+1)
56                 led.show()
57                 self.tabla[i,j] = led
58
59     def on_btn_salir_clicked(self, widget, *args):
60         self.quit()
61
62     def on_btn_enviar_clicked(self, widget, *args):
63         print self.tabla_a_stream()
64
65     def on_main_window_delete_event(self, widget, event, *args):
66         self.quit()
67
68     def imprimir_tabla(self, rotada=False):
69         rango = xrange(16)
70         if rotada:
71             rango = xrange(15, -1, -1)
72         for col in rango:
73             for row in xrange(16):
74                 print int(self.tabla[col,row].prendido),
75             print
76         print
77
78     def imprimir_stream(self, stream):
79         for i in stream:
80             print '0x%02x' % i
81
82     def tabla_a_stream(self):
83         stream = []
84         for col in xrange(15, -1, -1):
85             i = 0
86             for row in xrange(8):
87                 i += int(self.tabla[col,row].prendido) << row
88             stream.append(i)
89             i = 0
90             for row in xrange(8, 16):
91                 i += int(self.tabla[col,row].prendido) << row
92             stream.append(i)
93         return stream
94
95
96 def main():
97     gtk.threads_init()
98     main_window = MainWindow()
99     gtk.threads_enter()
100     main_window.run()
101     gtk.threads_leave()
102
103
104 if __name__ == '__main__':
105     main()
106