import gtk
from simplegladeapp import SimpleGladeApp
from simplegladeapp import bindtextdomain
-from dispatcher import Dispatcher
+#from dispatcher import Dispatcher
from led import Led
+import etherled
app_name = "cetherled"
app_version = "1.0"
bindtextdomain(app_name, locale_dir)
-
class MainWindow(SimpleGladeApp):
def __init__(self, path="cetherled.glade", root="main_window",
domain=app_name, **kwargs):
#notificar = Dispatcher(self.actualizar)
+ self.device = etherled.NetworkedDevice()
path = os.path.join(glade_dir, path)
SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
for i in xrange(16):
for j in xrange(16):
led = Led()
- self.table_leds.attach(led, i, i+1, j, j+1)
+ self.table_leds.attach(led, j, j+1, i, i+1)
led.show()
self.tabla[i,j] = led
self.quit()
def on_btn_enviar_clicked(self, widget, *args):
- print self.tabla_a_stream()
+ self.device.matrix = self.leds2matrix()
+
+ def on_btn_recibir_clicked(self, widget, *args):
+ self.device.matrix = self.leds2matrix()
def on_main_window_delete_event(self, widget, event, *args):
self.quit()
- def imprimir_tabla(self, rotada=False):
- rango = xrange(16)
- if rotada:
- rango = xrange(15, -1, -1)
- for col in rango:
- for row in xrange(16):
- print int(self.tabla[col,row].prendido),
- print
- print
-
- def imprimir_stream(self, stream):
- for i in stream:
- print '0x%02x' % i
-
- def tabla_a_stream(self):
- stream = []
- for col in xrange(15, -1, -1):
- i = 0
- for row in xrange(8):
- i += int(self.tabla[col,row].prendido) << row
- stream.append(i)
- i = 0
- for row in xrange(8, 16):
- i += int(self.tabla[col,row].prendido) << row
- stream.append(i)
- return stream
-
+ def leds2matrix(self):
+ matrix = {}
+ for row in xrange(16):
+ for col in xrange(16):
+ matrix[row,col] = int(self.tabla[row,col].prendido)
+ etherled.protocol._print_matrix(matrix)
+ return matrix
+
+ def matrix2leds(self, matrix):
+ for row in xrange(16):
+ for col in xrange(16):
+ self.tabla[row,col].prendido = matrix[row,col]
+ etherled.protocol._print_matrix(matrix)
+ return matrix
def main():
gtk.threads_init()
main_window.run()
gtk.threads_leave()
-
if __name__ == '__main__':
main()